Go-Ethereum

geth 導入與複製鏈數據

  • January 3, 2021

我正在嘗試將我的 RPi 2 與區塊鏈同步。

geth import執行速度很慢,並且從頭開始同步。

.ethereum/chaindata從另一個完全同步的乙太坊節點複製文件夾會有什麼問題?

geth將主網路的內部狀態保存在 chaindata 目錄中。您可以在目錄中找到它:

  • ~/.ethereum 在 Linux 上
  • 〜/圖書館/ OS X上的乙太坊
  • ~/AppData/漫遊/乙太坊

它使用 LevelDB 數據庫。只有在停止geth以防止損壞時,您才能保存此目錄。數據在LinuxWindowsMacOS X上是可移植的(我已經檢查過了)。但你必須記住,這不是一種安全的方式。不要使用匿名提供的鏈數據檔案。交易未檢查!當 geth 啟動時,它會檢查所有文件是否存在。如果 .ldb 文件失去,chaindata 目錄已損壞,您必須刪除該目錄!

geth導入和導出是安全的,但速度很慢,因為檢查了所有事務並且操作與沒有 –fast 標誌的 geth 相同。在我的 3720qm 上,使用了 5h 和 19Go 磁碟儲存。唯一經濟的是網路下載(1.5Go)。做一個 geth 更快——快!

在我的 intel 3720qm mac mini (1Gbit/s) 上,一些工作台 geth 1.4:

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth        | 19.Go     | 5h00 | 1To           |
| geth import | 19.Go     | 4h50 | 1To           |
| geth --fast | 3.7Go     | 1h00 | 100Go         |
--------------------------------------------------

在我的 intel 3720qm mac mini (1Gbit/s) 上,一些工作台 geth 1.5 (in dev):

__________________________________________________
| Operation   | Disk Used | Time | Disk Written  |
|-------------|-----------|------|---------------|
| geth --fast | 3.8Go     | 17m  | 25Go          |
| geth        | 19Go      | 2h   | 100Go         |
--------------------------------------------------

結論:

  • 我僅在我的電腦之間使用鏈數據存檔。
  • 導入很慢,檢查所有並保存所有狀態。
  • geth –fast 更快,並且只保存目前狀態。

複製.ethereum/chaindata文件夾是個好主意。我已經在我的 Rpi2 上做到了,一切正常。此外,如果在原始機器上沒有完全同步,RPi2 將只是從複製的 chaindata 文件夾中的最後一個塊開始同步,從而節省大量時間。

請注意,我從未跑過geth import blockchain_db. 沒有必要。複製chaindata文件夾很容易,而且很有效。

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