EOS挖坑筆記(一) 環境安裝(centos)

 

           不得不說,東西是要學的,哪怕是工具,總得搞搞纔可以應用。針對區塊鏈1.0,2.0來說,還是3.0時代比較適合我,關於EOS和比特幣、以太坊三點的基本問題可以瞭解下:EOS和比特幣、以太坊區別

目錄

一、勸退條件

二、相關資源

1、相關文檔:

2、壓縮包傳送門:

3、部分名詞簡介:

nodeos(node + eos = nodeos)

cleos(cli + eos = cleos)

keosd(key + eos = keosd)

eosio-cpp

4、編譯安裝的方式其實有4種

三、開始安裝

1、EOS-IO 安裝    

2、啓動節點並設置

3、啓動nodeos(主要是加載插件)

停止的方式是:

4、校驗是否安裝完畢

    1、檢查塊是否在生成

    2、使用cleos檢查錢包了

    3、校驗節點的端點是否有問題


一、勸退條件

無論使用什麼方式的編譯,都需要系統具備最低這樣的條件,否則是無法編譯的

    7GB RAM free required
    20GB Disk free required

理論上來說,如果是阿里/騰訊雲新人,買個3年這個配置還是很划算的,如果願意,否則就走虛擬機的路子吧,如果電腦開虛擬機也不能滿足的話,勸退+1.

 

二、相關資源

1、相關文檔:

官方文檔:https://developers.eos.io/eosio-home/docs

比較好的中文文檔(C語言的,我就發出來看看)https://eos.readthedocs.io/zh_CN/latest/

 EOS 安裝調試指南(中文) https://segmentfault.com/a/1190000017385885
    
  EOS 官方調試指南(英文)https://developers.eos.io/eosio-home/docs/setting-up-your-environment

2、壓縮包傳送門:

      EOS-IO: https://github.com/EOSIO/eos/releases/

  EOS-IO-CDT  https://github.com/EOSIO/eosio.cdt/releases/
 

過程中需要的包,如果自己網絡不行,可以進百度雲

鏈接:https://pan.baidu.com/s/1FL-g_ilqd-5bfJ4L8jV4Sg 
提取碼:2zbf 
 

 

3、部分名詞簡介:

nodeos(node + eos = nodeos)

           — 核心EOSIO node守護進程,可以配置插件來運行node,示例用途是塊生產、專用API端點和本地開發。

cleos(cli + eos = cleos)

         — 命令行接口與區塊鏈交互並管理錢包。

keosd(key + eos = keosd)

         — 在錢包中安全存儲EOSIO密鑰的組件。

eosio-cpp

         — 作爲eosio.cdt的一部分,它將C++代碼編譯爲WASM並可以生成ABI。

 

配個官方圖示意下。

 

4、編譯安裝的方式其實有4種

總體而言我們有四種方式來進行EOS安裝 

但是鄙人窮狗只配玩虛擬機,走第一種,有興趣的人可以搞搞docker,後面我看看找些docker的資源

 

三、開始安裝

 

爲了便攜於操作與符合本人實際,步驟基於VM搭建的虛擬機來進行操作,選用了下方編譯方式中CentOS RPM軟件包安裝
,借用騰訊雲的加速下載是真的很舒服的。下載的過程其實如果開着科學上網的話是不會需要等待太久的。

 

1、EOS-IO 安裝    

可以直接進入上方 EOS-IO 連接進入網站選擇需要的版本
	eosio-1.8.6-1.el7.x86_64.rpm 是我使用的版本
	
	wget https://github.com/EOSIO/eos/releases/download/v1.8.6/eosio-1.8.6-1.el7.x86_64.rpm

	sudo yum install ./eosio-1.8.6-1.el7.x86_64.rpm

 開發目錄:突然想起這個東西也是有點重要的,在後面管理的時候,剛開始看官網還是有點矇蔽,方便管理

mkdir contracts
cd contracts    

 

2、啓動節點並設置

1、啓動keosd (主要是錢包操作)

keosd &

然後會出現

info  2019-11-12T06:54:24.789 thread-0  wallet_plugin.cpp:42          plugin_initialize    ] initializing wallet plugin
info  2019-11-12T06:54:24.795 thread-0  http_plugin.cpp:554           add_handler          ] add api url: /v1/keosd/stop
info  2019-11-12T06:54:24.796 thread-0  wallet_api_plugin.cpp:73      plugin_startup       ] starting wallet_api_plugin
info  2019-11-12T06:54:24.796 thread-0  http_plugin.cpp:554           add_handler          ] add api url: /v1/wallet/create
info  2019-11-12T06:54:24.796 thread-0  http_plugin.cpp:554           add_handler          ] add api url: /v1/wallet/create_key
info  2019-11-12T06:54:24.796 thread-0  http_plugin.cpp:554           add_handler          ] add api url: /v1/wallet/get_public_keys

上述rpc接口是可以直接調用的,不過這裏是後話了,按回車進入下一步

 

3、啓動nodeos(主要是加載插件)

nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
-d CONTRACTS_DIR/eosio/data \
--config-dir CONTRACTS_DIR/eosio/config \
--filter-on="*" \
--access-control-allow-origin='*' \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors >> nodeos.log 2>&1 &

參數說明:

1、在開發目錄下的eosio目錄中爲區塊鏈數據和配置使用工作目錄,這裏我們分別使用eosio/data和eosio/config。
這裏就用到了上方安裝提及的開發目錄了

