Go-Ethereum

geth 主網快速同步似乎卡在距離最高區塊大約 100 個區塊

  • October 15, 2020

7 天前,我開始以快速同步模式將 geth 節點同步到主網。狀態仍然在最高塊後面大約 74 個塊,例如,如果我執行以下命令:

eth.syncing.highestBlock - eth.syncing.currentBlock

然後我看到主網後面有 74 到 100 個區塊。

我在具有四核處理器、8 GB RAM 和 500 GB SSD 的 Digital Ocean 液滴上執行此節點。

我嘗試重新啟動服務,它再次開始快速同步,然後卡在主網後面 74 到 100 個塊之間的相同間隔。

任何人都可以幫助分享一些關於如何完成此同步過程的提示嗎?

非常感謝任何幫助。

這是正常行為,您尚未完成區塊鏈同步。

讓我們看看 Geth 文件(https://geth.ethereum.org/docs/faq)。

在快速同步模式下,Geth 首先下載塊而不執行交易:

Geth 目前的預設同步模式稱為快速同步。快速同步不是從創世塊開始並重新處理曾經發生的所有交易(這可能需要數週時間),而是下載塊,並且只驗證相關的工作量證明。下載所有塊是一個簡單而快速的過程,並且會相對快速地重新組裝整個鏈。

然後,客戶端將下載最新區塊的狀態樹(包含帳戶數據):

許多人錯誤地認為,因為他們有塊,他們是同步的。不幸的是,情況並非如此,因為沒有執行任何交易,所以我們沒有任何可用的賬戶狀態(即餘額、隨機數、智能合約程式碼和數據)。這些需要單獨下載並與最新塊進行交叉檢查。這個階段稱為狀態 trie 下載,它實際上與塊下載同時執行;唉,現在比下載塊需要更長的時間。

您應該在 Geth 控制台Imported state entries日誌中看到滾動,並且您必須等待同步完成:

如果你看到你落後於主網 64 個區塊,那麼你還沒有同步,甚至還沒有關閉。您剛剛完成了塊下載階段,並且仍在執行狀態下載。您可以通過看似無窮無盡的 Imported 狀態條目自己看到這一點

$$ … $$日誌流。在您的節點真正上線之前,您也需要等待。

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