下載鏡像
docker pull freewil/bitcoin-testnet-box
運行鏡像
docker run -t -i -p 19001:19001 -p 19011:19011 freewil/bitcoin-testnet-box
修改make腳本
如果需要修改make相關的命令,則可以修改docker環境中的 /home/tester/bitcoin-testnet-box 路徑下的Makefile腳本
make getblockchaininfo, make getnetworkinfo, make getwalletinfo等相關命令也是通過其設置
啟動測試網絡
make start
啟動成功后,將在本機模擬運行兩個比特幣測試錢包節點,組成一個私有范圍的比特幣測試網絡。
輸入下面的命令可以查看測試網絡節點狀態信息:
make getinfo
我們可以順便查看下兩個節點的bitcoin.conf文件是如何配置的
節點的配置文件
節點1
cat /home/tester/bitcoin-testnet-box/1/bitcoin.conf
節點2
cat /home/tester/bitcoin-testnet-box/2/bitcoin.conf
再順便查看下節點1的對等節點的信息
bitcoin-cli -datadir=1 getpeerinfo
初始化區塊鏈數據
生成錢包地址
bitcoin-cli -datadir=1 getnewaddress bitcoin-cli -datadir=2 getnewaddress
錢包1:2My51iv4qdBkZrJ5Xd8o523bnihiLqQmZ7m
錢包2:2MxS36F99cMaAiQmjno2beRGYaZXEkEvf6X
查看地址對應的私鑰:
bitcoin-cli -datadir=1 dumpprivkey 2My51iv4qdBkZrJ5Xd8o523bnihiLqQmZ7m
注意:在正式的比特幣網絡環境下,平均是10分鍾左右才能產生一個新的區塊。但在這里的測試網絡(testnet)特殊設定的環境下,區塊是通過簡單的命令控制就可以即時和批量產生的,方便程序開發測試。
生成一個區塊:
make generate
生成9個區塊:
make generate BLOCKS=9
查看錢包信息:
bitcoin-cli -datadir=1 getwalletinfo bitcoin-cli -datadir=2 getwalletinfo
結果顯示錢包1的balance(余額)里根本沒有任何比特幣,但immature_balance(未成熟的余額)里有相應的500個比特幣,這是為什么呢?
結果顯示,錢包1和錢包2都有20個區塊了,沒有什么問題,那么為什么錢包1的balance里沒有比特幣呢?
繼續創建200個區塊:
查看錢包余額
到這里,可以初步得出結論是之前生成的20個區塊還太”新鮮”,不夠”老”,需要后面生成更多的區塊來完成確認。
(補充:后來查詢資料知道,挖礦所得的coinbase交易中的獎勵必須要在100個區塊深度之后才能花費。)
給錢包2轉賬,這里轉10個比特幣:
make sendfrom1 ADDRESS=2MxS36F99cMaAiQmjno2beRGYaZXEkEvf6X AMOUNT=10
這時,查詢錢包余額,
好辦,繼續生成10個區塊,使得交易得到確認:
參考資料
https://blog.csdn.net/yzpbright/article/details/81004202
https://www.cnblogs.com/freebird92/p/10032096.html