实验三:比特币客户端&比特币回归测试网络

实验 3-1 熟悉 Bitcoin Core 的基本配置方法

3-1.1 熟悉比特币客户端的配置方法

环境配置好后,使用-version选项测试如下

versionh

使用bitcoind创建全节点后,出现regtest目录,打开debug.log后,分析调试日志信息如下:
  • 测试中为存储链上交易状态初始化的数据空间是多少?

space

2+8+440=450MiB2+8+440=450MiB
  • 初始化过程中,节点钱包密钥池最终保存了多少对密钥?

keypool

2000+1=20012000+1=2001 keys
  • 简述回归测试模式下,程序添加 P2P 节点的步骤?

p2p

  1. 根据DNS寻找潜在的P2P的ip地址进行解析
  2. 加载找到的节点地址/套接字<ip,port>
  3. 对该目标地址进行监听
  4. 开放通道,消息握手

3-1.2 学习 bitcoin.conf 的配置方法

  • 在回归测试网络中建立三个节点:alice,bob,network,并使他们相互连接,可以进行交互。

abn

  • 三个节点连接正常,打开alice节点的日志时,出现两条如下的节点成功连接的提示信息:

alicereceive

实验 3-2 掌握常用 RPC 指令,利用回归测试网络实现挖矿与交易

  • 完成指令优化,后续实验均使用自定义命令进行

  • 使用 bitcoin-cli 完成以下任务

    1. 为 alice 生成至少 150 BTC 的可用余额;

      8750BTC

    2. 生成交易,由 alice 分别支付给 bob 2.5BTC,network 1.5BTC,并使交易入块获得确认;
      • 为bob和network生成新的账户地址

        newaddress

      • alice to bob 2.5 BTC

      sned2.5

      • alice to network 1.5 BTC

      sned1.5

      • 经过确认,bob余额2.5BTC

      bob2.5

      • network余额1.5BTC

      network1.5

    3. 展示时请分别用指令获取 bob 和 network 的余额,并展示承载上述关键交易的区块原始数据。

      transct2.5

实验 3-3 通过控制台与测试链进行更加丰富的交互

练习 3-3:请大家综合利用控制台的 help 功能,学习并完成如下任务:利用 rpc 指令将如下交易源数据解析为 JSON 格式

  • 使用help功能查询到RPC指令decodetransaction,解析原数据为json格式

    decodetran

  1. 该交易的输入输出情况
    无输入方,有两个输出方
  2. 该交易的数据量大小
    分别为0.1和0.0989