На самом деле это будет некий вольный перевод из документации, которую можно прочесть тут, с небольшими добавками от себя.
Итак, нода эфира работала с момента записи о ее установке и запуске (это было тут), то есть почти 2 года. За это время ни разу ее не обслуживал, только обновления и все. На сервере было почти 3.5 Тб и они почти закончились. Поэтому решено было провести очистку. Кстати, база данных клиента консенсуса — prysm к этому моменту достигла уже 699 Гб. И это все одним файлом beaconchain.db. Как сжать этот файл я пока не нашел.
Что бы очистить ноду от ненужного мусора — она должна быть полностью синхронизирована, geth должен быть старше чем версия 1.10.3, нода должна была закончить создание снэпшота (в логах не должно быть строк типа “state snapshot generation”) и на диске должно быть не менее 40 Гб свободного места. Но в реальности у меня при очистке потребовалось около 80 Гб (наверное потому что редко чистил).
Очистка идет в три этапа:
- Приведение ноды к последнему снэпшоту
- Очистка данных из базы
- Сжатие базы данных
Первые два шага периодически выводят информацию о работе в консоль, а вот третий шаг может достаточно долго “молчать” в консоли, так что стоит просто ждать. В конце концов появится надпись “State pruning successful” и можно будет проверить сколько места освободилось.
Теперь команды чистки. Первым делом останавливаем ноду (я остановил и консенсус, что бы он не ругался в логах)
systemctl stop geth.service prysmbeacon.serviceТеперь откроем новый сеанс через tmux (он позволяет выполнять задачи в фоне, даже если вы отключитесь от сервера)
tmux new -s gethИ теперь запускаем очистку
sudo -u geth geth --datadir /home/geth/.ethereum snapshot prune-stateТо есть запуск процесса geth от имени пользователя geth с указанием папки, где хранятся данные ноды. Все, теперь ждем и наблюдаем. Выглядеть будет примерно так.

То есть очистка 1.36 Тб мусорных данных из базы ноды у меня заняло чуть больше 15 часов. После этого запускаем ноду и консенсус и догоняем сеть.
systemctl start geth.service prysmbeacon.serviceВот как-то так. Всем добра.