EOS开发环境构建
一、获取代码
从git下载eos项目以及其依赖的子项目:
git clone https://github.com/EOSIO/eos --recursive
如果下载时没有添加--recursive,可以在下载的eos项目目录下运行以下命令来下载依赖的子项目:
git submodule update --init --recursive
因为我们需要一个稳定可用的版本来进行开发和测试,截止目前最新的稳定版本是dawn4.0,我们编译dawn4.0版本且后续开发以及测试都基于此版本进行。
git checkout dawn-v4.0.0
二、自动编译EOSIO
这是编译eosio的简单方法,使用了自动编译的脚本,自动编译脚本会根据系统平台来构建项目。
目前支持的os平台有:
1.Amazon 2017.09 and higher.
2.Centos 7.
3.Fedora 25 and higher (Fedora 27 recommended).
4.Mint 18.
5.Ubuntu 16.04 (Ubuntu 16.10 recommended).
6.MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended).
系统配置需求:
1.8GB RAM free required
2.20GB Disk free required
启动自动编译脚本执行编译:
cd eos
./eosio_build.sh
安装:
cd build
Sudo make install
三、手动编译EOSIO
我们将在centos 7上进行手动编译eosio项目。
1. 安装development toolkit
sudo yum --enablerepo=extras install centos-release-scl
sudo yum update
sudo yum install -y devtoolset-7
scl enable devtoolset-7 bash
sudo yum install -y python33.x86_64
scl enable python33 bash
sudo yum install git autoconf automake libtool make bzip2 \
bzip2-devel.x86_64 openssl-devel.x86_64 gmp-devel.x86_64 \
ocaml.x86_64 doxygen libicu-devel.x86_64 python-devel.x86_64 \
gettext-devel.x86_64
2. 安装cmake
cd ~
curl -L -O https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz
tar xf cmake-3.10.2.tar.gzcd cmake-3.10.2
./bootstrap
make -j$( nproc )
sudo make install
3. 安装boost
cd ~
curl -L https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.bz2 > boost_1.66.0.tar.bz2
tar xf boost_1.66.0.tar.bz2echo "export BOOST_ROOT=$HOME/boost_1_66_0" >> ~/.bash_profilesource ~/.bash_profilecd boost_1_66_0/
./bootstrap.sh "--prefix=$BOOST_ROOT"
./b2 install
4. 安装mongodb
mkdir ${HOME}/optcd ${HOME}/opt
curl -OL https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz
tar xf mongodb-linux-x86_64-amazon-3.6.3.tgz
rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz
ln -s ${HOME}/opt/mongodb-linux-x86_64-amazon-3.6.3/ ${HOME}/opt/mongodb
mkdir ${HOME}/opt/mongodb/data
mkdir ${HOME}/opt/mongodb/log
touch ${HOME}/opt/mongodb/log/mongod.log
tee > /dev/null ${HOME}/opt/mongodb/mongod.conf <<mongodconfsystemLog: destination: file path: ${HOME}/opt/mongodb/log/mongod.log logAppend: true logRotate: reopennet: bindIp: 127.0.0.1,::1 ipv6: truestorage: dbPath: ${HOME}/opt/mongodb/datamongodconf
export PATH=${HOME}/opt/mongodb/bin:$PATH
mongod -f ${HOME}/opt/mongodb/mongod.conf
5. 安装mongo组件
cd ~
curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz
tar xf mongo-c-driver-1.9.3.tar.gzcd mongo-c-driver-1.9.3
./configure --enable-static --enable-ssl=openssl --disable-automatic-init-and-cleanup --prefix=/usr/local
make -j$( nproc )
sudo make install
git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1cd mongo-cxx-driver/build
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j$( nproc )
6. 安装secp256k1-zkp
cd ~
git clone https://github.com/cryptonomex/secp256k1-zkp.gitcd secp256k1-zkp
./autogen.sh
./configure
make -j$( nproc )
sudo make install
7. 安装llvm&clang
mkdir ~/wasm-compilercd ~/wasm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.gitcd llvm/tools
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/clang.gitcd ..
mkdir buildcd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=.. -DLLVM_TARGETS_TO_BUILD= -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
-DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release ../
make -j$( nproc )
make install
8. 编译eos
cd eos
./eosio_build.sh
9. 安装
cd build
Sudo make instal