Executar um Nó de Validador

Configurando um nó de Validador da Chiliz Chain

O que é um nó de validador?

Para se tornar um validador da Chiliz Chain, é necessário ter uma configuração de hardware específica e ser capaz de executar um nó de Validador. Um nó é um sistema de computador configurado especificamente para validar transações antes de comprometê-las na Chiliz Chain.

Lançando o nó de Validador

Para executar um nó de Validador, você precisa definir os seguintes parâmetros:

TL;DR você precisa executar o seguinte comando (certifique-se de atualizar o parâmetro nodekeyhex!)

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--mine \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
--datadir=/datadir \
--password=/datadir/password.txt \
--allow-insecure-unlock \
--unlock=f9100d364b45a8fdbd178ed1edfe632cc7eb2ecc \
--syncmode=full \
--gcmode=archive \
--miner.etherbase=REPLACE_WITH_VALIDATOR_ADDRESS \
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 \
--nat=extip:140.250.140.250 \ # Este é apenas um exemplo.
--verbosity=4

Pré-requisitos

Para executar o nó de validador da Chiliz Chain, você deve ter o Docker Engine instalado em sua máquina ou servidor.

Portanto, conclua a instalação do Docker antes de prosseguir.

Requisitos do sistema

Você precisará de um servidor dedicado para executar seu nó de validador. Este servidor deve ter pelo menos 4GB de RAM, 2 núcleos de CPU e um disco de estado sólido (SSD) para desempenho ideal. Recomenda-se ter pelo menos 300 GB de espaço livre em disco para sincronizar com a cadeia. Você pode usar um provedor de nuvem como Amazon Web Services, Google Cloud Platform ou Microsoft Azure, ou pode configurar seu próprio servidor.

Imagens Docker pré-construídas

Veja ou use as imagens Docker pré-construídas do repositório público Chiliz Chain 2.0 no Docker hub.

Lançando um nó de Validador e iniciando a sincronização

O ponto de partida recomendado para executar um nó de validador da Chiliz Chain é com o volume de dados montado. Se este método for usado para recriar um contêiner Docker, os dados serão armazenados no diretório e podem ser facilmente reutilizados ou clonados para outro validador.

Criar o endereço do validador

Crie o nó de validador com o seguinte comando:

docker run --rm -ti \
-v $(pwd)/keystore:/root/.ethereum/keystore/ \
chilizchain/ccv2-geth:latest \
--chiliz \  # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
account new

Você precisará digitar uma senha para o arquivo da chave secreta.

  • Endereço público da chave: Ao executar o validador, este endereço será usado para definir o parâmetro --unlock.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # Este é apenas um exemplo.
...
  • Caminho do arquivo de chave secreta: Este arquivo precisa ser movido para o diretório "keystore" dentro do datadir $(pwd)/my-datadir que você criou nos passos anteriores, então o caminho final do arquivo será "$(pwd)/my-datadir/keystore/UTC–(TIMESTAMP)-(ADDRESS)". NÃO altere o nome do arquivo.

  • Senha: A senha que você digitou durante a execução do comando anterior precisa ser armazenada em um arquivo: $(pwd)/my-datadir/password.txt Este arquivo será usado para definir o parâmetro --password ao executar o nó de validador. Não se esqueça de que todos os arquivos no caminho do host $(pwd)/my-datadir estarão localizados no contêiner no diretório /datadir, por isso o parâmetro de senha deve ser definido como no exemplo a seguir:

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--password=/datadir/password.txt
...

É muito importante ter as seguintes recomendações em mente:

  • Você pode compartilhar seu endereço público com qualquer pessoa. Outros precisam dele para interagir com você.

  • Você NUNCA deve compartilhar a chave secreta com ninguém! A chave controla o acesso aos seus fundos!

  • Você deve FAZER BACKUP do seu arquivo de chave! Sem a chave, é impossível acessar os fundos da conta!

  • Você deve LEMBRAR da sua senha! Sem a senha, é impossível descriptografar a chave!

Gerar a chave do nó de validador

Esta seção é opcional.

Recomenda-se gerar uma string hexadecimal aleatória para o nó.

Isso é útil para rastreabilidade nos logs e para evitar problemas de conexão com a cadeia.

Para isso, você pode usar https://www.browserling.com/tools/random-hex e gerar uma chave hexadecimal com 64 caracteres por nó.

Ao executar um nó de validador, você pode definir --nodekeyhex com esse valor. Isso garantirá que, ao reiniciar o nó, ele tenha o mesmo endereço de nó (chamado "endereço enode") e permitirá uma depuração futura mais fácil.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # Este é apenas um exemplo.
...

Definir o mecanismo de mapeamento de porta NAT

De acordo com a documentação do Geth, o parâmetro --nat tem diferentes opções: any, none, upnp, pmp e extip:<IP>. O padrão é any. Recomendamos usar extip:<IP>, onde IP é o IPv4 público onde o validador está sendo lançado.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nat=extip:140.250.140.250 # Este é apenas um exemplo.
...

Definir a verbosidade

Para uma depuração mais profunda, a verbosidade de log pode ser definida como:

  • 0=silent

  • 1=error

  • 2=warn

  • 3=info

  • 4=debug

  • 5=detail

O valor padrão para o parâmetro --verbosity é 3. Recomendamos usar 4.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--verbosity=4 # Este é apenas um exemplo.
...

Last updated