前言:
这段时间正在研究以太坊,对于新的内容首先要对其开发环境进行搭建,这几天一直在网上搜索相关内容,感觉不是很详细,多多少少有些问题。所以准备对此写下来备用。
资源下载:http://download.csdn.net/download/xiatiancc/10183412
- No LSB modules are available.
- Distributor ID:Ubuntu
- Description:Ubuntu 16.04.3 LTS
- Release:16.04
- Codename:xenial
- gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
1.jdk安装
tar -zxvf jdk-8u151-linux-i586.tar.gz cp -rf jdk1.8.0_151 /usr/local/
2.配置
gedit /etc/profile
在后面加入
JAVA_HOME=/usr/local/jdk1.8.0_151 JRE_HOME=/usr/local/jdk1.8.0_151/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
3.使修改生效:
source /etc/profile //使修改立即生效 echo $PATH //查看PATH值
4.查看JAVA版本
java -version
至此,JDK安装成功。
下载路径:https://www.python.org/
我使用的版本是:Python-3.5.0.tar.xz
通过解压指令将其解压,并且编译
我将其放到/usr/local/python3位置;sudo xz -d Python-3.5.0.tar.xz sudo tar -xvf Python-3.5.0.tar cd Python-3.5.0 ./configure --prefix=/usr/local/python3 make make install sudo mv -f Python-3.5.0 /usr/local/python3
做个软连接
验证:ln -s /usr/local/python3/bin/python3.5 /usr/local/bin/python
python -V
这样python安装成功。后期安装:zlib,pip,setuptools
1.pip安装
2. zlib安装sudo apt install python-pip
首先安装指令:
三、 openssl 安装与配置
其次对python重新编译sudo apt-get install zlib1g-dev
3. setuptools安装cd /usr/local/python3 make make install
下载安装包:setuptools-38.2.5.zip
对其进行解压,编译:
sudo unzip setuptools-38.2.5.zip sudo python setup.py build sudo python setup.py install
注意:现在openssl最新的版本是openssl-1.1.0,但是对于以太坊不适用,必须安装openssl-1.0.0版本
到openssl官网下载压缩包:http://www.openssl.org/source/
我使用的是:openssl-1.0.0s.tar.gz
创建符号链接tar -zxvf openssl-1.0.0s.tar.gz ./config shared(安装的默认路径是/usr/local/ssl,如果你想更改目录,请加上–prefix=/yourpath) make make test (如果出错可以忽略不计) make install
刷新动态库配置ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl
chmod +777 /etc/ld.so.conf(不一定需要) gedit /etc/ld.so.conf
在文件末尾加入 : /usr/local/ssl/lib
验证是否正确:
openssl version -a
以上就是openssl安装步骤。
注意事项:
1.在编译make过程中,可能会出现/usr/bin/pod2man错误,直接删除
sudo rm –rf /usr/bin/pod2man
2.如果以前安装过新的版本,要把彻底删除
四、 Nodejs安装与配置
包含ecdsa.h的文件夹全删除
通过查找指令查找相关文件。
locate ecdsa.h
3.必须在linux中用tar命令解压,否则make时候会出错
五、 solc安装(solidity语言编译器)我比较推荐直接从官网下载二进制包,直接做关联。
官方下载地址:http://nodejs.cn/download/
淘宝镜像地址:http://nodejs.cn/download/
我使用的版本是:node-v8.9.3-linux-x86.tar.xz
(后面安装Remix时候,建议换成node-v6.9.3-linux-x86.tar.gz)
下载之后,由于是tar.xz格式的压缩文件,所以需要用下面的命令解压:
解压成功之后即是可以运行的二进制文件,只需要为node何npm建立两个软连接,使之可以全局运行即可:sudo xz -d node-v8.9.3-linux-x86.tar.xz sudo tar -xvf node-v8.9.3-linux-x86.tar sudo mv -f node-v8.9.3-linux-x86 /usr/local/nodejs
验证是否成功:sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin/node sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
npm -v node -v
以上则完成安装。
参考官方网站:
执行以下命令:
sudo npm install -g solc sudo npm install -g solc-cli
sudo ln -s /usr/local/nodejs/bin/solc /usr/local/bin/solc sudo ln -s /usr/local/nodejs/bin/solcjs /usr/local/bin/solcjs
六、 安装ethereum/cpp-ethereum(以太坊客户端geth)
官方网站:https://ethereum.github.io/go-ethereum/
执行以下命令:
sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum
安装完成后检查
七、 testrpc安装与配置
1.安装pip(先执行2)(如果已安装过,忽略)pip要最新版本
pip install eth-testrpc python -m pip install -upgrade pip
2.在Ubuntu上,必要的软件包(建议直接搬过去)
- build-essential
- automake
- pkg-config
- libtool
- libffi-dev
- libgmp-dev
- libssl-dev
- python-dev
- ……
注:第二条指令是最主要的sudo apt-get install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python3.5 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev libssl-dev sudo apt-get install build-essential automake pkg-config libtool libffi-dev libgmp-dev python-dev libssl-dev
3.建议下载secp256k1包版本测试下
secp256k1-0.13.2.tar.gz
通过解压,安装看下结果:
sudo tar -zxvf secp256k1-0.13.2.tar.gz cd secp256k1-0.13.2 sudo python setup.py install
出现上图测试安装成功,证明所关联的包全部安装上。
如果出现一下问题:
/tmp/pip-build-snlkkifk/secp256k1/libsecp256k1/src/tests.c:3702:52: error: dereferencing pointer to incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ valid_openssl = !BN_is_negative(sig_openssl->r) && !BN_is_negative(sig_openssl->s) && BN_num_bits(sig_openssl->r) > 0 && BN_num_bits(sig_openssl->r) <= 256 && BN_num_bits(sig_openssl->s) > 0 && BN_num_bits(sig_openssl->s) <= 256; ^ Makefile:1049: recipe for target 'src/tests-tests.o' failed make: *** [src/tests-tests.o] Error 1 Traceback (most recent call last): File "
", line 1, in File "/tmp/pip-build-snlkkifk/secp256k1/setup.py", line 295, in "Topic :: Security :: Cryptography" File "/usr/local/python3/lib/python3.5/site-packages/setuptools-38.2.5-py3.5.egg/setuptools/__init__.py", line 129, in setup File "/usr/local/python3/lib/python3.5/distutils/core.py", line 148, in setup dist.run_commands() File "/usr/local/python3/lib/python3.5/distutils/dist.py", line 955, in run_commands self.run_command(cmd) File "/usr/local/python3/lib/python3.5/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/usr/local/python3/lib/python3.5/site-packages/setuptools-38.2.5-py3.5.egg/setuptools/command/install.py", line 61, in run File "/usr/local/python3/lib/python3.5/distutils/command/install.py", line 539, in run self.run_command('build') File "/usr/local/python3/lib/python3.5/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/local/python3/lib/python3.5/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/usr/local/python3/lib/python3.5/distutils/command/build.py", line 135, in run self.run_command(cmd_name) File "/usr/local/python3/lib/python3.5/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/local/python3/lib/python3.5/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/tmp/pip-build-snlkkifk/secp256k1/setup.py", line 217, in run subprocess.check_call(["make"], cwd=build_temp) File "/usr/local/python3/lib/python3.5/subprocess.py", line 584, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['make']' returned non-zero exit status 2
上述问题则是openssl包版本不正确,请参考步骤三。
4.安装TestRPC
下面有两种方法,建议使用方法(2)
(1)官网:https://github.com/pipermerriam/eth-testrpc
安装指令是:
pip install eth-testrpc
运行:
testrpc
但是装完之后找不到testrpc。
(2)直接通过npm安装
testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更为方便快捷。安装Ethereum客户端来支持JSON RPC API调用开发环境,推荐使用EthereumJS。
testrpc存放我的路径:/usr/local/nodejs/binsudo npm install -g ethereumjs-testrpc
做个链接
命令行中输入testrpc,显示如下sudo ln -s /usr/local/nodejs/bin/testrpc /usr/bin/testrpc
testrpc
至此testrpc安装成功。
八、 truffle安装
官方地址:https://github.com/trufflesuite/truffle
安装指令:
sudo npm install -g truffle sudo ln -s /usr/local/nodejs/bin/truffle /usr/local/bin/truffle
我新建一个文件夹MyProject,执行指令:
cd MyProject truffle init
至此安装完成。
九、 Remix安装
以太坊官方推荐的智能合约开发IDE,适合新手,可以在浏览器中快速部署测试智能合约。
官方地址: https://github.com/ethereum/browser-solidity
安装步骤:git clone https://github.com/ethereum/browser-solidity cd browser-solidity npm install npm run prepublish
如果npm install 出现mkdir等没有权限
gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/summer/browser-solidity/node_modules/scrypt/build' gyp ERR! System Linux 4.10.0-28-generic gyp ERR! command "/usr/local/nodejs/bin/node" "/usr/local/nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /summer/browser-solidity/node_modules/scrypt
则需要在npm install --unsafe-perm 即可。
启动命令:
npm start
访问Remix:http://127.0.0.1:8080
界面如下:
注:安装的时候如果出现权限问题
则需要更换npm的版本,我后期使用3.10.10版本xiatian@ubuntu:/software/browser-solidity$ sudo npm install npm WARN deprecated [email protected]: ?? Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! npm ERR! code 1 npm ERR! Command failed: /usr/bin/git clone -q https://github.com/ethereum/solc-js.git /home/xiatian/.npm/_cacache/tmp/git-clone-70fe5ffe npm ERR! /home/xiatian/.npm/_cacache/tmp/git-clone-70fe5ffe/.git: Permission denied npm ERR! npm ERR! A complete log of this run can be found in: npm ERR! /home/xiatian/.npm/_logs/2018-01-04T01_54_22_397Z-debug.log
/**********************************************************************************************/
以上是所有需要的安装文件以及配置。
注:npm install ……安装过程中会出现问题,试着清空/var/lib/dpkg/info目录下面的内容
(see https://docs.npmjs.com/getting-started/installing-node)