1. 程式人生 > >EOS入門指南-PART2 連線主網

EOS入門指南-PART2 連線主網

本文主要介紹了本地的eos程式如何連線主網。

1. 我們在EOS主網上麼

這時我們在命令列中輸入:

cleos get info

會顯示如下介面:
notmain_chainid

注意到裡面有一個chain_id欄位,它的值是cf057...c4f,這是它所在的網路識別符號,主網的chain_id的值是:aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906,很明顯我們並沒有在主網中,所以我們的姿勢是不對的,到底問題出在哪兒呢?

2. 連線主網 - 指定genesis-json

接著上面的問題,答案就是在我們執行nodeos

時,是需要指定genesis-json的,送給大家一份genesis.json

{
  "initial_timestamp": "2018-06-08T08:08:08.888",
  "initial_key": "EOS7EarnUhcyYqmdnPon8rm7mBCTnBoot6o7fE2WzjvEX2TdggbL3",
  "initial_configuration": {
    "max_block_net_usage": 1048576,
    "target_block_net_usage_pct": 1000,
    "max_transaction_net_usage": 524288
, "base_per_transaction_net_usage": 12, "net_usage_leeway": 500, "context_free_discount_net_usage_num": 20, "context_free_discount_net_usage_den": 100, "max_block_cpu_usage": 200000, "target_block_cpu_usage_pct": 1000, "max_transaction_cpu_usage": 150000, "min_transaction_cpu_usage": 100
, "max_transaction_lifetime": 3600, "deferred_trx_expiration_window": 600, "max_transaction_delay": 3888000, "max_inline_action_size": 4096, "max_inline_action_depth": 4, "max_authority_depth": 6 }
}

在主目錄下新建立一個genesis.json檔案,並把上面的內容複製貼上進去即可。

3. 連線主網 - 新增外掛列表

但這並沒有結束,我們還需要指定執行時的外掛:

~/Library/Application\ Support/eosio/nodeos/config/config.ini中新增外掛列表:

plugin = eosio::chain_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin
plugin = eosio::history_plugin
plugin = eosio::history_api_plugin
plugin = eosio::http_plugin
plugin = eosio::http_client_plugin
plugin = eosio::wallet_api_plugin

之後我們再執行nodeos --genesis-json ~/genesis.json,這時我們又遇到了一個錯誤:

fresh_err

解決的辦法簡單粗暴,直接刪除原來的資料:

rm -rf  ~/Library/Application\ Support/eosio/nodeos/data

或者在啟動nodeos時追加--delete-all-blocks引數即可。

nodeos --genesis-json ~/genesis.json --delete-all-blocks

4. 連線主網 - 新增種子節點

這時我們看上去似乎沒啥問題了,cleos get info之後出來的也是主網id,一切看上去歲月靜好。

但是等等,為什麼我電腦只有一個塊,執行cleos get block 2就會報錯,說好的主網,難道是單機版?

節點要同步資料,就必須知道從哪個節點同步資料。這要靠顯示宣告的種子節點來解決,這些種子節點通常是EOS的建立者和運營者。同樣,我們在之前的config.ini檔案中繼續追加種子節點資訊:

p2p-peer-address = p2p.prod.eosgravity.com:80
p2p-peer-address = eu-west-nl.eosamsterdam.net:9876
p2p-peer-address = p2p.mainnet.eosgermany.online:9876
p2p-peer-address = 54.38.250.15:19878
p2p-peer-address = p2p.genereos.io:9876
p2p-peer-address = mainnet.eospay.host:19876
p2p-peer-address = 130.211.59.178:9876
p2p-peer-address = 54.153.59.31:9999
p2p-peer-address = 94.130.250.22:9806  
p2p-peer-address = peer.main.alohaeos.com:9876
p2p-peer-address = peer.eosn.io:9876
p2p-peer-address = prod.mainnet.eos.cybex.io:9888
p2p-peer-address = p2p-1.eosnetwork.io:9876
p2p-peer-address = p.jeda.one:3322
p2p-peer-address = eosbattles.com:9877
p2p-peer-address = 34.226.76.22:9876
p2p-peer-address = mainnet.eosoasis.io:9876
p2p-peer-address = node.eosflare.io:1883
p2p-peer-address = p2p.eosio.cr:1976
p2p-peer-address = p2p.eosio.cr:5418
p2p-peer-address = eno.eosvan.io:19866

之後再執行nodeos(這次就不要加後面的引數啦),這時發現開始開始找鄰近節點同步資訊了。

再執行cleos get info,出現如下介面:

eos_getinfo_right

chain_id確實是主網ID,執行cleos get block n(n為區塊號)也不報錯啦,同步成功!

至此,我們終於和主網大部隊匯合啦!

總結

該篇我們學習了:

  • 如何連線到EOS主網
    • 指定genesis-json來修改chain_id
    • 修改config.ini檔案
    • 新增plugin相關語句
    • 新增p2p-peer-address列表
    • 啟動時清空已有的區塊鏈資料資訊 --delete-all-blocks

結束語

這章我們學習瞭如何判斷自己在不在主網上,並且如何連線EOS主網。下一章我們來說說cleos、賬戶的概念,以及操作錢包做點實事兒。