EOS主網數據同步指南

本文介紹如何安裝EOS節點軟件並接入EOS主網,主要包括如下內容:node

  • 如何安裝EOS節點軟件
  • 如何配置EOS節點軟件接入主網
  • 如何啓動EOS節點軟件與主網數據同步
  • 如何檢查主網數據同步進度
  • 如何正確地關閉EOS節點
  • 在出現database dirty flag set錯誤時如何處理?

若是但願高效學習EOS區塊鏈應用開發,推薦匯智網的在線互動教程《EOS智能合約與DApp開發入門》git

1、安裝EOS節點軟件

本文以ubuntu16.04爲例介紹EOS節點軟件的安裝方法,其餘操做系統 可參考官網文檔github

一、下載json

首先到官方github下載最新版的eosio軟件安裝包:ubuntu

~$ wget https://github.com/eosio/eos/releases/download/v1.6.2/eosio_1.6.2-1-ubuntu-16.04_amd64.deb

二、安裝ide

下載完成安裝本地軟件包:學習

~$ sudo apt install ./eosio_1.6.2-1-ubuntu-16.04_amd64.deb

三、驗證區塊鏈

安裝完成後驗證軟件版本:ui

~$ nodeos --version
v1.6.2

2、配置EOS節點軟件

首先建立一個新的目錄做爲工做環境,起個容易看懂的名字,例如:spa

~$ mkdir eos-main

一、下載主網創世文件

EOS節點要接入主網,須要在初次啓動nodeos時指定主網的創世文件genesis.json, 能夠從CryptoLions的github上下載這個文件:

~/eos-main$ wget https://github.com/CryptoLions/EOS-MainNet/blob/master/genesis.json

二、下載主網配置文件

CryptoLions一樣也提供了主網的配置文件config.ini,一樣下載到本地:

~/eos-main$ wget https://github.com/CryptoLions/EOS-MainNet/blob/master/config.ini

三、下載最新可用節點清單

從privex.io下載最新的可用EOS節點清單,保存到peers.txt文件中

~/eos-main$ wget https://eosnodes.privex.io/?config=1 -O peers.txt

四、更新主網配置文件中的節點列表

在配置文件config.ini中,找到全部的p2p-peer-address配置項,例如:

p2p-peer-address = bp.cryptolions.io:9876
...
p2p-peer-address = mainnet.eoseco.com:10010

而後用peers.txt中的內容替換。

3、首次啓動

第一次啓動nodeos時,須要指定創世文件,而且清理以前的區塊:

~/eos-main$ nodeos --config-dir . --data-dir . --genesis-json genesis.json --delete-all-blocks

啓動以後,能夠另開終端查看同步進度:

~$ cleos get info

觀察輸出結果中的chain_id以下所示爲aca376...,就代表已經接入主網:

{
  "server_version": "c8f26078",
  "chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
  "head_block_num": 3712,
  "last_irreversible_block_num": 3711,
  "last_irreversible_block_id": "00000e7f1b9d5b50256654921f5ca8a91aa3168f0c0a3e8ea3bbea1ba5c00fe2",
  "head_block_id": "00000e80a8c5b9e7acc9c063113668b7eae9025aa38a8c8ac3606df6256086e3",
  "head_block_time": "2018-06-09T12:29:10.500",
  "head_block_producer": "eosio",
  "virtual_block_cpu_limit": 2675279111,
  "virtual_block_net_limit": 42941084,
  "block_cpu_limit": 100000000,
  "block_net_limit": 1048576
}

能夠將上面信息中的head_block_numeospark上的最新區塊號對比, 便可得知同步進度。當二者一致後,表示節點與EOS主網達成同步。

4、EOS節點的中止與從新啓動

有時可能由於種種緣由須要從新啓動nodeos,切記不要強制殺掉nodeos,讓它 有喘息清理的機會。應當用以下的命令通知nodeos退出:

~$ pkill nodeos

這樣關閉的nodeos不會有歷史垃圾,所以再次啓動時會很順利:

~/eos-main$ nodeos --config-dir . --data-dir .

注意,在第二次以及之後的啓動中,必定__不要__再用__--delete-all-blocks__參數,不然 你會一遍遍的從零開始!

若是必須強制殺掉nodeos,好比使用pkill -9或者直接運行中從新啓動機器, 那麼再次啓動nodeos時會失敗並收到這個提示:

...
database dirty flag set (likely due to unclean shutdown): replay required

這時咱們要麼刪掉所有區塊(使用--delete-all-blocks參數)從新來過,要麼重放交易,好比 硬重放:

~/eos-main$ nodeos nodeos --config-dir . --data-dir . --hard-replay-blockchain

重放問題就是,它也會花掉很長的時間....,雖然比刪掉所有區塊要好一點。

因此,在關閉nodeos的時候,記得必定溫柔一點。


原文鏈接:EOS節點安裝與主網數據同步指南 — 匯智網

相關文章
相關標籤/搜索