最近EOS的話題很多,很多人都把它當(dāng)做區(qū)塊鏈3.0技術(shù)。在認(rèn)真看完白皮書后,我對(duì)EOS有了一個(gè)大體的認(rèn)識(shí),接下來就是動(dòng)手操作了,于是就開始搭建EOS的測試環(huán)境。
本文不是搭建EOS測試環(huán)境的教程,更多是記錄自己在搭建EOS測試環(huán)境過程中遇到的一些問題,希望能對(duì)入門EOS的同學(xué)有幫助。
學(xué)習(xí)技術(shù),最好是直接看EOS的官方文檔,此外,也可以參考歐鏈發(fā)布的文檔。
廢話不多說,開始搭建EOS測試環(huán)境。
以下是我使用的開發(fā)環(huán)境:
操作系統(tǒng):ubuntu 16.04 desktop 64位
起初,我按照EOS在GitHub上的官方文檔,一步步開始編譯
git clone https://github.com/eosio/eos --recursive
cd eos
./build.sh ubuntu
很不幸,自動(dòng)安裝失敗了,于是接下來我按照官方的文檔,手動(dòng)安裝。
EOS是使用C++14開發(fā)的,需要使用cmake進(jìn)行編譯,以下是EOS的依賴庫:
Clang 4.0.0
CMake 3.5.1
Boost 1.64
OpenSSL
LLVM 4.0
secp256k1-zkp
binaryen
首先手動(dòng)安裝CMake 3.5.1, 然后按照官方文檔陸續(xù)安裝Clang 4.0.0、Boost 1.64、secp256k1-zkp、binaryen、LLVM 4.0
但是在編譯LLVM和clang的時(shí)候,死活編不過去。
make -j4 install
以下是報(bào)錯(cuò)信息:
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
看報(bào)錯(cuò)信息,還以為是g++編譯器,于是我各種查,查編譯器版本、查依賴庫文件和頭文件,無果。
最后百度才知道,主要原因是內(nèi)存不足,真坑!
這個(gè)問題可以通過加大內(nèi)存或者臨時(shí)使用交換分區(qū)來解決,以下是臨時(shí)使用交換分區(qū)方法:
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
接下來編譯就可以了
make -j4 install
如果是使用虛擬機(jī),建議將虛擬機(jī)的CPU核和內(nèi)存調(diào)高點(diǎn),否則編譯很慢。
接下來安裝Doxygen和MongoDB,然后配置環(huán)境變量
echo "export WASM_LLVM_CONFIG=~/wasm-compiler/llvm/bin/llvm-config" >> ~/.bash_profile
再cmake,就不會(huì)有警告信息
cmake -DBINARYEN_BIN=~/binaryen/bin -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib ..
make -j4
make install
值得一提的是,官網(wǎng)沒有最后的一步,這一步把eos的工具安裝到系統(tǒng)目錄中,執(zhí)行這一步后在任何目錄下都可以使用eos的工具。
接下來需要修改eosd的配置文件,直接把官網(wǎng)的內(nèi)容,追加到config.ini,會(huì)有以下的報(bào)錯(cuò):

一開始,我還以為是boost的問題,查了很久也沒查到什么,最后試著先解決第二個(gè)異常,也就是注釋掉前面的'enable-stale-production',沒想到問題就解決了。
請(qǐng)注意,config.ini中的genesis-json需要配置成自己本地的路徑。在這里,我的路徑是
genesis-json = /home/can/eos/genesis.json
搞定了上面以后,運(yùn)行eosd,就可以看到EOS的歡迎界面了
