快讯:
据外媒近日报道,挖矿利润的下降在影响着瑞典Norrbotten公司,由于欠下超过150万美元的电费,这家总部位于迈阿密的挖矿公司NGDC被断电,现在已停止运营。
据外媒近日报道,欧洲议会议员Eva Kaili最近在希腊雅典举行的2018年多中心化区块链会议时透露,正在为欧洲议会准备一份关于ICO的报告,将促进其作为众筹工具的使用。认为,当银行被过度监管,项目需要流动性时,确实需要ICO,必须尽量不要过度监管并停止创新。
据媒体近日报道,微软推出了由Azure提供支持的基于云的区块链开发套件。微软区块链工程负责人Marc Mercuri表示,该工具包扩展了区块链开发人员模板和Azure区块链工作台的功能,它将用于密钥管理、脱链身份和数据,监控和消息传递API的Azure服务整合到一个参考架构中,可用于快速构建基于区块链的架构应用程序。
据外媒近日报道,挖矿利润的下降在影响着瑞典Norrbotten公司,由于欠下超过150万美元的电费,这家总部位于迈阿密的挖矿公司NGDC被断电,现在已停止运营。
据外媒近日报道,欧洲议会议员Eva Kaili最近在希腊雅典举行的2018年多中心化区块链会议时透露,正在为欧洲议会准备一份关于ICO的报告,将促进其作为众筹工具的使用。认为,当银行被过度监管,项目需要流动性时,确实需要ICO,必须尽量不要过度监管并停止创新。
据媒体近日报道,微软推出了由Azure提供支持的基于云的区块链开发套件。微软区块链工程负责人Marc Mercuri表示,该工具包扩展了区块链开发人员模板和Azure区块链工作台的功能,它将用于密钥管理、脱链身份和数据,监控和消息传递API的Azure服务整合到一个参考架构中,可用于快速构建基于区块链的架构应用程序。
据外媒近日报道,挖矿利润的下降在影响着瑞典Norrbotten公司,由于欠下超过150万美元的电费,这家总部位于迈阿密的挖矿公司NGDC被断电,现在已停止运营。
据外媒近日报道,欧洲议会议员Eva Kaili最近在希腊雅典举行的2018年多中心化区块链会议时透露,正在为欧洲议会准备一份关于ICO的报告,将促进其作为众筹工具的使用。认为,当银行被过度监管,项目需要流动性时,确实需要ICO,必须尽量不要过度监管并停止创新。
据媒体近日报道,微软推出了由Azure提供支持的基于云的区块链开发套件。微软区块链工程负责人Marc Mercuri表示,该工具包扩展了区块链开发人员模板和Azure区块链工作台的功能,它将用于密钥管理、脱链身份和数据,监控和消息传递API的Azure服务整合到一个参考架构中,可用于快速构建基于区块链的架构应用程序。

比特币区块链开发由浅入深指南(二)

PPk兴趣组 2016-06-30 12:15 发布在 链圈子 34325

本文在常用的Ubuntu14.04操作系统上,采用Docker容器来快速安装和配置私有节点的比特币测试网络(bitcoin-testnet)作为开发试验环境,结合Node.js为例来说明如何调用比特币钱包节点提供的RPC接口服务来实现一些具体的比特币相关账户和交易操作。

BlockchainTestNetAndNodeJS