2、運行Nodeos,此命令加載所有基本插件、設置服務器地址、啓用CORS並添加一些合約調試和日誌記錄。

3、啓用CORS沒有限制(*)  --access-control-allow-origin。,開發時儘量還是自己配置需要的參數

4、錢包這些東西是最好不要除本地之外訪問,因故默認是綁定本地的

相關插件數據說明: https://www.jianshu.com/p/11c210b6f8f1

運行參數說明: https://www.jianshu.com/p/7ce63119bfc2

停止的方式是:

pkill nodeos

4、校驗是否安裝完畢

    1、檢查塊是否在生成

tail -f nodeos.log # 屬於第三步的日誌出去 

但凡日誌輸入不爲0,基本都是穩了,但是,還是眼見爲實,看到類似下方的創建快,則創建成功

1929001ms thread-0   producer_plugin.cpp:585       block_production_loo ] Produced block 0000366974ce4e2a... #13929 @ 2018-05-23T16:32:09.000 signed by eosio [trxs: 0, lib: 13928, confirmed: 0]
1929502ms thread-0   producer_plugin.cpp:585       block_production_loo ] Produced block 0000366aea085023... #13930 @ 2018-05-23T16:32:09.500 signed by eosio [trxs: 0, lib: 13929, confirmed: 0]
1930002ms thread-0   producer_plugin.cpp:585       block_production_loo ] Produced block 0000366b7f074fdd... #13931 @ 2018-05-23T16:32:10.000 signed by eosio [trxs: 0, lib: 13930, confirmed: 0]
1930501ms thread-0   producer_plugin.cpp:585       block_production_loo ] Produced block 0000366cd8222adb... #13932 @ 2018-05-23T16:32:10.500 signed by eosio [trxs: 0, lib: 13931, confirmed: 0]
1931002ms thread-0   producer_plugin.cpp:585       block_production_loo ] Produced block 0000366d5c1ec38d... #13933 @ 2018-05-23T16:32:11.000 signed by eosio [trxs: 0, lib: 13932, confirmed: 0]

    2、使用cleos檢查錢包了

cleos wallet list

但凡是第一次安裝這個的,我還沒有見過不是以下的這個的- -

    3、校驗節點的端點是否有問題

你可以在控制檯上 curl http://localhost:8888/v1/node/get_supported_apis嘗試

{
    "apis": [
        "/v1/chain/abi_bin_to_json",
        "/v1/chain/abi_json_to_bin",
        "/v1/chain/get_abi",
        "/v1/chain/get_account",
        "/v1/chain/get_activated_protocol_features",
        "/v1/chain/get_block",
        "/v1/chain/get_block_header_state",
        "/v1/chain/get_code",
        "/v1/chain/get_code_hash",
        "/v1/chain/get_currency_balance",
        "/v1/chain/get_currency_stats",
        "/v1/chain/get_info",
        "/v1/chain/get_producer_schedule",
        "/v1/chain/get_producers",
        "/v1/chain/get_raw_abi",
        "/v1/chain/get_raw_code_and_abi",
        "/v1/chain/get_required_keys",
        "/v1/chain/get_scheduled_transactions",
        "/v1/chain/get_table_by_scope",
        "/v1/chain/get_table_rows",
        "/v1/chain/get_transaction_id",
        "/v1/chain/push_block",
        "/v1/chain/push_transaction",
        "/v1/chain/push_transactions",
        "/v1/chain/send_transaction",
        "/v1/history/get_actions",
        "/v1/history/get_controlled_accounts",
        "/v1/history/get_key_accounts",
        "/v1/history/get_transaction"
    ]
}

如果上面這步也不行就不需要多說了,然後隨機選一條測試。

curl http://localhost:8888/v1/chain/get_info

(省略一堆不想黏貼的東西)然後內容biubiubiu出來了,完成。

 

 

EOS-IO-CDT

EOSIO合約開發工具包,簡稱CDT,是與合約編譯相關的工具集合,後續教程主要使用CDT來編譯合約和生成ABI。

(The EOSIO Contract Development Toolkit, CDT for short, is a collection of tools related to contract compilation. Subsequent tutorials use the CDT primarily for compiling contracts and generating ABIs.)[原文給你]

 

一、安裝

可以參考頂部 EOS-IO-CDT 內鏈接選擇自己歡喜的版本,我選了官方當前同款

wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.6.1/eosio.cdt-1.6.1-1.centos-x86_64.rpm

sudo yum install ./eosio.cdt-1.6.1-1.centos-x86_64.rpm

1、跟着官方進入自己預先設置的開發目錄

雖然官方強調克隆的位置不重要,但是給出來,總不會平白無故,跟着走,進入安裝 EOS-IO 時設置的開發目錄

cd contracts

2、你選擇的 EOS-IO-CDT 是什麼版本就克隆什麼版本的倉庫

git clone --recursive https://github.com/eosio/eosio.cdt --branch v1.6.1 --single-branch

cd eosio.cdt

很好理解,可以很肆意的,直接將 -branch 後的版本更替就闊以了,這個時間,我是等了將近12分鐘,官網說30分鐘左右,根據網絡而定吧

 

2.1 構建

./build.sh

瘋狂等待中。。。。

2.2 安裝

sudo ./install.sh

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章