Fazendo Pruning do Cliente Execution

NOTA

Isto é destinado a usuários de geth e nethermind. Besu não precisa passar por pruning.

Se você usa geth ou nethermind como seu cliente Execution primário, você provavelmente notará que o espaço livre em disco do seu nó diminui lentamente ao longo do tempo. O cliente Execution é de longe o maior contribuidor para isso; dependendo de quanta RAM você alocou para seu cache durante rocketpool service config, ele pode crescer a uma taxa de vários gigabytes por dia!

Para lidar com isso, os clientes Execution fornecem uma função especial chamada pruning que permite que eles escaneiem e limpem seu banco de dados com segurança para recuperar algum espaço livre. Todo operador de nó usando Geth ou Nethermind terá que fazer pruning eventualmente.

Se você tem um SSD de 2 TB, geralmente pode ir por meses entre rodadas de pruning. Para usuários de SSD de 1 TB, você terá que fazer pruning com mais frequência.

Se você tem o painel Grafana habilitado, uma boa regra prática é começar a pensar em fazer pruning do seu cliente Execution quando o espaço em disco usado do seu nó exceder 80%.

Quando decidir que é hora, o Smartnode vem com a capacidade de fazer pruning para você mediante solicitação. Leia abaixo para aprender como funciona e o que esperar.

NOTA

Fazer pruning do seu cliente Execution só é possível no Modo Docker.

Se você usa seu próprio cliente Execution, como um cliente externo em modo Híbrido ou modo Nativo, você não pode usar o Smartnode para fazer pruning do cliente Execution. Você precisará fazer isso manualmente. Por favor, consulte a documentação do seu cliente Execution para aprender como fazer pruning.

Pré-requisitos

Selecione o cliente que você está usando nas abas abaixo.

Geth
Nethermind

Fazer pruning do Geth significa colocar o cliente Execution primário offline para que ele possa se limpar. Quando isso acontece, o Smartnode (e seu cliente Consensus) precisará de alguma outra forma de acessar a chain ETH1 para funcionar adequadamente.

A maneira mais fácil de fornecer isso é com um nó de fallback. Se você configurou um nó de fallback usando rocketpool service config já, então o Smartnode mudará automaticamente para ele quando seu container Geth ficar inativo para manutenção. Ele também informará seu cliente Consensus para usar o fallback também.

AVISO

Se você não tem um nó de fallback configurado, seu nó parará de validar durante o processo de pruning. Ele perderá todas as attestations e propostas de bloco até que termine e tenha ressincronizado com a rede. Você perderá ETH devido às validações perdidas durante este tempo!

Com isso em mente, as duas condições seguintes são necessárias para fazer pruning do Geth com sucesso:

  • Um nó de fallback funcional configurado
  • Pelo menos 50 GB de espaço livre restante no seu SSD

Iniciando um Pruning

Selecione o cliente que você está usando nas abas abaixo.

Geth
Nethermind

Quando você quiser fazer pruning do Geth, simplesmente execute este comando:

rocketpool service prune-eth1

Se você não tem um par de clientes de fallback habilitado, você receberá o seguinte aviso:

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]

Se você tem um habilitado, verá o seguinte prompt em vez disso:

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]

Se você aceitar, verá alguns detalhes enquanto o Smartnode prepara as coisas; deve terminar com uma mensagem de sucesso:

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!

Com isso, o Geth agora está fazendo pruning e está tudo pronto! Você pode acompanhar o progresso com:

rocketpool service logs eth1

Uma vez que termine o pruning, ele reiniciará automaticamente e o Smartnode voltará a usá-lo novamente em vez do seu fallback.