Go-Ethereum
將 Geth 完整節點複製到外部驅動器上,然後繼續同步
我的 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 個節點)時使用了這種方法。創建集合後,我們決定創建解決方案(免費但感謝捐贈),這將幫助每個人同步節點