Pular para o conteúdo principal

Tornando-se um Validador

Executando um Validador​

Recomendamos que você experimente ingressar em uma rede de teste pública primeiro. Informações sobre como ingressar na rede de teste mais recente podem ser encontradas aqui.

Antes de configurar um nó validador, certifique-se de ter concluído o guia de entrada na mainnet.

Se você pretende usar um KMS (sistema de gerenciamento de chaves), siga primeiro estas etapas: Usando um KMS.

O que é um Validador?​

Validador(es) são responsáveis por confirmar novos blocos na blockchain por meio de um processo de votação automatizado. O stake de um validador é retirado (slashed) se ficar indisponível ou assinar blocos na mesma altura. Como há risco de penalização, sugerimos ler sobre a Arquitetura de Nó Sentry para proteger seu nó contra ataques de DDOS e para garantir alta disponibilidade.

Se você deseja se tornar um validador da mainnet do Hub, deve aprender mais sobre segurança.

As instruções a seguir presumem que você já configurou um nó completo e está sincronizado com a altura do último bloco.

Crie seu Validador​

Sua mpvalconspub pode ser usada para criar um novo validador apostando tokens. Você pode encontrar a chave pública do seu validador executando:

crossfid tendermint show-validator

Para criar seu validador, basta usar o seguinte comando:

Não use mais mpx do que você tem!

crossfid tx staking create-validator \
--amount=1000000000000000000mpx \
--pubkey=$(crossfid tendermint show-validator) \
--moniker="choose a moniker" \
--chain-id= \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="10000000000000mpx" \
--gas-adjustment=1.5 \
--from=

Ao especificar os parâmetros de comissão, o commission-max-change-rate é usado para medir a mudança de % em pontos em relação à commission-rate. Por exemplo, 1% para 2% é um aumento de 100% na taxa, mas apenas um ponto percentual.

min-self-delegation é um inteiro estritamente positivo que representa a quantidade mínima de poder de voto auto-delegado que seu validador deve possuir sempre. Um min-self-delegation de 1000000 significa que seu validador nunca terá auto-delegação menor que 1 MPX

É possível que você não tenha MPX suficiente para estar no conjunto ativo de validadores no início. Usuários podem delegar para validadores inativos (aqueles fora do conjunto ativo) usando o XFI Console. Você pode confirmar que está no conjunto de validadores usando um explorador de terceiros como o XFI Scan.

Editar Descrição do Validador​

Você pode editar a descrição pública do seu validador. Essas informações ajudam a identificar seu validador e serão utilizadas pelos delegadores para decidir em quais validadores apostar. Certifique-se de fornecer entrada para cada flag abaixo. Se uma flag não estiver inclusa no comando, o campo terá o valor padrão vazio (--moniker por padrão usa o nome da máquina) se o campo nunca tiver sido definido ou permanecerá igual se já tiver sido definido no passado.

O caractere \ especifica qual validador você está editando. Se você escolher não incluir algumas das flags abaixo, lembre-se de que a flag --from deve ser incluída para identificar o validador a ser atualizado.

O --identity pode ser usado para verificar a identidade com sistemas como Keybase ou UPort. Ao usar Keybase, --identity deve ser preenchido com uma string de 16 dígitos gerada com uma conta keybase.io. É um método criptograficamente seguro de verificar sua identidade em várias redes online. A API do Keybase nos permite recuperar o avatar do Keybase. É assim que você pode adicionar um logotipo ao perfil do seu validador.

crossfid tx staking edit-validator
--moniker="choose a moniker" \
--website="https://google.com" \
--identity=6A0D65E29A4CBC8E \
--details="To infinity and beyond!" \
--chain-id= \
--gas="auto" \
--gas-prices="10000000000000mpx" \
--gas-adjustment=1.5 \
--from= \
--commission-rate="0.10"

Aviso: Observe que alguns parâmetros, como commission-max-rate e commission-max-change-rate, não podem ser alterados uma vez que seu validador esteja ativo.

Observação: O valor de commission-rate deve obedecer às seguintes regras:

  • Deve estar entre 0 e o commission-max-rate do validador
  • Não deve exceder o commission-max-change-rate do validador, que é a taxa máxima de variação em pontos percentuais por dia. Em outras palavras, um validador só pode alterar sua comissão uma vez por dia e dentro dos limites de commission-max-change-rate.

Ver Descrição do Validador​

Visualize as informações do validador com este comando:

crossfid query staking validator

Acompanhar Informações de Assinatura do Validador​

Para acompanhar as assinaturas de um validador no passado, você pode usar o comando signing-info:

crossfid query slashing signing-info \\
--chain-id=

Desbloquear Validador​

Quando um validador fica preso (jailed) por downtime, você deve enviar uma transação de desbloqueio (Unjail) a partir da conta do operador para voltar a receber recompensas de proposição de bloco (isso depende da distribuição de taxas da zona).

crossfid tx slashing unjail \
--from= \
--chain-id=

Confirmar seu Validador está em funcionamento​

Seu validador está ativo se o comando a seguir retornar algo:

crossfid query tendermint-validator-set | grep "$(crossfid tendermint show-address)"

Agora você deverá ver seu validador em um dos exploradores da CrossFi Chain. Você deverá procurar o endereço codificado em bech32 no arquivo ~/.crossfi/config/priv_validator.json.

Parando o Seu Validador​

Ao tentar realizar manutenção de rotina ou planejar uma atualização coordenada, pode ser útil fazer com que seu validador pause de forma sistemática e suave. Você pode alcançar isso definindo halt-height para a altura em que deseja que seu nó seja desligado ou passando a flag --halt-height para o crossfid. O nó será desligado com um código de saída zero na altura especificada, após confirmar o bloco.

Configuração Avançada​

Você pode encontrar informações mais avançadas sobre executar um nó ou um validador na documentação do Tendermint Core.

Problemas comuns​

Problema #1: Meu validador tem voting_power: 0​

Seu validador ficou preso (jailed). Validadores ficam presos, ou seja, removidos do conjunto ativo de validadores, se não votarem em pelo menos 500 dos últimos 10.000 blocos, ou se assinarem duas vezes.

Se você foi encarcerado por downtime, pode recuperar seu poder de voto para o seu validador. Primeiro, se você não estiver usando Cosmovisor e o crossfid não estiver em execução, inicie-o novamente:

crossfid start

Aguarde até o seu nó completo alcançar o último bloco. Em seguida, você pode desbloquear (unjail) seu validador.

Depois de enviar a transação de desbloqueio, verifique novamente o seu validador para ver se o poder de voto voltou.

crossfid status

Você pode notar que seu poder de voto é menor do que já foi. Isso ocorreu porque você foi penalizado por downtime!

Problema #2: Meu crossfid trava devido a too many open files​

O número padrão de arquivos Linux pode abrir (por processo) é 1024. O crossfid é conhecido por abrir mais de 1024 arquivos. Isso faz o processo travar. Uma solução rápida é executar ulimit -n 4096 (aumentar o número de arquivos abertos permitidos) e então reiniciar o processo com crossfid start. Se você estiver usando systemd ou outro gerenciador de processos para iniciar o crossfid (como Cosmovisor) isso pode exigir alguma configuração nesse nível. Um exemplo de arquivo systemd para consertar esse problema está abaixo:


# /etc/systemd/system/crossfid.service
[Unit]
Description=CrossFi Chain Node
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/home/ubuntu/go/bin/crossfid start
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target