Synchronization

停止Geth控制台以關閉電腦進行維護的正確方法?

  • July 22, 2017

區塊鏈同步完成後,如果在geth控制台繼續執行目前區塊鏈數據的同時關閉了會發生什麼?

將來我想關閉同步並關閉命令提示符geth控制台,以便我可以對系統進行維護。

是否有一段時間您可以關閉系統並在系統上找到的最後一個區塊鏈處再次開始同步?

我想我是在問,因為似乎在我完成同步並且它正在通過一個塊進行處理之後,我關閉了 geth 命令提示符視窗。

然後我嘗試重新啟動 geth 控制台,它似乎找到了最新的本地完整塊(在我的系統上似乎是 4058127)

然後它會經歷這個過程:

INFO [07-22|11:58:30] IPC endpoint opened: \\.\pipe\geth.ipc
INFO [07-22|11:58:30] HTTP endpoint opened: http://127.0.0.1:8545
INFO [07-22|11:58:30] Mapped network port                      proto=tcp extport=30303 intport=30303 interface=NAT-PMP(192.168.2.1)
INFO [07-22|12:01:00] Block synchronisation started
INFO [07-22|12:01:03] Imported new chain segment               blocks=2 txs=148 mgas=12.617 elapsed=303.788ms mgasps=41.532 number=4058129 hash=ac2f90…89e00a
WARN [07-22|12:01:08] Synchronisation failed, dropping peer    peer=1cd4c9e09b903579 err="retrieved hash chain is invalid"
WARN [07-22|12:05:13] Synchronisation failed, dropping peer    peer=416475e24fa54674 err="retrieved hash chain is invalid"
WARN [07-22|12:10:49] Synchronisation failed, retrying         err="block download canceled (requested)"

它現在似乎無法同步,並且不斷丟棄對等點。

這個“握手”過程是否需要很長時間,或者我是否通過停止 geth 控制台然後嘗試重新啟動它而搞砸了。

如果只是耐心與從頭開始的問題,那麼在握手完成之前我應該期待什麼一般的時間框架,我可以再次趕上區塊鏈的末端。

乾杯,約翰

Running在執行geth時使鏈的本地副本與全域鏈保持同步。geth console是一個 REPL,它連接到一個實例geth並允許您在區塊鏈的上下文中執行命令。geth console使用Ctrl+CCtrl+關閉D不會停止同步過程。如果您終止該geth命令(例如通過關閉它正在執行的 shell),同步將停止。否則,geth即使在長時間斷開網路後,仍會保持區塊鏈的本地副本區塊鍊為最新。您只需要等待對等點發現過程完成並從網路中提取新塊。這需要一段時間。

引用自:https://ethereum.stackexchange.com/questions/22808