Bitcoin-core daemon and regtest install

2018-2-4 号更新

这篇文章总结在开发比特币应用业务开发时本地测试模式的设置我们不需要 GUI 页面,在 Ubuntu 安装 bitcoin core daemon without GUI (bitcoind) 即可

在这里有一点需要注意,由于我们不需要图形界面 ./configure 时加上 --without-gui 参数。编译根据官方文档安装 bitcoin/doc/build-unix.md

然后就是 bitcoind 配置

mkdir ~/.bitcoin
wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/examples/bitcoin.conf
chmod 600 ~/.bitcoin/bitcoin.conf

修改下列参数配置:

regtest=1
rpcuser=rpcusername
rpcpassword=rpcpassword
# By default, only RPC connections from localhost are allowed. Specify
# as many rpcallowip= settings as you like to allow connections from
# other hosts (and you may use * as a wildcard character):
rpcallowip=192.168.100.2
walletnotify=/home/username/script/bitcoind_notify.rb %s
port=18332
minconf=2

注意 rpcallowip 这个选项,这里的 rpcallowip 填的是允许 rpc 链接的主机ip。接着就是启动测试链

bitcoind -rpcuser=bitcoin-test -rpcpassword=qwgsfdhrtytbvcbsfdslo --rpcport=8799 -datadir=btc_private -txindex -rpcallowip=116.24.64.135 -regtest=1 -listenonion=0 -debug -daemon

在文件 /home/deploy/btc_private/regtest/debug.log 可以看到日志「启动日志和 rpc 请求日志」此时运行 bitcoin-cli -regtest -getinfo 即可看到运行在服务器上的私有链节点信息。我这里通过 bitcoin-cli -regtest generate [num]生成了区块。

{
"version": 169900,
"protocolversion": 70015,
"walletversion": 159900,
"balance": 0.00000000,
"blocks": 183871,
"timeoffset": -1,
"connections": 7,
"proxy": "",
"difficulty": 1583177.847444009,
"testnet": false,
"keypoololdest": 1517675490,
"keypoolsize": 1000,
"paytxfee": 0.00000000,
"relayfee": 0.00001000,
"warnings": "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"
}

接下来就是一下常用的 bitcoin-cli 命令在私有链上的使用例子,需要在 command line 中带上 rpc 连接的信息, 比如:

bitcoin-cli -rpcuser=test -rpcpassword=test-rpcport=8790 getaddressesbylabel "test_from"

  • bitcoin-cli -regtest getnewaddress "account label" //生成地址
  • bitcoin-cli -regtest sendtoaddress [bitcoin address] [tx btc num]

在 core 中生成的地址可以查询与之有关的信息「注意:除了在 core 自带的钱包生成的地址和 watch only 的地址,其他都是不能查处与之有关的钱包信息」:

  • bitcoin-cli listlabels // 列出所有的 account name
  • bitcoin-cli getaddressesbylabel "account name" // get account detail
  • bitcoin-cli listaddressgroupings // 列出所有地址、账户及余额

交易有关的命令:

  • bitcoin-cli decoderawtransaction txHex // 返回交易详细的数据结构
  • bitcoin-cli signrawtransactionwithwallet txHex // 注意:只能使用在节点自带的钱包中生成的地址发生的交易进行签名

当交易被广播后,矿工把这笔交易添加到区块中,达到了钱包的 minconf 数量就表示交易成功。那么在私有链上,可以通过 bitcoin-cli -regtest generate 1 命令生成一个区块,确认当前钱包中发生的交易。

以上就是开发应用业务时比特币区块网络测试链的设置过程。推荐阅读:

0 条评论
您想说点什么吗?