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