Executando Seu Próprio Nó Avalanche em Go e Entendendo a Arquitetura da Rede

Configurar um nó Ethereum ou Bitcoin do zero não é uma tarefa rápida. Você precisa baixar centenas de gigabytes de dados e esperar semanas pela sincronização. Os desenvolvedores do Avalanche adotam uma abordagem um pouco diferente, embora você ainda não deva esperar que seja um passeio no parque.
A implementação oficial do nó da rede Avalanche em Go está disponível no repositório avalanchego. Este é o componente central de toda a infraestrutura do projeto. Sem ele, você não poderá executar um validador ou implantar uma rede de teste privada.
O Que Você Precisa Para Começar
Os desenvolvedores chamam os requisitos de hardware de modestos, mas os números no README sugerem o contrário. Para operação na Mainnet, você precisará de:
- 8 vCPU
- 16 GB de RAM
- 1 TB de espaço em disco livre
- Ubuntu (22.04/24.04) ou macOS 12+
O principal gargalo durante a primeira inicialização ocorre durante a fase de bootstrapping. O nó baixa o histórico da rede e verifica o estado. Esse processo leva vários dias. A principal restrição é a velocidade de E/S do disco (IOPS). Se você usar um HDD comum ou um SSD lento, o processo se arrastará por muito tempo, então um drive NVMe é praticamente obrigatório aqui.
Como Compilar e Executar o Cliente
Existem várias opções de instalação. Para Ubuntu, um repositório APT oficial está disponível, então você pode instalar o utilitário através do gerenciador de pacotes padrão.
Se você quiser compilar o binário a partir do código-fonte, você precisará do Go versão 1.25.10 ou mais recente, além de gcc e g++. O processo de compilação leva apenas alguns passos:
git clone [email protected]:ava-labs/avalanchego.git
cd avalanchego
./scripts/run_task.sh build
O binário compilado aparece no diretório build. Executar sem parâmetros conecta o nó à Mainnet:
./build/avalanchego
Para conectar à rede de teste Fuji, adicione um parâmetro:
./build/avalanchego --network-id=fuji
Se você não quiser poluir seu sistema operacional com dependências, é mais fácil compilar uma imagem Docker:
./scripts/run-task.sh build-image
docker run -ti -p 9650:9650 -p 9651:9651 avaplatform/avalanchego:latest /avalanchego/build/avalanchego
As portas 9650 e 9651 lidam com conexões HTTP API e P2P entre nós.
Suporte de Plataforma e Geração de Código
A abordagem da equipe para suporte ao sistema operacional é bastante rígida. As plataformas são divididas em três camadas.
A Camada 1 inclui sistemas Linux de 64 bits nas arquiteturas amd64 e arm64. Testes e2e e de stress completos são executados para eles.
A Camada 2 inclui macOS em chips Apple Silicon (arm64). Aqui, é garantido o passar de testes de módulo e integração, mas testes e2e não são reivindicados. macOS em processadores Intel, assim como Windows, não são oficialmente suportados.
O projeto usa ativamente gRPC e Protobuf. Se você planeja fazer alterações no protocolo, você precisará instalar buf, protoc-gen-go e executar o script de geração interno:
scripts/run_task.sh generate-protobuf
Desenvolvimento em um Ambiente Local
Executar terabytes de dados para desenvolvimento local e depuração de contratos inteligentes não faz sentido. Para essas tarefas, a equipe oferece um utilitário separado avalanche-cli. Ele inicia um ambiente local em literalmente dois comandos:
avalanche network start
avalanche network status
Isso economiza horas de tempo, já que você não precisa esperar pela sincronização inicial com redes públicas.
Conclusão
AvalancheGo é um código-fonte sólido para qualquer pessoa que esteja mergulhando na infraestrutura do Avalanche. O código é aberto sob a licença BSD-3, e o repositório é ativo com atualizações regulares. Se você está construindo serviços ao redor desta blockchain ou planejando executar seu próprio validador, estudar este repositório definitivamente vale a pena.
Projetos relacionados