前言
本文主要总结在Ubuntu系统上搭建以太坊开发平台的过程。
注意
:
- 安装以下软件的时候,请尽量使用ubuntu系统官方的apt源。由于国内很多公司,例如阿里,网易,腾讯等都免费提供apt源,在有的时候当然可以加快我们安装软件的速度。但是,在安装本文所介绍的软件的时候我就遇到了各种奇葩的错误,后来更换了ubuntu的官方apt源后有些问题就没有了。
- 在使用
npm
安装某些软件的时候,由于系统某些进程占用,会导致安装过程出错。在搞不清楚哪些进程占用的情况下,还是重启系统比较简单粗暴。- 本文所述安装过程均在Ubuntu16.04 64位系统下完成,有些安装过程在早期版本的Ubuntu系统中会出现错误,这一点请大家注意。
安装git,NodeJS
输入以下命令安装git:
sudo apt-get install git
注意
:
如果在安装git时出现
E:Package 'git' has no installation candidate
错误提示,只需使用以下命令代替即可
1
:
sudo apt-get install git-core
因为以太坊开发需要使用开发框架,但是,目前最好用且使用人数最多的是第三方开发框架Truffle。而Truffle建议系统所用NodeJS版本为5.0以上
2
,因此,我们就需要安装NodeJS的最新版本。
有多种方法安装NodeJS:
方法一:使用apt,输入以下命令安装NodeJS 6.0以上版本
3
:
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
方法二:从
Node官网
下载源码并解压,然后自行编译安装(以安装Node V6.9.2为例)
4
5
:
tar -zxvf node-v6.9.2.tar.gz
cd node-v6.9.2
sudo ./configure
sudo make
sudo make install
方法二因为要重新编译,因此耗费的时间可能多一点。
安装solc
输入以下命令安装solc
6
:
sudo npm install -g solc
安装完后,我们就会发现在终端中输入
solc
命令返回一个出错信息。这是因为solc只是一个程序集,如果我们想要在终端中使用
solc
程序编译智能合约,则需要安装
solc-cli
,这是
solc
的命令行界面。
输入以下命令安装
solc-cli
:
sudo npm install -g solc-cli
输入以下命令可以一并安装
solc
和
solc-cli
7
(推荐使用此命令安装):
sudo npm install -g solc solc-cli --save-dev
如果输入
solcjs --help
命令,有以下输出,则表明solc和solc-cli安装成功:
zcc@ubuntu:~$ solcjs --help
Usage: solcjs [options] [input_file...]
Options:
--version Show version number [boolean]
--optimize Enable bytecode optimizer. [boolean]
--bin Binary of the contracts in hex. [boolean]
--abi ABI of the contracts. [boolean]
--interface Solidity Interface of the contracts. [boolean]
--output-dir, -o Output directory for the contracts. [string]
--help Show help [boolean]
到了这里,如果想以后的智能合约编译工作不使用geth控制台来完成,那么solc编译器就算安装完了。但是,如果我们需要在geth控制台使用solc编译器,那么我们仍然需要安装solc二进制包。输入以下命令安装solc二进制包
8
:
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
如果在输入第一条命令的时候出现了错误,可以尝试重新启动系统来解决。
注意
:
如果你安装了
webthree-umbrella
,那么
solc
就会默认安装,但是我们在终端输入
solc
并没有显示可用的命令,我们需要输入以下命令手动建立软链接
9
:
sudo ln -s /home/zcc/webthree-umbrella/solidity/build/solc/solc /bin/solc
这样就能直接在终端使用solc程序了。
安装testrpc
输入以下命令安装testrpc
10
:
sudo npm install -g ethereumjs-testrpc
如果输入
testrpc
命令,有以下输出,则表明
testrpc
安装成功:
zcc@ubuntu:~$ testrpc
EthereumJS TestRPC v2.0.9
Available Accounts
==================
(0) 0x3aaf37e090b570596c47eeb83dee6d7eb6010b87
(1) 0x2ab74e4872f69f59ddfb19535e731b5abe012748
(2) 0x5c393ac0eccb6236641b5e3fadae83b745aab893
(3) 0xa23e3e6c2c11a26b58f0656168dadb4f4965648e
(4) 0xf15a17d9ecfeed966721e2dddccb1709568c5b83
(5) 0xb7eadd05c6661884f29dee4f77dfb634b1925729
(6) 0x77a4609285693d7773b809af4218a0a3702fac2f
(7) 0xb62e0d887bc7b17810159108f1b6a32eb8c5f51a
(8) 0xeddcef43e382e4150465d8bd113e5fbc02077aaf
(9) 0xb2f5addd09b2fb9c94bf41e851a3d537b88748a1
Private Keys
==================
(0) 452b5601745b2c65c3a88f6a56b4bc393511f453646031097fc8d18948f46581
(1) aaea0670b3eff9db750db8641f3b08ec8268373945f837bf393cf3e494ec8da6
(2) c9be77fd26933d26ae309a3fe5dbd1cb9747d4f5e872fff3f07921f0b5ff15c7
(3) 8767cbcd5eafbf914ee66590de121c7fbf951a793d1c7f9376b5d1ba064808ea
(4) 2e2117afb334e870f15760e74c9d1f72f3c15d59fb047b603590be8d67a5338e
(5) 017221e1344fdad12ff90b644979052525d048e10596cb88ae4411dcd6cbe3be
(6) 13a47c99a21403f30579b08ce6116af50028af21b9de13bab05b8d1c45349593
(7) 24c9f2b3bbf9ebd193c2c9aa3ab62c58005ecb20b9fb28f43b54f9bec7d5b4fb
(8) e048a57d2d68f5f198b6dc23e8596f88e155bdb2157e616af6247392f49b2e2e
(9) 16e49075f5cbe265cbb6c7af181d9d6b4e017f39a861d6e2655a7899ad2288f0
HD Wallet
==================
Mnemonic: cliff evolve motion suit citizen crack borrow churn way glare series trust
Base HD Path: m/44'/60'/0'/0/{account_index}
Listening on localhost:8545
注意
:
- 参考网页中的命令没有
sudo
,但是因为
-g
参数是表示全局安装,则需要使用root权限才能安装成功
11
。- 安装过程可能会出错,可以多试几次安装命令。
安装truffle
输入以下命令
12
:
sudo npm install -g truffle
如果输入
truffle version
命令,有以下输出,则表明truffle安装成功:
zcc@ubuntu:~$ truffle version
Truffle v2.0.0
安装Geth客户端
有多种以太坊客户端,安装go-ethereum输入以下命令
13
:
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum