Synchronization
Parity 的“warp”同步是什麼,為什麼它比 Geth “fast”快?
本網站上一個經典問題的後續:
這個問題的答案之一建議使用 Geth 的
--fast
標誌來幫助快速同步塊數據。現在,
parity
帶有一個--warp
標誌,可以在 10 分鐘內啟用同步。--warp Enable syncing from the snapshot over the network. (default: false)
該
--warp
標誌是如何工作的,以及如何使用它來加速同步?我們是在同步更少的數據,還是在某種程度上對數據的完整性或來源進行了更少的檢查?
如果不重新散列Parity wiki上的解釋,很難給出答案……
相關部分如下:
這些快照可用於快速獲取給定塊狀態的完整副本。每 30,000 個區塊,節點將對該區塊的狀態進行關鍵共識快照。任何節點都可以通過網路獲取這些快照,從而實現快速同步。
快照本身由 3 個部分組成:
- 清單,基本上是關於快照的元數據;
- 塊塊,其中包含有關塊及其交易收據的原始塊數據;
- 狀態塊,其中包含有關給定塊的狀態的數據。
塊的大小目前設置為 4MB。
那麼這實際上如何加速同步呢?那個 wiki 頁面沒有說的是我們最初只同步快照。因此,對於以 30,000 為間隔的每個塊,我們獲得一組 4MB 的塊。然後在後台我們繼續同步剩餘的區塊數據。
這相當於 Geth 的
--fast
sync,先同步區塊頭,然後在後台同步剩下的數據。只是--warp
在第一次通過時同步更少的數據,並在以後填補更大的空白。編輯:
另請參閱相關的官方 Ethcore部落格文章,特別是題為“核心力量”的部分。