频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
docker搭建比特币私链
2017-07-20 10:46:59         来源:DDFFR的博客  
收藏   我要投稿

本文介绍如何采用Docker容器技术,快速构建私有节点的比特币测试网络(bitcoin-testnet),并结合Node.js程序语言例子,说明如何调用比特币钱包节点提供的RPC接口服务,实现涉及比特币区块链的具体应用功能。安装基础环境本文采用Ubuntu14.04 Desktop 操作系统作为基础环境。对于常用的Microsoft Windows7 64bit桌面操作系统,可以安装Oracle VM VirtualBox虚拟机软件来进一步安装Ubuntu14.04 Desktop版操作系统。系统安装成功后,缺省带有Node.js软件,如果要查询是否已安装Node.js及相应版本的命令参考如下:

$ apt-cache policy nodejs
$ node -v
$ npm -v

如果尚未安装Node.js,可以参考下述命令进行安装:

$sudo add-apt-repository 'deb https://deb.nodesource.com/node trusty main'
$sudo apt-get update
$sudo apt-get install nodejs

确认已安装Node.js后,可以安装对应的RPC支持库。常用的Node.js的RPC支持库有多个,我们这里选用开源项目kapitalize。在Ubuntu终端命令行界面输入以下命令进行安装:

$npm install kapitalize

安装Docker环境
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。在Ubuntu14.04操作系统上快速安装Docker运行环境的方法如下:
1)在命令行下,输入下述命令安装Docker容器支持软件。

$sudo apt-get install docker.io

2)创建软连接。

 $sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

3)查看Docker版本。
如看到提示信息类似“Docker version 1.6.2, build 7c8fca2”则说明你已经安装Docker成功了。

安装和运行比特币测试网络
1)下载比特币测试网络(bitcoin-testnet)的Docker镜像。

$sudo docker pull freewil/bitcoin-testnet-box

2)运行Docker镜像。

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

注意:上述命令中的19001和19011是配置给两个节点提供RPC服务的端口。
3)进入Docker运行环境后,输入下面的命令来启动比特币测试网络:

$ make start

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

$ make getinfo 

4)初始化和测试区块链数据。在Docker运行窗口里依次输入下面的命令来初始化创建基本的区块链数据,供进一步的程序示例来使用。

make generate BLOCKS=200    

//模拟新产生200个区块记录
5)查看最新的钱包状态包括 balance 余额信息,这时可以留意看到第一个钱包节点的账户余额发生了变动,新的余额即通过模拟区块挖矿产生的测试比特币。

make getinfo

6)给作为示例的测试钱包地址转账10个BTC。

make sendfrom1 ADDRESS=mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ AMOUNT=10

注意:这里的示例地址mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ是比特币测试网络下的钱包地址(以字符m起始),与比特币正式网络下的钱包地址(一般以数字1或3起始)是有区别的。
7)模拟新产生10个区块记录,让上面的转账交易得到足够有效的确认。

make generate BLOCKS=10  

8)查看最新的钱包状态包括余额信息, 这时可以留意看到第一个钱包节点的balance 账户余额发生了改变 ,差额部分即已经交易转账支出的10个BTC加上少许的矿工费用。make getinfo开发运行第一个示例程序下文以Node.js开发语言为例,演示如何调用RPC接口来执行一些最基本的操作,比如导入比特币私钥,和发送一个最简单的转账交易。开发者通过该示例可以了解到最基本的区块链开发方法。然后在命令行下输入以下命令即可运行并看到运行结果: node RpcTestnet.js
注意:每运行一次测试代码后,都需要到Docker运行环境的命令行下输入”make generate BLOCKS=10”,模拟产生新的区块记录,让测试代码产生的交易记录得到有效的确认。 在理解此简单示例程序的基础上,经过对Bitcoin协议的进一步了解,我们可以调用RPC接口进一步开发出更复杂功能,如自行构建特定交易数据包(比如备注信息、多重签名输出等)来满足特定业务需求。

点击复制链接 与好友分享!回本站首页
上一篇:Git 重要的相关使用建议
下一篇:Eclipse常用设置
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站