最近EOS的話題很多刺覆,很多人都把它當做區(qū)塊鏈3.0技術(shù)。在認真看完白皮書后史煎,我對EOS有了一個大體的認識谦屑,接下來就是動手操作了,于是就開始搭建EOS的測試環(huán)境劲室。
本文不是搭建EOS測試環(huán)境的教程伦仍,更多是記錄自己在搭建EOS測試環(huán)境過程中遇到的一些問題,希望能對入門EOS的同學有幫助很洋。
學習技術(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
很不幸孕暇,自動安裝失敗了仑撞,于是接下來我按照官方的文檔赤兴,手動安裝。
EOS是使用C++14開發(fā)的隧哮,需要使用cmake進行編譯桶良,以下是EOS的依賴庫:
Clang 4.0.0
CMake 3.5.1
Boost 1.64
OpenSSL
LLVM 4.0
secp256k1-zkp
binaryen
首先手動安裝CMake 3.5.1, 然后按照官方文檔陸續(xù)安裝Clang 4.0.0、Boost 1.64沮翔、secp256k1-zkp陨帆、binaryen、LLVM 4.0
但是在編譯LLVM和clang的時候采蚀,死活編不過去疲牵。
make -j4 install
以下是報錯信息:
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
看報錯信息,還以為是g++編譯器榆鼠,于是我各種查纲爸,查編譯器版本、查依賴庫文件和頭文件璧眠,無果缩焦。
最后百度才知道读虏,主要原因是內(nèi)存不足责静,真坑!
這個問題可以通過加大內(nèi)存或者臨時使用交換分區(qū)來解決盖桥,以下是臨時使用交換分區(qū)方法:
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
接下來編譯就可以了
make -j4 install
如果是使用虛擬機灾螃,建議將虛擬機的CPU核和內(nèi)存調(diào)高點,否則編譯很慢揩徊。
接下來安裝Doxygen和MongoDB腰鬼,然后配置環(huán)境變量
echo "export WASM_LLVM_CONFIG=~/wasm-compiler/llvm/bin/llvm-config" >> ~/.bash_profile
再cmake,就不會有警告信息
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凌箕,會有以下的報錯:
一開始拧篮,我還以為是boost的問題,查了很久也沒查到什么牵舱,最后試著先解決第二個異常串绩,也就是注釋掉前面的'enable-stale-production',沒想到問題就解決了芜壁。
請注意礁凡,config.ini中的genesis-json需要配置成自己本地的路徑高氮。在這里,我的路徑是
genesis-json = /home/can/eos/genesis.json
搞定了上面以后顷牌,運行eosd纫溃,就可以看到EOS的歡迎界面了