eos -1 编译之路

最近在研究区块链,作为被认为最有前景的项目eos,当然不能放过。

ubuntu 16.10

1.

apt-get install -y git-core automake autoconf libtool build-essential pkg-config libtool mpi-default-dev libicu-dev python-dev python3-dev libbz2-dev zlib1g-dev libssl-dev clang-4.0 lldb-4.0 lld-4.0


初始环境的搭建,这些有些必须装,有些可以不用这么严格装,比如那个mangodb就不用一定按着他这个来,但是autoconf必须要。。。

Install boost 1.64

cd /tmp

wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz

tar zxf boost_1_64_0.tar.gz

cd boost_1_64_0

./bootstrap.sh --with-toolset=clang

./b2 -a -j$(nproc) stage release -sHAVE_ICU=1 --sICU_PATH=/usr

./b2 install --prefix=/usrrm -rf /tmp/boost_1_64_0*

这个比较耗时,但是不会有啥错误,还好。

Install secp256k1-zkp from cryptonomex repo

cd /tmpgit

clone https://github.com/cryptonomex/secp256k1-zkp.git

cd secp256k1-zkp

./autogen.sh

./configuremakemake install

ldconfig

rm -rf /tmp/secp256k1-zkp*

Install WASM compiler

cd /tmp && mkdir wasm-compiler && cd wasm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git
cd llvm/tools && git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/clang.git
cd .. && mkdir build && cd build
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/opt/wasm -DLLVM_TARGETS_TO_BUILD= \-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly -DCMAKE_BUILD_TYPE=Release ../
make -j$(nproc) install
rm -rf /tmp/wasm-compiler
set(LLVM_ENABLE_RTTI ON)
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=${HOME}/opt/wasm -DLLVM_TARGETS_TO_BUILD= -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly -DLLVM_ENABLE_RTTI=ON -DCMAKE_BUILD_TYPE=Release ../
这个也比较耗时,而且会出现gcc internal error, 为啥,因为你内存不够用!!!!!ccccc,我试了好几次才弄明白

Install GMP

cd /tmp
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar -xvf gmp-6.1.2.tar.bz2 && cd gmp-6.1.2
./configure && make && sudo make install
make check
rm -rf /tmp/gmp-6.1.2


2.

Install EOS software

cd ~/
git clone https://github.com/EOSIO/eos.git --recursive
cd eos && mkdir build && cd build
WASM_LLVM_CONFIG=/opt/wasm/bin/llvm-config cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_INSTALL_PREFIX=/opt/eos ..
make -j$(nproc)
sudo make install
sudo cp ./programs/eosd/eosd /usr/bin/eosd    # Optional
sudo cp ./programs/eosc/eosc /usr/bin/eosc    # Optional
cp ../genesis.json ~/   

这个也很耗时间,这个里面几个设置跟前面的环境准备是强关联的,如果没有配置对,他的编译会出问题的,比如那个clang的设置

还有那个eosd的名字,更新的工程里是改了名字的,这个倒不重要,只是有时候会出现奇怪的问题,比如说没有私钥不能创建区块




阅读更多

更多精彩内容