Sign inSign up

xwc1125/xwc1125_bitcoin_test

By xwc1125

•Updated about 7 years ago

比特币测试网络

Image
0

1.2K

xwc1125/xwc1125_bitcoin_test repository overview

  • 运行Docker镜像
docker run \
-t -i \
--name bitcoin-test \
-p 19001:19001 \
-p 19011:19011 \
xwc1125/xwc1125_bitcoin_test
  • 进入Docker运行环境后,输入下面的命令来启动比特币测试网络:
// 启动btc测试网络
$ make start

启动成功后,将在本机模拟运行两个比特币测试钱包节点,组成一个私有范围的比特币测试网络。输入下面的命令可以查看测试网络节点状态信息,从中可以了解到比特币测试网络的配置和运行状态,比如协议版本、区块链长度和挖矿计算难度等内容,具体可以通过网络或技术书籍进一步查询了解:

  • 查看btc网络信息
// 查看btc网络信息
$ make getinfo
  • 模拟产生交易
//模拟新产生200个区块记录
$ make generate BLOCKS=200
  • 给作为示例的测试钱包地址转账10个BTC。
$ make sendfrom1 ADDRESS=mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ AMOUNT=10

注意:这里的示例地址mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ是比特币测试网络下的钱包地址(以字符m起始),与比特币正式网络下的钱包地址(一般以数字1或3起始)是有区别的。

  • 模拟新产生10个区块记录,让上面的转账交易得到足够有效的确认。
$ make generate BLOCKS=10
  • 获取钱包信息
$ make getwalletinfo
  • 查询钱包UTXO
$ make listunspent MIN_CONF=6 MAX_CONF=99999999 ADDRESS=''
  • 获取指定哈希的区块
$ make getblock HASH=00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 FLAG=true
  • 获取指定高度区块的哈希
$ make getblockhash HEIGHT=1
  • 获取链头区块哈希
$ make getbestblockhash
  • 获取钱包信息
$ make getwalletinfo
  • 提取私钥
$ make cmd1 B1_FLAGS="dumpprivkey mgXnC8bRn5SK9E9mb77jiUpnHKxXFq43eF"
  • 测试网络
获取blockhash
curl --user 'test:test' --data-binary '''
  {
      "method": "getblockhash",
      "params": [0],
      "id": "foo"
  }''' \
  --header 'Content-Type: text/plain;' localhost:19001
  • 其他命令使用
// make cmd1/cmd2 分别是两个节点操作的命令。具体命名为B1_FLAGS/B2_FLAGS
make cmd1 B1_FLAGS="generate 10"
make cmd2 B2_FLAGS="generate 10"

  • Makefile
BITCOIND=bitcoind
BITCOINGUI=bitcoin-qt
BITCOINCLI=bitcoin-cli
B1_FLAGS=
B2_FLAGS=
B1=-datadir=1 $(B1_FLAGS)
B2=-datadir=2 $(B2_FLAGS)
BLOCKS=1
ADDRESS=
AMOUNT=
ACCOUNT=
MIN_CONF=1
MAX_CONF=99999999
HASH=
FLAG=true
HEIGHT=0

build:
	docker build -t xwc1125/xwc1125_bitcoin_test .

start:
	$(BITCOIND) $(B1) -daemon
	$(BITCOIND) $(B2) -daemon

start-gui:
	$(BITCOINGUI) $(B1) &
	$(BITCOINGUI) $(B2) &

generate:
	$(BITCOINCLI) $(B1) generate $(BLOCKS)

cmd1:
	$(BITCOINCLI) $(B1)

cmd2:
	$(BITCOINCLI) $(B2)

listunspent:
	$(BITCOINCLI) $(B1) listunspent $(MIN_CONF) $(MAX_CONF) $(ADDRESS)

getinfo:
	$(BITCOINCLI) $(B1) -getinfo
	$(BITCOINCLI) $(B2) -getinfo

getblock:
	$(BITCOINCLI) $(B1) getblock $(HASH) $(FLAG)

getblockhash:
	$(BITCOINCLI) $(B1) getblockhash $(HEIGHT)

getbestblockhash:
	$(BITCOINCLI) $(B1) getbestblockhash

getwalletinfo:
	$(BITCOINCLI) $(B1) getwalletinfo
	$(BITCOINCLI) $(B2) getwalletinfo

sendfrom1:
	$(BITCOINCLI) $(B1) sendtoaddress $(ADDRESS) $(AMOUNT)

sendfrom2:
	$(BITCOINCLI) $(B2) sendtoaddress $(ADDRESS) $(AMOUNT)

address1:
	$(BITCOINCLI) $(B1) getnewaddress $(ACCOUNT)

address2:
	$(BITCOINCLI) $(B2) getnewaddress $(ACCOUNT)

stop:
	$(BITCOINCLI) $(B1) stop
	$(BITCOINCLI) $(B2) stop

clean:
	find 1/regtest/* -not -name 'server.*' -delete
	find 2/regtest/* -not -name 'server.*' -delete

Tag summary

Content type

Image

Digest

Size

108.4 MB

Last updated

about 7 years ago

docker pull xwc1125/xwc1125_bitcoin_test