Criando um Node Padrão Rocket Pool com Docker

Nesta seção, vamos percorrer o processo de instalação da stack Smartnode do Rocket Pool usando a configuração padrão baseada em Docker. Isso instalará e configurará tudo o que você precisa para executar um node completo, incluindo:

  • O software Smartnode do Rocket Pool
  • Um cliente Execution (anteriormente ETH1) de sua escolha, ou uma conexão a um cliente existente que você já gerencia
  • Um cliente Consensus (anteriormente ETH2) de sua escolha, ou uma conexão a um cliente existente que você já gerencia
  • Um cliente Validator que cuidará de suas tarefas de validação da Beacon Chain
  • (Opcionalmente) uma stack de monitoramento para capturar métricas de desempenho e saúde

Tudo o que você precisa fazer é dizer o que deseja executar!

NOTA

As instruções abaixo exigem que você use o terminal do seu sistema para inserir e executar comandos. Se você estiver conectado à máquina do node via SSH, você já está fazendo isso. Se você estiver na máquina do node e usando uma interface de usuário Desktop, precisará abrir uma janela de terminal para executar os seguintes comandos. Consulte as instruções do seu sistema operacional para aprender como fazer isso se não estiver familiarizado.

Visão Geral do Processo

Em alto nível, aqui está o que está envolvido na instalação do Rocket Pool:

  1. Baixar a interface de linha de comando (CLI) do Rocket Pool
  2. Usar a CLI para instalar a stack Smartnode
  3. Configurar a stack Smartnode com uma interface de usuário fácil de usar no terminal
  4. Pronto!

Antes de Começar

Warning

Se estiver usando Ubuntu, é recomendado que antes de instalar o Rocket Pool você verifique se o docker não foi instalado junto com o sistema operacional.

O instalador do Ubuntu obtém o docker do gerenciador de pacotes snap, que entrará em conflito com a versão do docker instalada pelo Smartnode.

Execute snap list e certifique-se de que o docker não foi instalado.

Por exemplo, esta é a saída em uma máquina onde o docker não está instalado:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

E aqui está a saída se foi instalado:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
docker  20.10.17       2746   latest/stable  canonical✓  -
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

Se você vê-lo na saída do snap list, certifique-se de removê-lo com:

sudo systemctl stop snap.docker.dockerd.service

sudo snap remove --purge docker

Depois disso, é recomendado que você reinicie a máquina (sudo systemctl reboot)

Baixando a CLI do Rocket Pool

As instruções para baixar a CLI variam de acordo com seu sistema operacional.

NOTA

Você deve executar as seguintes instruções na máquina que você usará para seu node Rocket Pool. Se você não estiver usando um teclado e monitor conectados diretamente à sua máquina de node, precisará acessá-la remotamente (por exemplo, via SSH) e executar esses comandos nela através dessa conexão remota.

Linux
MacOS

No Linux, comece criando uma nova pasta que conterá a aplicação CLI:

mkdir -p ~/bin

Em seguida, baixe a CLI. Isso depende de qual arquitetura seu sistema usa.

DICA

Se você não sabe a arquitetura da sua CPU, pode executar o seguinte comando para descobrir:

uname -m

A saída deste comando imprimirá sua arquitetura. Note que x86_64 é o mesmo que x64 e amd64. Note que aarch64 é o mesmo que arm64.

Para sistemas x64 (a maioria dos computadores normais):

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool

Para sistemas arm64:

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-arm64 -O ~/bin/rocketpool

Marque como executável, para que tenha permissões para executar:

chmod +x ~/bin/rocketpool

Em seguida, faça logout e login novamente (ou feche o SSH e reconecte), ou simplesmente reinicie. Isso ocorre porque o caminho em que você salvou a CLI (~/bin) pode ainda não estar na variável PATH do seu sistema (a lista de lugares onde o sistema procura executáveis). Fazer logout e login novamente irá colocá-lo lá.

Agora, teste executando-o com a flag --version. Você deve ver uma saída como esta:

rocketpool --version
rocketpool version 1.18.10

DICA

Se você ver uma mensagem de erro como esta,

-bash: /home/user/rocketpool: cannot execute binary file: Exec format error

significa que você baixou a versão errada acima. Por favor, verifique se seu sistema é x64 ou arm64 usando o comando na dica acima, e baixe a versão apropriada. Se seu sistema não for nenhum desses, então você não poderá executar o Rocket Pool.

Instalando a Stack Smartnode

Agora que você tem a CLI instalada, pode implantar a stack Smartnode. Isso preparará seu sistema com Docker, docker-compose, e carregará os arquivos do Smartnode para que estejam prontos para uso. Ainda não executará nada; isso vem depois.

Para implantar a stack Smartnode, você precisará executar o seguinte comando na sua máquina de node (fazendo login localmente ou conectando remotamente, como através de SSH):

rocketpool service install

Isso obterá a versão mais recente da stack Smartnode e a configurará. Você deve ver uma saída como esta (acima de algumas notas de versão para a versão mais recente que serão impressas no final):

Se não houver mensagens de erro, então a instalação foi bem-sucedida. Por padrão, será colocada no diretório ~/.rocketpool dentro da pasta home da sua conta de usuário.

NOTA

Note que o instalador do Smartnode não pode instalar docker e docker-compose em todas as plataformas automaticamente. Se você receber uma mensagem de erro como esta durante a instalação:

Automatic dependency installation for the Mint operating system is not supported.
Please install docker and docker-compose manually, then try again with the '-d' flag to skip OS dependency installation.
Be sure to add yourself to the docker group with 'sudo usermod -aG docker $USER' after installing docker.
Log out and back in, or restart your system after you run this command.

Então você simplesmente tem que instalar essas duas coisas manualmente.

O Docker fornece instruções de instalação comuns aqui.

O Docker-compose fornece instruções de instalação comuns aqui.

Depois que ambos estiverem instalados, certifique-se de dar permissão à sua conta de usuário para usar o Docker:

sudo usermod -aG docker $USER

Finalmente, execute novamente o instalador com a flag -d para pular a instalação do Docker:

rocketpool service install -d

Depois disso, faça logout e login novamente ou reinicie sua sessão SSH para que as configurações tenham efeito.

Quando isso for concluído, a stack Smartnode estará pronta para executar.

Configurando a Localização de Armazenamento do Docker

Por padrão, o Docker armazenará todos os dados de seus containers na unidade do seu sistema operacional. Em alguns casos, isso não é o que você deseja.

NOTA

Se você está satisfeito com este comportamento padrão, pule para a próxima seção.

Para fazer isso, crie um novo arquivo chamado /etc/docker/daemon.json como usuário root:

sudo nano /etc/docker/daemon.json

Este estará vazio no início, o que está bem. Adicione isso como conteúdo:

{
  "data-root": "<seu ponto de montagem externo>/docker"
}

onde <seu ponto de montagem externo> é o diretório em que sua outra unidade está montada.

Pressione Ctrl+O, Enter para salvar o arquivo, e Ctrl+X, Enter para sair do editor.

Em seguida, crie a pasta:

sudo mkdir -p <seu ponto de montagem externo>/docker

Agora, reinicie o daemon do docker para que ele capte as alterações:

sudo systemctl restart docker

Depois disso, o Docker armazenará seus dados no disco desejado.

Configurando a Stack Smartnode

O próximo passo no processo de instalação é fazer uma configuração inicial do seu node. Siga para a seção Configurando o Rocketpool para um passo a passo deste processo.