ETH2 Lighthouse 硬碟空間不足筆記

記錄 ETH2 Lighthouse 佔用太多硬碟空間,以致空間不足,去嘗試解決的筆記。

我有部 server 在運行 ETH2 client Lighthouse。然而,硬碟的容量即將耗盡。儘管 Lighthouse 的開發者表示他們會研究如何減少硬碟的使用量,但我認為這可能來不及。

我並不打算增加硬碟的容量,也不打算搬位置,所以我唯一的選擇就是減少使用量。


過去的對策

我停止運行 ETH1 客戶端,轉而依賴 Infura、Alchemy 和其他供應商(可參考Ethereum Nodes 網站)的 eth1 endpoints.

也就是在 --eth1-endpoints 中將 http://localhost:8545 放到最後或直接刪除。

現在的對策

我依賴 Infura 的 ETH2 endpoint,並繼續運行 local beacon node, 但盡量省位置。

為什麼要繼續運行 local beacon node 呢?主要是因為 Infura 有時會不穩定

https://status.infura.io/

且因過度依賴其服務,單點故障便導致廣泛問題。若大量 ETH2 validators 因此離線,可能引致大問題的。


首先,檢查剩餘的空間:

df -h

du -hd1 "${HOME}/.lighthouse/mainnet/"

du -hd1 "${HOME}/.lighthouse/mainnet/beacon/"

可以節省的空間應該在 freezer_db,也就是這裡:${HOME}/.lighthouse/mainnet/beacon/freezer_db.


確保只運行 Infura ETH2 endpoint 沒有問題

我之前有寫過一篇文章如何為 Lighthouse 添加 Infura 為冗餘 beacon node,實際上也算是為此事做準備。

我是使用 systemd 來運行的,所以我在 /etc/systemd/system/validator.service 中修改了命令。

原來的 lighthouse vc

1
lighthouse vc <other_param> --beacon-nodes https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io,http://localhost:5052

刪除本地的:

1
lighthouse vc <other_param> --beacon-nodes https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io

restart validator, 沒發現問題,成功。


減省用量

參考以下連結:

https://lighthouse-book.sigmaprime.io/advanced_database.html

https://lighthouse-book.sigmaprime.io/checkpoint-sync.html

我將設定放在 /etc/systemd/system/beacon-chain.service

lighthouse bn 修改為:

1
lighthouse bn <other_param> --slots-per-restore-point 8192 --checkpoint-sync-url "https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io" --purge-db

restart beacon-chain, 沒發現問題,成功。

等待數據補齊後,以後 restart 時應該可以刪走 --purge-db.


查看目前的硬碟空間:

df -h

du -hd1 "${HOME}/.lighthouse/mainnet/"

du -hd1 "${HOME}/.lighthouse/mainnet/beacon/"


之後,我會把 /etc/systemd/system/validator.service 改回去,把 local beacon node 用作備用,然後 restart。

1
INFO Connected to beacon node(s)             synced: 2, available: 2, total: 2, service: notifier

看來沒有問題呢。當 local 的 beacon node 下載好 data 後,我會改次序,優先用它,Infura 只作備用。

由於我刪除了整個 DB,所以一下子就釋放出了很多空間,除了 Freezer DB 部分外,其他部分應該都會恢復。而 Freezer DB 的增長速度則會減慢。

目前我還在觀察,如果以後仍然空間不足,可能還是砍掉 local beacon node 吧。

如果有任何建議或發現錯誤的地方,還望賜教。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy