Go-Ethereum

將 Geth 完整節點複製到外部驅動器上,然後繼續同步

  • November 21, 2020

我的 Mac 上的 1TB 內部 SSD 似乎不足以與狀態數據完全同步。我知道我可以快速同步,但我需要完整的狀態數據。我目前在 520 萬塊上,大約 900GB,所以在我的內部裝滿之前,我不會達到目前的 760 萬塊高度。

我購買了一個外置 4TB SSD,並想複製我目前的 900GB 全節點數據。同步這 900GB 需要將近一周的時間,所以從外部重新開始會很糟糕。

我嘗試複製 geth chaindata 和 keystate 文件夾,然後使用指向外部複製數據的 –datadir 參數執行 geth,但它剛剛開始從塊 0 重新同步。也許我做錯了什麼,或者這只是不支持?

感謝有關如何執行此操作的任何資訊。

我認為我們可以掛載外部儲存並將其設置為古代數據文件夾

--datadir.ancient value古代鏈段的數據目錄(預設 = 內部鏈數據)

參考:https ://github.com/ethereum/go-ethereum/wiki/Command-Line-Options

如果使用Geth 1.9.+,乙太坊節點--syncmode full包含大約 450 GB 的數據:

sudo du -h ./
4,0K    ./keystore
7,9M    ./geth/nodes
166M    ./geth/ethash
113G    ./geth/chaindata/ancient
450G    ./geth/chaindata
450G    ./geth
450G    ./

這是乙太坊官方部落格上的文章,其中包含一些基準

實際上,您可以下載整個chaindata文件夾並繼續同步。我們在為我們的一個項目創建一組節點(6 個節點)時使用了這種方法。創建集合後,我們決定創建解決方案(免費但感謝捐贈),這將幫助每個人同步節點

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