Saltearse al contenido

Ejecutar un Nodo Completo Público

Puedes ejecutar tu propio nodo completo público (PFN) para sincronizar el estado de la blockchain de Aptos y mantenerte actualizado. Los PFN replican todo el estado de la blockchain sincronizándose desde otros VFN y PFN de Aptos. Los PFN pueden ser ejecutados por cualquiera. Esta sección explica cómo desplegar un PFN y conectarse a una red de Aptos. Puedes aprender más sobre los diferentes tipos de nodos en la sección Análisis Profundo de Blockchain.

¿Por qué ejecutar un Nodo Completo Público?

Sección titulada «¿Por qué ejecutar un Nodo Completo Público?»

Ejecutar tu propio PFN ofrece varios beneficios:

  • Acceso directo y confiable a los datos de la blockchain
  • Sin dependencia de servicios de terceros para consultas
  • Capacidad de consultar datos históricos completos
  • Latencia reducida para aplicaciones que interactúan frecuentemente con la blockchain
  • Control sobre la configuración y optimización del nodo
  • Capacidad de procesar consultas sin límites de tasa externos
  • Ayuda a descentralizar la red proporcionando más puntos de acceso
  • Mejora la resiliencia general de la red
  • Apoya la misión de descentralización de Aptos
  • Entorno confiable para desarrollo de aplicaciones
  • Capacidad de probar contra datos de blockchain reales
  • Útil para servicios de indexación personalizados

Puedes desplegar tu PFN usando varios métodos:

  • Fácil de configurar y mantener
  • Imágenes pre-construidas disponibles
  • Aislamiento y gestión de dependencias automatizada
  • Escalable y apto para producción
  • Gestión automatizada y recuperación ante fallos
  • Ideal para operaciones empresariales
  • Control total sobre la compilación y configuración
  • Útil para desarrollo y personalización
  • Requiere más experiencia técnica
  • AWS, GCP, Azure y otros proveedores
  • Infraestructura gestionada
  • Escalabilidad automática disponible
  • CPU: 4 núcleos
  • RAM: 8GB
  • Almacenamiento: 300GB SSD
  • Red: Conexión estable a internet con 100Mbps+
  • CPU: 8+ núcleos
  • RAM: 16GB+
  • Almacenamiento: 1TB+ SSD NVMe
  • Red: 1Gbps+ conexión dedicada
  • Puerto 6180: Para sincronización de nodos (debe estar abierto)
  • Puerto 8080: Para API REST (opcional, para acceso público)
  • Puerto 9101: Para métricas (opcional, para monitoreo)
Ventana de terminal
# Crear directorio para el nodo
mkdir aptos-fullnode
cd aptos-fullnode
# Crear subdirectorios necesarios
mkdir config data
Ventana de terminal
# Descargar configuración de mainnet
wget https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/validator.yaml -O config/validator.yaml
wget https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/genesis.blob -O config/genesis.blob
wget https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/mainnet/waypoint.txt -O config/waypoint.txt
version: "3.8"
services:
fullnode:
image: "aptoslab/validator:mainnet"
restart: unless-stopped
ports:
- "6180:6180"
- "8080:8080"
- "9101:9101"
volumes:
- ./config:/opt/aptos/etc
- ./data:/opt/aptos/data
command: ["/usr/local/bin/aptos-node", "-f", "/opt/aptos/etc/validator.yaml"]
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "5"
Ventana de terminal
# Iniciar con Docker Compose
docker-compose up -d
# Verificar que esté ejecutándose
docker-compose ps
Ventana de terminal
# Verificar estado de sincronización
curl http://localhost:8080/v1
# Verificar información del nodo
curl http://localhost:8080/v1/-/healthy
Ventana de terminal
# Ver logs en tiempo real
docker-compose logs -f fullnode
# Ver logs recientes
docker-compose logs --tail=100 fullnode
Ventana de terminal
# Acceder a métricas Prometheus
curl http://localhost:9101/metrics
# Verificar progreso de sincronización
curl http://localhost:9101/metrics | grep aptos_state_sync_version

Para conectar a testnet o devnet, modifica la configuración:

# Para testnet
base:
chain_id: 2
data_dir: "/opt/aptos/data"
waypoint:
from_file: "/opt/aptos/etc/waypoint.txt"
# Configuración de red específica...
storage:
enable_indexer: true
rocksdb_configs:
max_open_files: 10000
max_total_wal_size: 1073741824
state_sync:
continuous_syncing_mode: apply_transaction_outputs
Ventana de terminal
# Permitir tráfico necesario
sudo ufw allow 6180/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 9101/tcp
  1. Sincronización Lenta

    • Verificar conexión de red
    • Aumentar recursos de CPU/RAM
    • Verificar espacio en disco
  2. Errores de Conexión

    • Verificar configuración de firewall
    • Verificar archivos genesis/waypoint
    • Verificar configuración de red
  3. Alto Uso de Recursos

    • Optimizar configuración de RocksDB
    • Aumentar memoria disponible
    • Usar almacenamiento SSD más rápido
Ventana de terminal
# Verificar uso de recursos
docker stats
# Verificar conectividad de red
telnet <peer-ip> 6180
# Verificar archivos de configuración
docker-compose exec fullnode cat /opt/aptos/etc/validator.yaml
Ventana de terminal
# Parar el nodo
docker-compose down
# Actualizar imagen
docker-compose pull
# Reiniciar con nueva imagen
docker-compose up -d
Ventana de terminal
# Crear respaldo de datos
tar -czf aptos-backup-$(date +%Y%m%d).tar.gz data/
# Restaurar desde respaldo (si es necesario)
tar -xzf aptos-backup-20240101.tar.gz

Para guías de despliegue más detalladas y específicas por plataforma, consulta las secciones de documentación especializadas.