Ubuntu下对以太坊开发环境搭建介绍

前言:

    这段时间正在研究以太坊,对于新的内容首先要对其开发环境进行搭建,这几天一直在网上搜索相关内容,感觉不是很详细,多多少少有些问题。所以准备对此写下来备用。


资源下载:http://download.csdn.net/download/xiatiancc/10183412

Ubuntu版本:(此版本先用实验搭建环境,建议使用linux 64位版本)

  • 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) 

一、 JDK 安装与配置


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 


Ubuntu下对以太坊开发环境搭建介绍_第1张图片


3.使修改生效:

source /etc/profile   //使修改立即生效   
echo $PATH   //查看PATH值  

Ubuntu下对以太坊开发环境搭建介绍_第2张图片


4.查看JAVA版本

java -version  

至此,JDK安装成功。

二、 python 安装与配置

下载路径:https://www.python.org/

我使用的版本是:Python-3.5.0.tar.xz

通过解压指令将其解压,并且编译

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
我将其放到/usr/local/python3位置;

做个软连接

ln -s /usr/local/python3/bin/python3.5 /usr/local/bin/python
验证:

python -V


这样python安装成功。

后期安装:zlib,pip,setuptools

1.pip安装

sudo apt install python-pip
2. zlib安装

首先安装指令:

sudo apt-get install zlib1g-dev
其次对python重新编译
cd /usr/local/python3
make 
make install
3. setuptools安装

下载安装包:setuptools-38.2.5.zip
对其进行解压,编译:

sudo unzip setuptools-38.2.5.zip
sudo python setup.py build 
sudo python setup.py install 



三、 openssl 安装与配置

注意:现在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
Ubuntu下对以太坊开发环境搭建介绍_第3张图片

验证是否正确:

openssl version -a

Ubuntu下对以太坊开发环境搭建介绍_第4张图片

以上就是openssl安装步骤。


注意事项:

1.在编译make过程中,可能会出现/usr/bin/pod2man错误,直接删除

sudo rm –rf /usr/bin/pod2man


2.如果以前安装过新的版本,要把彻底删除

包含ecdsa.h的文件夹全删除

通过查找指令查找相关文件。

locate ecdsa.h

3.必须在linux中用tar命令解压,否则make时候会出错


四、 Nodejs安装与配置

比较推荐直接从官网下载二进制包,直接做关联。

官方下载地址: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格式的压缩文件,所以需要用下面的命令解压:

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
解压成功之后即是可以运行的二进制文件,只需要为node何npm建立两个软连接,使之可以全局运行即可:
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
Ubuntu下对以太坊开发环境搭建介绍_第5张图片
以上则完成安装。


五、 solc安装(solidity语言编译器)

参考官方网站:

执行以下命令:

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


安装完成后检查

geth version
Ubuntu下对以太坊开发环境搭建介绍_第6张图片
以上就表示安装完成


七、 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
Ubuntu下对以太坊开发环境搭建介绍_第7张图片

出现上图测试安装成功,证明所关联的包全部安装上。

如果出现一下问题:

/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。


sudo npm install -g ethereumjs-testrpc
testrpc存放我的路径:/usr/local/nodejs/bin


做个链接

sudo ln -s /usr/local/nodejs/bin/testrpc /usr/bin/testrpc
命令行中输入testrpc,显示如下
testrpc
Ubuntu下对以太坊开发环境搭建介绍_第8张图片

至此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
Ubuntu下对以太坊开发环境搭建介绍_第9张图片

至此安装完成。


九、 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 
Ubuntu下对以太坊开发环境搭建介绍_第10张图片
访问Remix:
http://127.0.0.1:8080
界面如下:
Ubuntu下对以太坊开发环境搭建介绍_第11张图片

注:安装的时候如果出现权限问题

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的版本,我后期使用3.10.10版本

/**********************************************************************************************/


以上是所有需要的安装文件以及配置。


注:npm install ……安装过程中会出现问题,试着清空/var/lib/dpkg/info目录下面的内容

(see https://docs.npmjs.com/getting-started/installing-node)



你可能感兴趣的:(区块链)