Ejecutar un nodo Appchain en GCP

Implementa y gestiona un nodo Syndicate Appchain en Google Cloud Platform

Esta integración está en desarrollo activo. Para ayudar a mejorar esta guía o para soporte técnico en la ejecución de tu propio nodo Appchain, únete a nuestro Discord. Para reportar un error, puedes crear un nuevo issue en https://github.com/SyndicateProtocol/syndicate-appchains/issues.

Requisitos para desarrolladores

Esta guía asume que el lector está

  • familiarizado con la containerización y Docker
  • cómodo usando ssh para ejecutar comandos en una máquina remota
  • competente en ejecutar y mantener infraestructura usando un proveedor de nube como GCP

Antecedentes

Esta guía te permite implementar y gestionar fácilmente un nodo de lectura de Syndicate en Google Cloud Platform (GCP) para acceder a los datos en cadena de tu Appchain. Tu nodo ejecutará componentes del Syndicate Stack de código abierto.

Los nodos de lectura realizan la derivación de estado para una Appchain existente, lo que te permite consultar transacciones, saldos y otros datos de blockchain directamente desde tu propia infraestructura.

Actualmente, la configuración de Nodo de lectura está disponible para ser implementada a través del Marketplace de GCP.

Una configuración correspondiente de Nodo de escritura también estará disponible en el Marketplace de GCP y se está trabajando activamente en ella.

Implementar y configurar tu nodo RPC

Para implementar un nodo RPC de Syndicate en Google Cloud Platform, realiza los siguientes pasos.

  1. Accede al producto "Syndicate Appchain Read Node" en el Portal Web3 de Google Cloud o en el Marketplace y haz clic en el botón Launch.

  2. Selecciona la pestaña de implementación Terraform y proporciona un nombre descriptivo para tu VM RPC (como my-appchain-rpc-node) y selecciona o configura la cuenta de servicio.

  3. En la sección Configuración de instancia de VM, ingrese o seleccione los valores apropiados:

    • Zona: Seleccione una zona cercana a sus usuarios (por ejemplo, us-central1-a)
    • Tipo de máquina: n2-standard-8 (8 vCPUs, 32 GB RAM) mínimo recomendado para producción
    • Discos:
      • Disco de datos Syndicate: 100GB mínimo recomendado para producción
      • Disco de datos Nitro: 200GB mínimo recomendado para producción
    • Redes: Configuración opcional para exponer este RPC a internet automáticamente. Deje sin marcar para gestionar su configuración de red/firewall por separado.
  4. Haga clic en el botón Implementar y espere a que la consola confirme que los recursos están funcionando.

  5. Conéctese por SSH a su VM de Compute Engine y edite los siguientes archivos. Coordine con Syndicate para asegurarse de que está configurando correctamente las anulaciones específicas de appchain en cada archivo.

    # Set Sequencing Ingestor overrides
    sudo vi /opt/rpc-node/sequencing_ingestor.env
    
    # Set Settlement Ingestor overrides
    sudo vi /opt/rpc-node/settlement_ingestor.env
    
    # Set M-Chain overrides
    sudo vi /opt/rpc-node/mchain.env
    
    # Set Translator overrides
    sudo vi /opt/rpc-node/translator.env
    
    # Set Nitro overrides
    sudo vi /opt/rpc-node/nitro.env
    
    # Nitro chain info
    sudo vi /opt/rpc-node/config/chain_info.json
  6. Inicie todos los servicios en docker:

    sudo docker compose -f /opt/rpc-node/docker-compose.yml up -d
  7. Cuando los contenedores docker estén en funcionamiento, verifique que el nodo esté funcionando correctamente.

    Si habilitó el acceso público a través de la configuración del firewall anterior, puede probar el RPC usando su dirección IP externa:

       curl -X POST http://[EXTERNAL_IP]:8545 \
       -H "Content-Type: application/json" \
       -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

    Si no habilitó el acceso público, puede probar el RPC usando localhost desde dentro de la VM:

       curl -X POST http://localhost:8545 \
       -H "Content-Type: application/json" \
       -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

    Debería recibir una respuesta JSON con un número de bloque. Si no es el último bloque, es posible que su nodo aún esté sincronizándose.

Administración de su nodo RPC

Puede verificar el estado del nodo RPC iniciando sesión en la VM y ejecutando estos comandos:

# View running containers
sudo docker ps

# Check service logs
sudo docker compose -f /opt/rpc-node/docker-compose.yml logs

Acceso a su nodo RPC

Si habilitó el acceso público anteriormente, su nodo RPC expone los siguientes puntos de conexión:

  • HTTP: http://[EXTERNAL_IP]:8545
  • WebSocket: ws://[EXTERNAL_IP]:8548

Si no habilitaste el acceso público, entonces tu nodo RPC solo es accesible desde dentro de tu VPC:

  • HTTP: http://[INTERNAL_IP]:8545
  • WebSocket: ws://[INTERNAL_IP]:8548

Observabilidad

La observabilidad básica está integrada en estos Nodos de Appchain de Syndicate de forma predeterminada. Solo abre la pestaña Observability en el menú de Compute Engine en la consola de GCP para ver métricas y registros de este nodo.


Solución de problemas

¿Por qué mi nodo no puede procesar transacciones? Devuelve este error: error code -32000: publishing transactions not supported by this endpoint

En este momento, solo los Nodos de Lectura de Syndicate son compatibles con GCP Marketplace. Esta respuesta de error es esperada hasta que se admitan los nodos completos. Mientras tanto, comunícate con Syndicate si necesitas acceso a un punto final RPC que pueda procesar transacciones.

Soporte adicional

Si encuentras problemas al iniciar tu nodo RPC que no se mencionan en esta guía, comunícate con nuestro Discord para obtener soporte adicional.