其他分享
首页 > 其他分享> > 利用Docker搭建比特币私有链

利用Docker搭建比特币私有链

作者:互联网

下载镜像

docker pull freewil/bitcoin-testnet-box

 

 

运行镜像

docker run -t -i -p 19001:19001 -p 19011:19011 freewil/bitcoin-testnet-box

  

 

 

 启动测试网络

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://www.cnblogs.com/freebird92/p/10032096.html

标签:比特,私有,bitcoin,datadir,钱包,Docker,区块,节点
来源: https://www.cnblogs.com/weikunpeng/p/14381522.html