搭建自己的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