区块链开发环境搭建
前言
本章主要总结在基于Ubuntu14.04系统上搭建区块链开发平台的过程。
目前搭建区块链开发环境还是比较复杂,推荐使用Mac OS X和Linux操作系统,目前不建议使用Windows,可能会碰到各种各样的问题,最后导致放弃。
注意:
•安装软件的时候,尽量使用ubuntu系统官方的apt源。
由于国内很多公司,例如阿里,网易,腾讯等都免费提供apt源,在有的时候当然可以
加快我们安装软件的速度。
但是,在安装本章所介绍的软件的时候我就
遇到了各种错误,后来更换了ubuntu的官方apt源后有些问题就没有
了。
•在使用npm安装某些软件的时候,建议不要使用cnpm国内镜像,否则装完可能会出现问题。
•由于区块链相关技术领域处于新兴阶段,变化很快,该章环境搭建仅供参考。
一、搭建基于以太坊go-ethereum的私有链环境
go-ethereum客户端
以太坊有许多不同语言的客户端实现(即多种与以太坊网络交互的方法),包括C++, Go, Python, Java, Haskell等等。
为什么需要这么多实现?不同的实现能满足不同的需求(例如Haskell实现的目标是可以被数学验证),能使以太坊更加安全,能丰富整个生态系统。
我使用的是Go语言实现的客户端geth,该客户端也是官方推荐使用的客户端,稳定性较好,并且资料相对较多。
安装命令:
打开终端窗口,依次输入以下命令:
安装测试:
安装完成后在终端输入:
如果显示出各种参数提示信息,则说明安装成功。
创世块
在以上安装成功之后,直接启动,即可连接公有链。
现在通过配置创世块来创建私有链。
同一个网络中,创世块必须是一样的,否则无法联通。
创建一个eth的根目录,在根目录下新建创世块json文件piccgenesis.json。
内容如下:
{
"nonce":"0x0000000000000042",
"mixhash":"0x000000000000000000000000000000000000000000000000 0000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000 000000000000000000",
"extraData": "PICC GenesisBlock",
"gasLimit":"0xffffffff" }
参数解释:
输入以下命令启动以太坊私有链:
geth --identity"PICCetherum" --rpc--rpccorsdomain "*" --datadir "~./ethdev" --port "30303"--rpcapi "db,eth,net,web3"--networkid 95518 console –dev
注意:添加—dev 表示以开发模式启动。
私有链数据存储的目录要与公有链分开。
看到以下输出说明私有链启动成功:
二、Node.js环境搭建
由于以太坊开发框架truffle的安装需要依赖于node.js中的npm命令,下文简要介绍以下node.js的安装过程。
Node.js官网:/
从官网中下载稳定的版本,需要注意的是,由于网络原因,网络上有些教程推荐使用cnpm,然而使用cnpm代替npm有可能安装的软件会出现一些问题。
依赖安装
安装nodeJS之前,如果没有安装g++及 libssl-dev,则先要安装好,安装方法如下:
nodejs安装
第一步,解压:
第二步:为node和npm建立两个软连接,使之可以全局运行:
(第一个路径为安装程序所在路径)
第三步:安装测试
输出版本号
输出版本号,说明安装成功。
三、Truffle开发框架搭建
Truffle是以太坊最受欢迎的一个开发框架,它帮你处理掉大量无关紧要的小事情,让你可以迅速的进入写代码-编译-部署-测试-打包Dapp这么一个较成熟的开发流程。
下面简要介绍如何搭建truffle开发框架。
git安装
在安装truffle之前需要核实一下本机是否安装Git程序。
后面的程序安装需要依赖git。
输入以下命令:
安装测试:
通过以上命令安装的git版本为2.10.2。
下载安装
终端输入如下命令:
安装完成之后,创建软连接,使之可以全局使用:
安装测试:
显示truffle版本信息,安装成功。
至此,区块链开发环境搭建完成,可以通过该开发环境开发出区块链的Dapp。