RPC(Remote Procedure Call)即远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 在Bitcoin的wiki网页上面( https://en.bitcoin.it/wiki/API_reference_(JSON-RPC) ),可以看到除了Node.js外还有很多种语言都可以调用Bitcoin的RPC,大家可以参考本文内容选择适合自己的语言具体试验。 在上面的网页里,还可以延伸阅读和了解Bitcoin RPC可以调用的命令列表(https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list)。

关于如何安装Ubuntu14.04操作系统和Node.js, 如有需要可以参考上一篇《比特币区块链开发由浅入深指南1》里面的说明进行安装( http://www.8btc.com/blockchain_develope_lesson_1 )。

一、安装Docker运行环境

1.使用apt-get命令安装Docker容器支持软件:

$sudo apt-get install docker.io

2.创建软连接 $sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

3.查看Docker版本 $docker --version 如看到提示信息类似“Docker version 1.6.2, build 7c8fca2”则说明你已经在Ubuntu14.04上面快速安装Docker成功了。

如需了解更多关于Docker安装和运行的入门说明可以网络搜索更多资料,也可以看看这个网页: “Docker初试”( http://my.oschina.net/lamciuloeng/blog/226107 )

 

二、安装和运行比特币测试网络(bitcoin-testnet)

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

显示的提示信息如下,中文为对其中若干关键信息的说明: bitcoin-cli -datadir=1 getinfo //第一个钱包节点的信息 { "version": 120100, "protocolversion": 70012, "walletversion": 60000, "balance": 0.00000000, //第一个钱包节点的账户余额,初始为0 "blocks": 0, //已经产生的区块数量,初始启动为0,可以通过进一步的命令来模拟生成区块数据 "timeoffset": 0, "connections": 1, "proxy": "", "difficulty": 4.656542373906925e-10, "testnet": false, "keypoololdest": 1467253951, "keypoolsize": 101, "paytxfee": 0.00000000, "relayfee": 0.00001000, "errors": "" } bitcoin-cli -datadir=2 getinfo //第二个钱包节点的信息 { "version": 120100, "protocolversion": 70012, "walletversion": 60000, "balance": 0.00000000, "blocks": 0, "timeoffset": 0, "connections": 1, "proxy": "", "difficulty": 4.656542373906925e-10, "testnet": false, "keypoololdest": 1467253951, "keypoolsize": 101, "paytxfee": 0.00000000, "relayfee": 0.00001000, "errors": "" } 4.初始化和测试区块链数据 在Docker运行窗口里依次输入下面的命令来初始化创建基本的区块链数据,供进一步的程序示例来使用。 注意:在正式的比特币网络环境下,平均是10分钟左右才能产生一个新的区块。但在这里的测试网络(testnet)特殊设定的环境下,区块是通过简单的命令控制就可以即时和批量产生的,方便程序开发测试。

make generate //说明:模拟新产生1个区块记录

make generate BLOCKS=200 //说明:模拟新产生200个区块记录

make getinfo //说明:查看最新的钱包状态包括余额信息,这时可以留意看到第一个钱包节点的账户余额变为了 5050.00000000 BTC,即通过模拟区块挖矿产生的测试比特币。

make sendfrom1 ADDRESS=mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ AMOUNT=10 //说明:给指定测试钱包地址转账10个BTC。注意命令中的测试转账地址“mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ”对应后续测试程序示例所需要使用的测试钱包地址。

make generate BLOCKS=10 //说明:模拟新产生10个区块记录,让上面的转账交易得到足够有效的确认

make getinfo //说明:查看最新的钱包状态包括余额信息, 这时可以留意看到第一个钱包节点的账户余额变为了 5539.99996160 BTC ,即已经交易转账支出了10个BTC加上少许的矿工费用。

 

三、安装Node.js的RPC支持库\ 常用的Node.js的RPC支持库有多个,我们这里选用开源项目kapitalize。

在Ubuntu桌面新起一个终端命令行界面,输入以下命令进行安装: $npm install kapitalize

关于kapitalize开源项目的更多说明可以参考: https://github.com/shamoons/Kapitalize

  四、运行示例程序

将下述示例代码复制保存到测试环境下(保存文件名为RpcTestnet.js),在命令行下输入以下命令即可运行并看到运行结果: node RpcTestnet.js

注意:每运行一次测试代码后,都需要到Docker运行环境的命令行下输入"make generate BLOCKS=10", 模拟产生新的区块记录,让测试代码产生的交易记录得到有效的确认。

示例程序RpcTestnet.js源码如下(源码文件可以点击这里下载):

/********************* 示例代码起始 **********************/ txt1

/********************* 示例代码结束 **********************/ 在此程序的基础上,经过对Bitcoin协议的进一步了解,我们可以调用RPC接口进一步开发出更复杂功能,如自行构建特定交易数据包(比如多重签名数据)来满足特定业务需求,后续我们PPkPub将深入介绍。

 

文章标签: 比特币开发
评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • merry 2016-07-06
    非常感谢 http://blockmeta.com/tx/4f051c9eae2ff76f2ad8b1664484f68d38f20e4219367f04b7101be7445b5017