Go-Ethereum

什麼是 Geth 的“快速”同步,為什麼它更快?

  • July 22, 2020

這個問題的答案之一建議使用 Geth 的--fast標誌來幫助快速同步塊數據。

該標誌是如何工作的,以及如何使用它來加速同步?我們是在同步更少的數據,還是在某種程度上對數據的完整性或來源進行了更少的檢查?

編輯:

從 Geth 版本1.6.0開始,該--fast標誌已成為--syncmode=fast(儘管--fast現在仍然可以使用)。

在 github上有很多關於這個 PR 的細節。這是一個報價:

不是一次處理整個區塊鏈的一個連結,並重播歷史上曾經發生的所有交易,而是快速同步沿著區塊下載交易收據,並提取整個最近的狀態數據庫。

不要忘記使用 SSD

如果可以的話,使用 NVMe SSD 會更好。

如果您在 SSD 上的空間有限,請參閱鏈數據可以拆分到兩個(或更多)位置嗎?

也就是說,乙太坊狀態很大並且越來越大。要有耐心,這將是值得的。

如何讓 geth 節點快速下載區塊鏈?維基已更新。此答案已針對那些發現此問題並在同步時遇到問題的人進行了更新。


先前的回答

因為--fast通常是與快速同步相關的唯一事情,所以也不要忘記--cache

宅基地指南:

當您想要更快地同步客戶端時,以下是一些使用的標誌。

  • 快速地

該標誌通過狀態下載實現快速同步,而不是下載完整的塊數據。這也將大大減少你的區塊鏈的大小。注意:–fast 只能在您從頭開始同步區塊鏈並且出於安全原因第一次下載區塊鏈時執行。有關更多資訊,請參閱此 Reddit 文章

–記憶體=1024

分配給內部記憶體的兆字節記憶體(最少 16MB / 強制數據庫)。預設值為 16MB,因此將其增加到 256、512、1024 (1GB) 或 2048 (2GB),具體取決於您的電腦有多少 RAM 應該會有所不同。

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