Ejecuta Tu Propio Nodo Avalanche en Go y Comprende la Arquitectura de Red

Configurar un nodo de Ethereum o Bitcoin desde cero no es una tarea rápida. Tienes que descargar cientos de gigabytes de datos y esperar semanas para la sincronización. Los desarrolladores de Avalanche toman un enfoque ligeramente diferente, aunque no deberías esperar un paseo por el parque.
La implementación oficial del nodo de la red Avalanche en Go está disponible en el repositorio avalanchego. Este es el componente central de toda la infraestructura del proyecto. Sin él, no podrás ejecutar un validador ni desplegar una red de prueba privada.
Lo Que Necesitas Para Comenzar
Los desarrolladores califican los requisitos de hardware como modestos, pero los números en el README sugieren lo contrario. Para operar en Mainnet, necesitarás:
- 8 vCPU
- 16 GB de RAM
- 1 TB de espacio libre en disco
- Ubuntu (22.04/24.04) o macOS 12+
El principal cuello de botella durante el primer inicio ocurre durante la fase de bootstrapping. El nodo descarga el historial de la red y verifica el estado. Este proceso tarda varios días. La principal restricción es la velocidad de E/S del disco (IOPS). Si usas un HDD normal o un SSD lento, el proceso se arrastrará durante mucho tiempo, por lo que un disco NVMe es prácticamente obligatorio aquí.
Cómo Compilar y Ejecutar el Cliente
Hay varias opciones de instalación. Para Ubuntu, hay un repositorio APT oficial disponible, por lo que puedes instalar la utilidad a través del gestor de paquetes estándar.
Si quieres compilar el binario desde el código fuente, necesitarás Go versión 1.25.10 o superior, así como gcc y g++. El proceso de compilación solo lleva un par de pasos:
git clone [email protected]:ava-labs/avalanchego.git
cd avalanchego
./scripts/run_task.sh build
El binario compilado aparece en el directorio build. Ejecutar sin parámetros conecta el nodo a Mainnet:
./build/avalanchego
Para conectarte a la red de prueba Fuji, añade un flag:
./build/avalanchego --network-id=fuji
Si no quieres saturar tu sistema operativo con dependencias, es más fácil construir una imagen Docker:
./scripts/run-task.sh build-image
docker run -ti -p 9650:9650 -p 9651:9651 avaplatform/avalanchego:latest /avalanchego/build/avalanchego
Los puertos 9650 y 9651 manejan las conexiones HTTP API y P2P entre nodos.
Soporte de Plataformas y Generación de Código
El enfoque del equipo para el soporte de sistemas operativos es bastante estricto. Las plataformas se dividen en tres niveles.
El Nivel 1 incluye sistemas Linux de 64 bits en arquitecturas amd64 y arm64. Se ejecutan pruebas e2e y de estrés completas para ellos.
El Nivel 2 incluye macOS en chips Apple Silicon (arm64). Aquí se garantiza la aprobación de pruebas de módulos e integración, pero no se reclaman pruebas e2e. macOS en procesadores Intel, así como Windows, no están oficialmente soportados.
El proyecto usa activamente gRPC y Protobuf. Si planeas hacer cambios en el protocolo, necesitarás instalar buf, protoc-gen-go y ejecutar el script de generación interno:
scripts/run_task.sh generate-protobuf
Desarrollo en un Entorno Local
Ejecutar terabytes de datos para desarrollo local y depuración de contratos inteligentes no tiene sentido. Para estas tareas, el equipo ofrece una utilidad separada avalanche-cli. Levanta un entorno local literalmente en dos comandos:
avalanche network start
avalanche network status
Esto ahorra horas de tiempo ya que no tienes que esperar la sincronización inicial con redes públicas.
Conclusión
AvalancheGo es un código fuente sólido para cualquiera que se adentre en la infraestructura de Avalanche. El código es abierto bajo la licencia BSD-3, y el repositorio está activo con actualizaciones regulares. Si estás construyendo servicios alrededor de esta blockchain o planeas ejecutar tu propio validador, estudiar este repositorio definitivamente vale la pena.
Proyectos relacionados