2021-05-12 14:32:11
在Ubuntu中安裝EOS
一、EOS公鏈
2018年6月3日,Block.one宣布EOSIO 1.0正式發布。
EOS主網(eosforce.io)已於6月15日正式上線。
EOS是Block.One公司開發的一款超高效能的類作業系統區塊鏈,其設計目標是:
- 支援大量使用者,可能是上億級別的使用者
- 消除手續費(可以免費使用)
- 超高效能(支援百萬級TPS)
- 具備橫向和縱向效能擴充套件能力
專案的程式碼庫:https://github.com/EOSIO/
專案的wiki地址:https://github.com/EOSIO/eos/wiki
二、EOS團隊
EOS的創始團隊是Block.One公司
CEO:Brendan Blumer 一個持續的成功創業者2001年至今建立過多家成功的企業,2017年成立了BlockOne。
CTO:Dan Larimer 由於其在github上的名字是ByteMaster,所以江湖人稱BM,開發過BTS、Steemit這兩個經過長時間驗證的成功區塊鏈專案。
EOS官網:https://eos.io/
BlockOne公司官網:http://www.block.one/
投資方:Inblockchain、Blockchain Capital、FenbushiVC等(來源於官網)
三、EOS代幣
市面上流通的EOS代幣最初是基於以太坊發行的ERC20代幣,代號為EOS,目前通過將以太坊token對映到EOS主網,可以兌換成主網的真正EOS Token。
四、EOS代幣如何增值?
跟其他Token不同,EOS代幣代表的是是EOS主網資源的擁有權,也就是說只要你持有部分EOS,那麼EOS主網的部分資源理論上就永遠屬於你,這也是為什麼EOS區塊鏈能做到免費給使用者提供服務的原因。EOS是一個為DApp而生的超高效能公鏈,越往後發展上面的應用也就會越多,當EOS網路上的應用越多時,EOS的主網資源就會越寶貴,這時候EOS代幣就會越值錢。
目前EOS代幣的價格約55元人民幣左右,流通市值約365億人民幣。
五、常用資源
https://eosflare.io/ EOS區塊鏈瀏覽器(對應以太坊的https://etherscan.io/)
https://block.cc/coin/eos 檢視區塊鏈資訊
前言
本文以eosio_build.sh官方指令碼的方式在Ubuntu 18.04 LTS Desktop版+VMWare10環境下安裝EOS最新版本(2018/07/01),根目錄為使用者家目錄~/,克隆完EOS對應的目錄為~/eos,下一篇將介紹以Docker的方式來安裝EOS(推薦學習下一篇)。
一、需要的軟硬體環境
1、軟體
以下為官方推薦的系統環境:
- CentOS 7
- Ubuntu 16.04 LTS (Ubuntu 16.10 推薦)
- Ubuntu 18.04 LTS
- Amazon 2017.09 或以上
- Fedora 25或以上 (Fedora 27 推薦)
- Mint 18
- MacOS Darwin 10.12 或以上 (MacOS 10.13.x 推薦)
2、硬體
- 8G記憶體(官方建議而已,實際上用不了這麼多,可以在編譯指令碼中修改繞過,4G驗證可行)
- 20G硬碟空間
更多詳情參見EOS官方wiki:https://github.com/EOSIO/eos/wiki
二、下載EOS安裝包
1、克隆程式碼庫
$ cd ~
$ git clone https://github.com/EOSIO/eos --recursive #VPN新加坡線路,可以直接下載,不用設定CDN對映
【神坑1】如果出現以下提示:
ssh: Could not resolve hostname github.com: Temporary failure in name resolution
可能原因是沒有找到最近的github cdn伺服器。
解決辦法:
sudo vim /etc/hosts
在檔案末尾加入一行:
192.30.253.113 github.com #香港線路
如果克隆程式碼時未帶--recursive引數或者子模組克隆時報錯,那麼可切換到專案路徑下面執行如下命令,更新子模組。
$ cd ~/eos
$ git submodule update --init --recursive
小提示:下載完成後,可以將~/eos資料夾打包備份,以便下次可以直接解壓編譯,節約時間。
三、開始編譯EOS
為了避免許可權不夠,導致中途執行出錯,我們在指令碼前面加上sudo。
$ cd ~/eos
$ sudo ./eosio_build.sh
【神坑2】如果出現如下提示:記憶體不足7G,
[sudo] simon 的密碼:
Beginning build version: 1.2
2018年 07月 01日 星期日 10:49:30 UTC
User: root
git head id: 90fefdd12a4797e47890910f11dd7b60f1435ed4
Current branch: master
ARCHITECTURE: Linux
OS name: Ubuntu
OS Version: 18.04
CPU speed: 3292.429Mhz
CPU cores:
Physical Memory: 3933 Mgb
Disk install: /dev/sda1
Disk space total: 39G
Disk space available: 29G
Your system must have 7 or more Gigabytes of physical memory installed.
Exiting now.
解決辦法:
修改記憶體限制方法:
找到~/eos/scripts/eosio_build_ubuntu.sh(系統環境不同,指令碼檔名不同)
開啟檔案,定位到27行if [ "${MEM_MEG}" -lt 7000 ]; then 數位修改成4000,即4G記憶體,安裝前在VMWare10中可以將記憶體設定成4G多一點,因為剛好4G仍然有可能報記憶體不足。
修改硬碟空間限制方法:
開啟~/eos/eosio_build.sh,定位到52行:
DISK_MIN=20
單位:GB,一般不差硬碟空間,所以不建議修改。
【神坑3】MongoDB安裝失敗,可能原因是git沒有克隆成功
Checking MongoDB installation.
Installing MongoDB 3.6.3.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:30 --:--:-- 0
curl: (28) Operation timed out after 30002 milliseconds with 0 out of 0 bytes received
Unable to download MongoDB at this time.
Exiting now.
解決辦法:
開啟~/eos/scripts/eosio_build_ubuntu.sh檔案,搜尋Unable to download MongoDB at this time,定位到錯誤提示行,依次將下列兩個安裝包手工下載至~/家目錄:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz
https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz
注釋掉208-213行,在213行後加入cp "${HOME}/mongodb-linux-x86_64-3.6.3.tgz" "${HOME}/opt/"
注釋掉282-291行,在291行後加入cp "${HOME}/mongo-c-driver-1.9.3.tar.gz" "${TEMP_DIR}/"
#注釋掉208-213行
#STATUS=$(curl -LO -w '%{http_code}' --connect-timeout 30 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz)
#if [ "${STATUS}" -ne 200 ]; then
# printf "tUnable to download MongoDB at this time.n"
# printf "ntExiting now.nn"
# exit 1;
#fi
#增加一行
cp "${HOME}/mongodb-linux-x86_64-3.6.3.tgz" "${HOME}/opt/" #手工將檔案包下載下來拷貝到家目錄~/
#注釋掉282-291行
# STATUS=$(curl -LO -w '%{http_code}' --connect-timeout 30 https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz)
# if [ "${STATUS}" -ne 200 ]; then
# if ! rm -f "${TEMP_DIR}/mongo-c-driver-1.9.3.tar.gz"
# then
# printf "ntUnable to remove file %s/mongo-c-driver-1.9.3.tar.gz.n" "${TEMP_DIR}"
# fi
# printf "tUnable to download MongoDB C driver at this time.n"
# printf "tExiting now.nn"
# exit 1;
# fi
#增加一行
cp "${HOME}/mongo-c-driver-1.9.3.tar.gz" "${TEMP_DIR}/" #手工將檔案包下載下來拷貝到家目錄~/
【神坑4】MongoDB C driver無法完成編譯
該程式為 x86_64-pc-linux-gnu 編譯
報告錯誤到 <bug-make@gnu.org>
Error compiling MongoDB C driver.
Exiting now.
解決辦法:
開啟指令碼,定位到319行,或搜尋Error compiling MongoDB C driver.
經查發現if ! make -j"${JOBS}"中的JOBS值為空,原因是第7行CPU_CORE=$( lscpu | grep "^CPU(s)" | tr -s ' ' | cut -d -f2 || cut -d' ' -f2 )沒有獲取到CPU的個數(奇葩了),在第8行增加CPU_CORE=2即可。
【神坑5】llvm編譯器安裝包克隆失敗
Checking for LLVM with WASM support.
Installing LLVM with WASM
正克隆到 'llvm'...
remote: Counting objects: 24803, done.
remote: Compressing objects: 100% (23960/23960), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: 過早的檔案結束符(EOF)
fatal: index-pack 失敗
Unable to clone llvm repo @ https://github.com/llvm-mirror/llvm.git.
Exiting now.
解決辦法:
開啟~/eos/scripts/eosio_build_ubuntu.sh檔案,注釋掉455-472行,即從if ! mkdir "${TEMP_DIR}/llvm-compiler" 2>/dev/null到fi行。再執行如下命令:
mkdir -p /tmp/llvm-compiler
cd /tmp/llvm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git
擴充套件閱讀:Ubuntu編譯安裝llvm+clang
在經過190分鐘左右(去除中間處理坑的時間,網路穩定的情況下),終於編譯完成,此次沒有踩到LLVM相關的坑。
編譯成功後顯示:
_______ _______ _______ _________ _______
( ____ ( ___ )( ____ __ __/( ___ )
| ( /| ( ) || ( / ) ( | ( ) |
| (__ | | | || (_____ | | | | | |
| __) | | | |(_____ ) | | | | | |
| ( | | | | ) | | | | | | |
| (____/| (___) |/____) |___) (___| (___) |
(_______/(_______)_______)_______/(_______)
哈哈,恭喜Simon,終於通關了~~~
EOSIO has been successfully built. 01:10:31
To verify your installation run the following commands:
export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/simon/opt/mongodb/bin/mongod -f /home/simon/opt/mongodb/mongod.conf & cd /home/simon/eos/build; make test
For more information:
EOSIO website: https://eos.io
EOSIO Telegram channel @ https://t.me/EOSProject
EOSIO resources: https://eos.io/resources/
EOSIO Stack Exchange: https://eosio.stackexchange.com
EOSIO wiki: https://github.com/EOSIO/eos/wiki
四、安裝EOS
編譯完成後,在EOSIO圖形下可以看到這幾個命令,執行完後,EOS即可安裝成功!
cd ~/eos/build
sudo make install
export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/simon/opt/mongodb/bin/mongod -f /home/simon/opt/mongodb/mongod.conf & cd /home/simon/eos/build; make test
五、啟動單節點測試網路
nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
六、測試
在瀏覽器位址列存取 http://localhost:8888/v1/chain/get_info
七、附編譯EOS依賴列表
1. clang-4.0
2. lldb-4.0
3. libclang-4.0-dev
4. cmake
5. make
6. automake
7. libbz2-dev
8. libssl-dev
9. libgmp3-dev
10. autotools-dev
11. build-essential
12. libicu-dev
13. python2.7-dev
14. python3-dev
15. autoconf
16. libtool
17. curl
18. zlib1g-dev
19. doxygen
20. graphviz
安裝前也可以先裝依賴,執行如下命令:
sudo apt-get install clang-4.0 lldb-4.0 libclang-4.0-dev cmake make automake libbz2-dev libssl-dev libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev python3-dev autoconf libtool zlib1g-dev doxygen graphviz
相關文章