Synchronization

什麼是奇偶光剪枝模式?

  • November 9, 2017

Parity 提供四種不同的修剪方法:歸檔、基本、快速和輕量級:

 --pruning METHOD         Configure pruning of the state/storage trie. METHOD
                          may be one of auto, archive, basic, fast, light:
                          archive - keep all state trie data. No pruning.
                          basic - reference count in disk DB. Slow but light.
                          fast - maintain journal overlay. Fast but 50MB used.
                          light - early merges with partial tracking. Fast
                          and light. Experimental!
                          auto - use the method most recently synced or
                          default to archive if none synced [default: auto].

我剛剛嘗試過,archive因為我有足夠的空間和時間來進行完全同步。它與如下所示的 geth 鏈大小進行比較:

~ $ du -hs .parity/
17G .parity/
~ $ du -hs .ethereum/
15G .ethereum/

現在,我看到archive這很像 eth 或 geth 中的預設同步。但什麼是basic,什麼是light?和是fast同一水平geth --fast嗎?

什麼是奇偶光剪枝模式?這是否已經被視為輕客戶端?

gethparity有不同的方法以內部格式保存乙太坊區塊鏈。我做了很多長凳,因為我發現它很長只是為了使用一個錢包。

修剪模式是塊數據的保存方式。使用存檔模式,所有狀態都被保存。因此,您無需重新載入所有區塊鏈即可了解每一刻的狀態。在快速和輕便的情況下,我們假設我們不需要所有這些資訊,只需要目前狀態和之前的少量資訊,因此我們刪除了許多中間狀態。

geth上, –fast 方法將區塊鏈的狀態保存在塊**B$$ -1500 $$**以及此塊之後的所有狀態(B

$$ -1 $$是最後一個塊,B$$ -2 $$是最後一個塊之前…)。因此可以在最後 1500 個塊的狀態下倒帶。使用完整的區塊鏈,您可以對所有區塊執行此操作。 在奇偶校驗中,有 4 種修剪模式或 journalDB 算法

  • 存檔(Archive):作為geth存檔我們保留所有狀態
  • Fast (OverlayRecent):作為 geth Fast,我們保持**B的所有完整狀態$$ -i $$**塊
  • Light (EarlyMerge):我們保留**B的所有狀態$$ -i $$**塊但有差異(因此它小於快速但較慢的訪問)
  • Basic (RefCounted):我們保留**B的所有狀態$$ -i $$**塊與 OverlayRecent 類似,但我們在 x 更改後刪除狀態……所以我們只有最後 x 次更改

在 i7 3720QM 16GB ram 和 Geth 1.4.4 上完成的基準測試(Homestead with 1.6Mi blocks)

_____________________________________________
| Option | Disk Used | Time | Disk Written  |
|--------|-----------|------|---------------|
| none   | 19.GB     | 5h00 | 1TB           |
| fast   | 3.7GB     | 1h00 | 100GB         |
---------------------------------------------

在 i7 3720QM 16GB ram 和 Geth 1.5.0 不穩定的基礎上完成的基準測試(在https://gitter.im/ethereum/go-ethereum?at=574d26c010f0fed86f49b32f找到具有 1.6Mi 塊的 Homestead )

__________________________________________________
| command     | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth        | 21GB      | 5h00 | 150GB         |
| geth --fast | 4.2GB     | 21m  | 35GB          |
| geth export | 1.5GB     | 10m  |               |
| geth import | 21GB      | 3h30 |               |
--------------------------------------------------

在 i7 3720QM 16GB ram 和 Parity 1.2 上完成的基準測試(Homestead with 1.6Mi blocks)

_____________________________________________
| Option | Disk Used | Time | Disk Written  |
|--------|-----------|------|---------------|
| archive| 19.GB     | 2h00 | 300GB         |
| fast   | 3.7GB     | 1h30 | 20GB          |
| light  | 2.5GB     | 2h00 | 130GB         |
---------------------------------------------

注意:當您有一個帶有區塊鏈的節點時,您可以轉儲geth目錄的鏈數據,以便與您的其他電腦一起使用。我用 Linux、Windows 和 OS X 來檢查它。

注意:如果您使用 –cache 和 1024,它可能會更快。但這在我的系統上並不重要。–jitvm 也是如此

注意:乙太坊區塊鏈在交易後保存了最終狀態,但重播交易以檢查它們更安全。

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