Обрезка клиента исполнения

ПРИМЕЧАНИЕ

Это предназначено для пользователей geth и nethermind. Besu не нужно обрезать.

Если вы используете geth или nethermind в качестве основного клиента исполнения, вы, вероятно, заметите, что свободное место на диске вашего узла медленно уменьшается с течением времени. Клиент исполнения вносит наибольший вклад в это; в зависимости от того, сколько оперативной памяти вы выделили для его кэша во время rocketpool service config, он может расти со скоростью несколько гигабайт в день!

Для решения этой проблемы клиенты исполнения предоставляют специальную функцию, называемую обрезкой, которая позволяет им безопасно сканировать и очищать свою базу данных для освобождения свободного места. Каждому оператору узла, использующему Geth или Nethermind, в конечном итоге придется обрезать его.

Если у вас есть SSD на 2 ТБ, вы обычно можете обходиться месяцами между раундами обрезки. Для пользователей SSD на 1 ТБ вам придется обрезать чаще.

Если у вас включена панель Grafana, хорошим практическим правилом является начать думать об обрезке вашего клиента исполнения, когда используемое дисковое пространство вашего узла превышает 80%.

Когда вы решите, что пришло время, Smartnode поставляется с возможностью обрезать его для вас по запросу. Читайте ниже, чтобы узнать, как это работает и чего ожидать.

ПРИМЕЧАНИЕ

Обрезка вашего клиента исполнения возможна только в режиме Docker.

Если вы используете свой собственный клиент исполнения, такой как внешний клиент в гибридном режиме или Native mode, вы не можете использовать Smartnode для обрезки клиента исполнения. Вам нужно будет сделать это вручную. Пожалуйста, обратитесь к документации для вашего клиента исполнения, чтобы узнать, как его обрезать.

Предварительные требования

Выберите клиента, который вы используете, из вкладок ниже.

Geth
Nethermind

Обрезка Geth означает отключение основного клиента исполнения, чтобы он мог очистить себя. Когда это происходит, Smartnode (и ваш клиент консенсуса) потребуют какого-то другого способа доступа к цепи ETH1, чтобы функционировать должным образом.

Самый простой способ предоставить это — с помощью резервного узла. Если вы уже настроили резервный узел с помощью rocketpool service config, то Smartnode автоматически переключится на него, когда ваш контейнер Geth отключится для обслуживания. Он также сообщит вашему клиенту консенсуса использовать резервный узел.

ПРЕДУПРЕЖДЕНИЕ

Если у вас не настроен резервный узел, ваш узел прекратит валидацию во время процесса обрезки. Он пропустит все аттестации и предложения блоков, пока не закончит и не ресинхронизируется с сетью. Вы будете терять ETH из-за пропущенных валидаций в это время!

С учетом этого для успешной обрезки Geth требуются следующие два условия:

  • Работающий настроенный резервный узел
  • Как минимум 50 ГБ свободного места на вашем SSD

Начало обрезки

Выберите клиента, который вы используете, из вкладок ниже.

Geth
Nethermind

Когда вы хотите обрезать Geth, просто выполните эту команду:

rocketpool service prune-eth1

Если у вас не включена пара резервных клиентов, вы получите следующее предупреждение:

This will shut down your main execution client and prune its database, freeing up disk space.
Once pruning is complete, your execution client will restart automatically.

You do not have a fallback execution client configured.
Your node will no longer be able to perform any validation duties (attesting or proposing blocks) until Geth is done pruning and has synced again.
Please configure a fallback client with `rocketpool service config` before running this.
Are you sure you want to prune your main execution client? [y/n]

Если у вас она включена, вы увидите следующее приглашение вместо этого:

This will shut down your main execution client and prune its database, freeing up disk space.
Once pruning is complete, your execution client will restart automatically.

You have fallback clients enabled. Rocket Pool (and your consensus client) will use that while the main client is pruning.
Are you sure you want to prune your main execution client? [y/n]

Если вы примете, вы увидите несколько деталей, когда Smartnode подготавливает вещи; это должно закончиться сообщением об успехе:

Are you sure you want to prune your main ETH1 client? [y/n]
y

Your disk has 303 GiB free, which is enough to prune.
Stopping rocketpool_eth1...
Provisioning pruning on volume rocketpool_eth1clientdata...
Restarting rocketpool_eth1...

Done! Your main ETH1 client is now pruning. You can follow its progress with `rocketpool service logs eth1`.
Once it's done, it will restart automatically and resume normal operation.
NOTE: While pruning, you **cannot** interrupt the client (e.g. by restarting) or you risk corrupting the database!
You must let it run to completion!

С этим Geth теперь обрезается, и все готово! Вы можете следить за его прогрессом с помощью:

rocketpool service logs eth1

После того, как он закончит обрезку, он автоматически перезапустится, и Smartnode снова начнет использовать его вместо вашего резервного узла.