利用Docker搭建比特幣私有鏈


下載鏡像

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM