1. 程式人生 > >搭建自己的EOS多節點測試主網

搭建自己的EOS多節點測試主網

     最近RAM價格漲幅離譜,不過這種情況我在主網剛上線時的文章【你不懂的EOS收費細節】提到過。為了更好的瞭解RAM價格計算公式,我昨晚搭建了完整的測試主網。經過這段時間更新,感覺現在的EOS主網搭建過程還是非常便利的,於是整理了下,希望對大家有幫助。

    EOS dawn-v4.1.0版本開始就有EOS主網啟動教程專案了,在tutorials/bios-boot-tutorial目錄。EOS主網啟動流程的操作步驟都在tutorials/bios-boot-tutorial/bios-boot-tutorial.py檔案裡。建立一個私有主網,只需執行一個bios-boot-tutorial.py程式即可。這裡我叫做“測試主網”是因為裡面的規則內容和主網一模一樣,只是賬號資訊是虛擬的。

一鍵啟動私有測試主網

下載原始碼並編譯

git clone https://github.com/eosio/eos --recursive

cd eos

git checkout v1.0.7

git submodule update --init --recursive

//將系統幣修改為EOS

sed -i.bak '16i set( CORE_SYMBOL_NAME "EOS" )' CMakeLists.txt

./eosio_build.sh

    更詳細操作過程請參考【https://blog.csdn.net/itleaks/article/details/80367131】

執行主網啟動指令碼

  由於我們的機器和真正的BP效能有差距,導致執行的過程中會出錯, 因而需要對bios-boot-tutorial.py檔案做一些修改。具體改動如下

同時為了減少環境搭建時間及方便實踐,我刪減了accounts.json檔案裡的賬號,只保留2個生產者和3個普通使用者

如果怕麻煩,大家可以在下面的連線下載這兩個檔案

https://github.com/itleaks/eos-contract/blob/master/files/bios-boot-tutorial.py

https://github.com/itleaks/eos-contract/blob/master/files/genesis.json

執行啟動命令

執行之前需要安裝python和python numpy庫,具體安裝過程請網路搜尋

./bios-boot-tutorial.py -a --num-producers-vote=2 --num-voters=3 --num-senders=3 --producer-sync-delay=20 --symbol=EOS --max-unstaked=2000000

    上面命令執行過程中如有出錯,可以嘗試幾次,因為本地機器的CPU等資源負載很高時,可能會導致執行timeout

    等待該程式執行完成退出即可

$ ls nodes/

00-eosio     01-eosfavor2bpa     02-eosfavor2bpb

    然後檢視三個節點程式中任一一個節點的資料,比如00-eosio即最初始節點的log資訊

    從上面看出,開始時eosio生成區塊,投票完成後eosfavor2bpa, eosfavor2bpb這兩個生產者輪流生產區塊。

啟動流程分析

    想要更清晰的瞭解這些流程,可以檢視bios-boot-tutorial.py檔案或者output.log檔案(命令執行日誌)

測試主網testnet.eosfavor.com

    一般來說,通過上面的描述,大家都有了自己的測試主網,可以做任何EOS測試的事。但是有些夥伴可能覺得本地機器不方便或者覺得整個過程太麻煩,可以直接使用第三方的測試主網。其實已經有一些測試網路了,比如"Jungle Testnet Monitor",但是最近貌似出了問題。因此為了方便大家實踐,同時為了這個網路的穩定性,我的這個測試主網已經開放,歡迎大家一起實踐。大家可以通過兩種方式參與。

    1)DAPP開發人員或者EOS常規命令使用者

        這些夥伴可直接通過ip:port方式連線我的nodeos服務即可,比如

cleos -u http://testnet.eosfavor.com:8001 get info

    2) EOS原始碼研究,系統功能(區塊瀏覽器)等開發人員

        這些夥伴可使用如下命令連線到我們的EOS測試網路,成為區塊生產者

nodeos --max-irreversible-block-age 18999999    --contracts-console --genesis-json eos/tutorials/bios-boot-tutorial/genesis.json --data-dir ./nodes --http-server-address 0.0.0.0:8001 --p2p-listen-endpoint 0.0.0.0:9001    --max-clients 12    --p2p-max-nodes-per-host 12    --enable-stale-production    --producer-name producer111a    --private-key'["EOS8imf2TDq6FKtLZ8mvXPWcd6EF2rQwo8zKdLNzsbU9EiMStxxxx","5KLGj1HGRWbk5xNmoKfrcrQHXvcVJBPdAckoiJgFftXSJjLPxx"]'    --plugin eosio::http_plugin    --plugin eosio::chain_api_plugin    --max-transaction-time=3000    --plugin eosio::producer_plugin  --p2p-peer-address testnet.eosfavor.com:9001

     上面的藍色字型請填入你的賬號,如沒有可以在這裡申請測試賬號:

      建立之前必須擁有EOS公私鑰,如果沒有,可以通過如下命令建立

cleos create key

    上面紅色字型,請填入上面賬號授權的EOS公私鑰

    執行nodes後,然後就可以通過註冊生產者和投票工具將自己投為生產者

cleos system regproducer your_account your_pub_key website_url      //註冊為生產者

cleos system voteproducer prods your_account your_account           //投票

原文;https://blog.csdn.net/ITleaks/article/details/80888789