Go-Ethereum
geth 導入與複製鏈數據
我正在嘗試將我的 RPi 2 與區塊鏈同步。
geth import
執行速度很慢,並且從頭開始同步。
.ethereum/chaindata
從另一個完全同步的乙太坊節點複製文件夾會有什麼問題?
geth將主網路的內部狀態保存在 chaindata 目錄中。您可以在目錄中找到它:
- ~/.ethereum 在 Linux 上
- 〜/圖書館/ OS X上的乙太坊
- ~/AppData/漫遊/乙太坊
它使用 LevelDB 數據庫。只有在停止geth以防止損壞時,您才能保存此目錄。數據在Linux、Windows和MacOS 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
文件夾很容易,而且很有效。