Synchronization

Parity 的“warp”同步是什麼,為什麼它比 Geth “fast”快?

  • September 4, 2019

本網站上一個經典問題的後續:

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

現在,parity帶有一個--warp標誌,可以在 10 分鐘內啟用同步。

--warp        Enable syncing from the snapshot over the network. (default: false)

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

如果不重新散列Parity wiki上的解釋,很難給出答案……

相關部分如下:

這些快照可用於快速獲取給定塊狀態的完整副本。每 30,000 個區塊,節點將對該區塊的狀態進行關鍵共識快照。任何節點都可以通過網路獲取這些快照,從而實現快速同步。

快照本身由 3 個部分組成:

  1. 清單,基本上是關於快照的元數據;
  2. 塊塊,其中包含有關塊及其交易收據的原始塊數據;
  3. 狀態塊,其中包含有關給定塊的狀態的數據。

塊的大小目前設置為 4MB。

那麼這實際上如何加速同步呢?那個 wiki 頁面沒有說的是我們最初只同步快照。因此,對於以 30,000 為間隔的每個塊,我們獲得一組 4MB 的塊。然後在後台我們繼續同步剩餘的區塊數據。

這相當於 Geth 的--fastsync,先同步區塊頭,然後在後台同步剩下的數據。只是--warp在第一次通過時同步更少的數據,並在以後填補更大的空白。

編輯:

另請參閱相關的官方 Ethcore部落格文章,特別是題為“核心力量”的部分。

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