Configure um validador da f(x)Core na testnet
Introdução
Nos últimos três meses, temos rodado os nodes validadores da f(x)Core pela Fundação Function X para garantir a estabilidade da rede. Agora, estamos finalmente abrindo ao público para que qualquer usuário possa rodar um node validador. Este artigo irá guiá-lo a configurar um validador na testsnet. Rodar um validador na mainnet será exatamente como na testnet, com a diferença de que só será possível daqui a cerca de um mês. Até lá, iremos lançar um tutorial em vídeo para facilitar o passo-a-passo. Para acompanhar tudo em primeira mão, nos siga no Twitter.
Com todo um conjunto de produtos e serviços a serem lançados na blockchain da f(x)Core nos próximos meses, esperamos que vocês estejam tão animados como nós em se tornar um node validador. Queremos que o processo de configurar um node seja bem fácil, e compilamos tudo o que você precisa saber neste artigo.
Primeiro iremos abordar alguns conceitos e pontos importantes sobre a blockchain da f(x)Core, como a criação de blocos e o sistema de consenso, antes de partirmos para os requisitos mínimos e instruções sobre como rodar um node validador. Ainda neste ponto, é importante ressaltar que ao participar de qualquer projeto descentralizada VOCÊ DEVE FAZER A SUA PRÓPRIA PESQUISA. Esta não é uma atividade sem riscos. Pesquise e aja com responsabilidade.
Dica: Não é preciso um hardware excepcionalmente bom para configurar um node validador da f(x)Core. Você pode até rodar um de casa, caso tenha 500 GB de armazenamento. E, é claro, é necessário possuir FX.
Passos para configurar um validador na f(x)Core
Caso você queira ir direto para a configuração do validador na f(x)Core, estes são os passos. Cada etapa possui o link para a documentação completa para guiá-lo com texto e capturas de tela.
Você pode consultar este link para obter a documentação completa da configuração.
O que é um validador?
A função de um validador é rodar um full-node e participar do consenso transmitindo novos votos para a blockchain. São os validadores que confirmam novos blocos na blockchain e, em troca do seu trabalho, recebem as novas unidades de FX geradas. Os validadores também participam da governança da blockchain, por meio do voto em propostas. O peso de cada validador varia de acordo com o stake de cada um (caso ainda pareça confuso, explicaremos mais adiante).
O que é um full-node?
Um full-node é um programa que valida os blocos e transações de uma rede blockchain. Ao contrário de um ligh-node, que apenas processa dados de blocos e algumas transações.
O que é um delegador?
Os delegadores são detentores de FX que desejam participar da governança do protocolo, mas não querem arcar com os custos e trabalho de tornarem-se validadores. Nesse caso, eles podem delegar as suas FX para um validador e obter uma parte da receita gerada pelo validador (bem como se sujeitar a alguns riscos). Se um validador se comportar mal ou for desonesto, ele será punido e os delegadores terão parte do seu stake reduzido. Portanto, é importante FAZER A DEVIDA PESQUISA SOBRE OS SEUS VALIDADORES, e diversificar os validadores para quem você delega os seus FX. Ser um delegador não é um papel totalmente passivo e exige pesquisa.
O que é validação?
A f(x)Core usa um protocolo delegado de proof of stake (DPoS). Isso significa que qualquer pessoa que possui FX pode delegar alguns ou todos os seus FX a um validador, resultando no validador “ganhando peso” na rede. Quanto mais “pesado” o validador, maior a probabilidade de ser atribuído como líder em mais slots, e ganhar mais recompensas por votar.
Dica: ao delegar as suas FX, você mantém total controle sobre os seus ativos , o que significa que pode optar por cancelar a delegação (undelegate) e sacar os seus FX a qualquer momento, independentemente do desempenho ou status do validador. No entanto, depois de retirar as FX de um validador, haverá um período de bloqueio de 21 dias em que você não poderá delegar a nenhum outro validador . Essa medida é para criar estabilidade na rede e evitar que as pessoas se aproveitem do sistema.
Antes de delegar / colocar as FX em staking para participar da governança da f(x)Core, certifique-se de entender como o sistema funciona e gerenciar o seus FX de acordo com os seus objetivos.
Fluxo de participação de usuários na governança
Como as recompensas porbloco são distribuídas?
As recompensas de cada bloco são distribuídas proporcionalmente a todos os validadores em relação ao seu poder de voto. Por mais que cada validador ganhe FX em cada recompensa, todos os validadores manterão seu peso original ao longo do tempo, a menos que novo FX colocado em stake na rede.
Por exemplo: temos 10 validadores, cada um com poder de voto igual um ao outro e uma taxa de comissão de 1%. Vamos supor também que a recompensa por cada bloco novo seja de 1000 FX e que cada validador tenha 20% de FX self-bonded (os 80% restantes são FX delegados de outros usuários para os validadores). Esses tokens não vão diretamente para o proponente. Ao invés disso, eles são distribuídos uniformemente entre todos validadores. Portanto, agora cada pool de validador tem 100 FX (1000 FX / 10). Esses 100 FX serão distribuídos de acordo com o stake de cada participante:
- Comissão do validador:
100*80%*1% = 0.8 FX
- O validador obtém:
100*20% + Commission = 20.8 FX
- Os delegadores obtém:
100*80% - Commission = 79.2 FX
Em seguida, cada delegador irá reivindicar a sua parte dos 79,2 FX na proporção do seu stake na staking pool do validador.
Como as taxas são distribuídas?
As taxas são distribuídas de forma semelhante, com a exceção de que o validador proponente do bloco pode obter um bônus sobre as taxas do bloco que ele está propondo, caso eles incluam mais do que o número mínimo exigido de pre-commits.
Quando um validador é selecionado para propor o bloco novo, ele deve incluir pelo menos 2/3 de pré-commits do bloco anterior. No entanto, há um incentivo para incluir mais de 2/3 pré-commits na forma de bônus. O bônus varia de 1% se o proponente incluir 2/3 de pré-commits (mínimo para validar o bloco) a 5% (crescimento linear) caso o proponente inclua 100% de pré-commits.
O proponente deve encontrar um equilíbrio entre esperar por mais assinaturas e arriscar perder a oportunidade de propor o próximo bloco inteiramente. Este mecanismo visa incentivar propostas de blocos que não estejam vazios, melhorar a conectividade entre os validadores e mitigar a censura.
Vamos dar um exemplo concreto para ilustrar o conceito acima mencionado. Neste exemplo, existem 10 validadores com stakes iguais. Cada um deles aplica uma taxa de comissão de 1% e tem 20% de FX self-delegated. Em seguida, vem um bloco bem-sucedido que coleta um total de 1.025,51020408 FX em taxas.
Primeiro, uma taxa de 2% é aplicada. Estes FXs vão para a pool de reserva. A pool de reserva pode ser alocada por meio de governança para financiar bounties e atualizações.
2% * 1025.51020408 = 20.51020408
FX irá para a pool de reserva.
Sobram 1005 FX. Vamos supor que o validador proponente incluiu 100% das assinaturas no bloco e obteve o bônus total de 5%.
Temos que resolver esta simples equação para encontrar a recompensa R para cada validador:
9*R + R + R*5% = 1005 ⇔ R = 1005/10.05 = 100
- Para o validador proponente:
- A pool recebe
R + R * 5%
: 105 FX - Comisão:
105 * 80% * 1%
= 0.84 FX - Recompensa do validador:
105 * 20% + Commission
= 21.84 FX - Recompensa do delegador:
105 * 80% - Commission
= 83.16 FX (cada delegador pode reivindicar a sua porção dessas recompensas na proporção dos seus stakes). - Para cada validador não proponente do bloco:
- A pool recebe R: 100 FX
- Comissão:
100 * 80% * 1%
= 0.8 FX - Recompensa do validador:
100 * 20% + Commission
= 20.8 FX - Recompensa do delegador:
100 * 80% - Commission
= 79.2 FX (cada delegador pode reivindicar a sua porção dessas recompensas na proporção dos seus stakes).
E agora, vamos à parte mais importante.
Quais são os requisitos de hardware para configurar um node validador da f(x)Core?
Recomendamos o seguinte:
- 2 ou mais núcleos de CPU
- Pelo menos 500GB de armazenamento
- Pelo menos 4GB de memória RAM
- Largura de banda de rede de pelo menos 10mbps
https://miro.medium.com/max/770/1*PFD9hz27ykDLlliVY2OHUg.gif
Ao contrário de validadores de outras blockchains, as especificações necessárias são bem simples e mais acessíveis.
Idealmente, você precisaria de um SSD e a única coisa que o impede de configurar um validador em um notebook em vez de configurá-lo em um servidor é o requisito de 500 GB de armazenamento em disco. Dito isso, conforme o uso da rede vai aumentando, os requisitos de hardware também tendem a aumentar.
Quais são os requisitos de largura de banda?
A f(x)Core tem a capacidade de uma quantidade de transações muito mais alta do que outras blockchains como o Bitcoin ou Ethereum.
Recomendamos que os nodes do data center se conectem apenas a full-nodes confiáveis na nuvem ou a outros validadores que eles conheçam socialmente. Mais uma vez FAÇA SUA PESQUISA.
Como lidar com o gerenciamento das chaves?
Os validadores devem esperar executar um Módulo de Segurança de Hardware (Hardware Security Module — HSM) que ofereça suporte a chaves ed25519. Aqui estão as opções possíveis:
- YubiHSM 2
- Ledger Nano S
- Ledger BOLOS SGX enclave
- Thales nShield support
A equipe não recomenda uma solução ao invés de outra. O validador é incentivado a reforçar os esforços para melhorar os HSMs e a segurança do gerenciamento das suas chaves.
Outras dicas
Executar uma operação eficaz não é uma tarefa fácil. A chave é evitar ataques e interrupções e manter a segurança e o isolamento. Executar atualizações regulares de software, correções de bugs e proteção contra ataques de negação de serviço são apenas alguns dos aspectos adicionais a serem observados.
Custos
Além dos custos de hardware e rede, os validadores precisam auto-delegar um mínimo de 100 FX. Para a mainnet, encorajamos ter 100.000 FX ou mais.
Não há obrigação para os validadores de auto-delegar mais do que 100 FX. No entanto, os delegadores podem definir requisitos mínimos de auto-delegação para seus validadores.
Caso a auto-delegação de um validador cair abaixo do limite predeterminado, todos os delegadores se desvincularão deste validador. Isso garante que os validadores terão mais pele em jogo.
Crie o seu próprio validador na Testnet
Você pode configurar um validador na testnet para fazer um teste e se preparar para configurar o seu validador na mainnet. Os requisitos e as etapas são exatamente os mesmos que na mainnet, exceto que para configurar um validador na testnet, você terá que mintar alguns FX através de um faucet.
Como mencionamos, estes são os passos para configurar um validador na testnet: instalação da f(x)Core, configuração do node, como lançar um node validador na mainnet da f(x)Core. Este link tem a documentação completa.
Dicas e truques gerais
- Nem pense em rodar em algo diferente do Ubuntu 20.04 LTS.
- Ao instalar o f (x) Core, certifique-se de instalar o GO versão 1.16 ou posterior.
- Ao configurar um full-node, o modo docker seria a melhor escolha.
- Depois que o node estiver configurado e sincronizado, levará algumas horas para que você possa voltar a jogar Axie Infinity.
- Ao vincular sua conta de depósito com a sua conta de consenso do node, certifique-se de auto-delegar um valor que seja menor do que o valor máximo em sua conta de depósito, já que uma pequena quantia de FX será pago em taxas para criar essa transação.
- Monitore o armazenamento do disco.
Até agora, é bastante coisa a ser digerida, incluindo a configuração e instruções no Gitbook. Caso seja muita coisa, não se preocupe, teremos um tutorial de vídeo em breve quando disponibilizarmos a configuração de validadores na mainnet.
E finalmente…
Por fim, agradecemos por todo apoio de vocês. Certifique-se de nos seguir no Twitter, Facebook, Reddit para nossas atualizações. Caso você esteja interessado em compartilhar ideias e participar da construção do ecossistema da Function X e torná-lo, participe ativamente de nosso Fórum e deixe um comentário abaixo.
— — — — -
Este artigo é uma tradução livre do artigo em inglês. Por mais que todos os esforços tenham sido empreendidos para preservar o sentido original do artigo, o artigo original em inglês é o válido no caso de qualquer divergência entre a versão original e a tradução.