怎樣在不滿足硬體條件的ubuntu上搭建EOS開發環境?
5 人贊了文章
00 導言
EOS是Block.One公司研發的一個區塊鏈底層公鏈系統,是繼比特幣、以太坊後的第三代區塊鏈平台,目的是解決現有的區塊鏈應用性能低、安全性差、開發難度高以及過度依賴手續費的問題,實現分散式應用的性能擴展。
要想學習EOS開發,先得學習怎麼搭建EOS開發環境。但學習EOS起點真不低,環境搭建要求的硬體條件較高,過程坑多。自己摸索可能需要2-3天甚至一周的時間才能搭建成功。看到這裡,喜歡挑戰的你千萬別嚇著了。
EOS目前支持的操作系統如下:
硬體要求如下:
目前網路上的環境搭建教程都是比較順利,可能大部分都是土豪,都是在配置比較高的電腦上完成的。但咱們屌絲是沒有錢買高配電腦(承認自己是屌絲是一件非常需要勇氣的事),可能大部分內存是4G,CPU是2核的電腦。下面我們就來教教大家怎麼在內存4G,CPU 2核的虛擬機操作系統(Ubuntu)里搭建EOS的開發環境。
Ready ...... go!
01:下載Oracle VirtualBox虛擬機
點擊下載:Virtual Box下載
02:安裝Oracle VirtualBox虛擬機
右擊剛剛下載的exe安裝文件,以管理員運行,默認下一步下一步就可安裝好。
03:下載ubuntu操作系統
在這裡我們下載最新的Ubuntu,下載的文件比較大(1.8G左右),下載快慢就決定你的網速啦。
點擊下載:Ubuntu LTS
04:在VirtualBox中安裝ubuntu操作系統(重點)
敲黑板,接下來這部分是重點。
打開虛擬機點擊新建並切換到專家模式
選擇ubuntu64位,並設置4G內存
設置為50G內存,然後點創建
右擊設置,然後點擊 系統,設置cpu為2核
點擊啟動
選擇下好的iso啟動盤
選擇中文簡體
然後一路點繼續,遇到下面這步停下來,設置磁碟分區,這一步是最關鍵了,點擊其他選項。
新建分區表
點空閑,再點+號創建新的分區
創建8G的swap分區
繼續創建200M的分區,掛載到/boot
繼續創建15G的分區,掛載到根目錄/
剩餘的空間全部分給/home
全部分區情況
安裝成功後點擊重啟
05:安裝git
進入ubuntu系統,右擊桌面,打開終端,執行下面命令安裝git
$ sudo apt-get install git
06:下載EOS源代碼
$ cd ~$ git clone https://github.com/eosio/eos --recursive
如果克隆代碼時忘了帶--recursive參數,可以切換到項目路徑下面執行如下命令來更新子模塊。
$ git submodule update --init --recursive
07:下載mongodb
在執行09:編譯和構建的過程中會下載安裝很多的依賴包和組件,其中在下載mongodb時可能會卡住,在這裡,我們可以用迅雷或者其他下載軟體提前下好。然後在自己的$HOME目錄下,創建opt目錄,並把下載好的mongodb移動到該目錄下。
$ cd ~$ mkdir opt$ mv 下載mongodb-linux-x86_64-3.6.3.tgz opt
官網下載: mongodb-linux-x86_64-3.6.3.tgz 百度網盤下載: mongodb-linux-x86_64-3.6.3.tgz 密碼:wex9
08:修改build腳本 (重點)
打開build腳本文件
$ cd ~/eos/scripts$ gedit eosio_build_ubuntu.sh
在第10行左右找到JOBS=...注釋掉,並進行替換。
在第28行左右找到if...,這一行的腳本是用來判斷計算機的內存是否小於7000 ( 即7G )時,如果小於則列印提示信息並終止執行。把這一行注釋掉,並進行替換。
在第210行左右找到STATUS=...,這一行是下載mongodb的,這個地方可能會卡住,所以我們在07提前下載好並放入opt目錄。把210~215這幾行注釋掉。
修改好,記得保存!
09:編譯和構建
到此為止,我們一切準備就緒,可以開始編譯構建了。執行如下命令開始編譯構建。
$ cd ~/eos$ ./eosio_build.sh
注意:編譯構建的過程中會下載和構建其他的依賴包和組件,如boost。所以一定要保持網路暢通。編譯過程會持續幾個小時甚至1天時間,請耐心等待!去找點其他事做,比如和小姐姐約個會什麼的。
如果編譯構建成功,會顯示如下圖。
10:安裝
編譯構建成功後,可以開始安裝了。執行如下命令進行安裝。
$ cd ~/eos$ sudo make install
11:啟動運行節點
先執行一次nodeos啟動節點,不要管對錯,按以下步驟操作,
$ nodeos
打開config.ini找到如下選項並進行對照修改:
$ gedit ~/.local/share/eosio/nodeos/config/config.inienable-stale-production = trueproducer-name = eosioplugin = eosio::producer_pluginplugin = eosio::wallet_api_pluginplugin = eosio::chain_api_pluginplugin = eosio::http_pluginplugin = eosio::history_api_plugin
因為剛剛已經執行過一次nodeos命令了,它會在~/.local/share/eosio/nodeos/data/ 這個目錄下生成相應的文件,如果現在重新執行nodeos命令,可能會報出如下錯誤:
Failed to start a pending block, will try again later ...
這時需要先刪除這個目錄下的所有文件,當然只刪除這一次就可以了,以後不用重複這個動作。
$ rm -rf ~/.local/share/eosio/nodeos/data/*
刪除後再次運行nodeos命令
$ nodeos
現在我們可以看到節點在不斷產生區塊了
再另外打開一個終端,執行如下命令可以查看當前區塊鏈信息。
$ cleos get info
12:總結
到這裡,我們已經成功的部署好本地的EOS開發環境了。要搭建成功,記得下面兩個關鍵點。
1. 內存不夠,swap來湊。因為eos的編譯和構建過程很耗內存,在編譯過程中我查看過它的內存消耗,在某個時刻4G內存確實達到了100%的使用,然後開始使用swap,個人認為內存和swap加起來最好大於10G。2. 記得修改構建腳本的檢測條件。雖然我們的內存和swap加起來已經超過8G甚至更多,但腳本只檢測內存的值是否大於7G,因此我們要把這個條件改小一些。13:參考資料
- EOS Dawn 4.0.0 開發環境搭建
推薦閱讀:
※坐等空投?這個EOS糖果你該這麼領!
※6.5日消息面補完 EOS好不好,長了腦子才知道
※EOS十問十答,韭菜必讀
※幣圈一年賺9倍的操作方法,原來如此簡單!
※看,在EOS上空翱翔的黑天鵝!