Run an Appchain Node in GCP

Deploy and manage a Syndicate Appchain node in Google Cloud Platform

Note: This integration is under active development. Although we make every effort to provide accurate instructions, they are subject to change.

Deploy and Configure Your RPC Node

To deploy a Syndicate RPC node on the Google Cloud Platform, perform the following steps.

  1. Access the Syndicate RPC Node page in the Google Cloud Web3 Portal or Marketplace and click the LAUNCH button.

  2. Select the Terraform deployment tab and provide a descriptive name for your RPC VM (such as My-Appchain-RPC-Node-1) and setup the Service Account.

  3. In the VM Instance Configuration section, enter or select appropriate values:

    • Zone: Select a zone close to your users (e.g., us-central1-a)
    • Machine type: n2-standard-8 (8 vCPUs, 32 GB RAM) minimum recommended for production
    • Disk sizes: 10-20 GB
    • Firewalls: Check Allow HTTPS traffic to enable public RPC access, or uncheck all to manage your firewall config manually
  4. Click the Deploy button and wait for the Google Cloud Console to confirm the VM is running.

  5. SSH into your VM and run the following commands:

# 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

# Run everything
sudo docker compose -f /opt/rpc-node/docker-compose.yml up -d

Note: Many of those "override" values will be provided by Syndicate. Coordinate with us to make sure you are setting the right overrides in each file, according to your Appchain.

  1. When those docker containers are running, verify the node is working properly.

If you enabled public access via the firewall config above, then you can test the RPC using its external IP address:

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

If you did not enable public access, then you can test the RPC using localhost from within the VM:

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

You should receive a JSON response with a block number. If it's not the latest block, then your node may still be syncing.

Managing Your RPC Node

You can check the status of the RPC node by logging into the VM and running these commands:

# View running containers
sudo docker ps

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

Access Your RPC Node

If you enabled public access above, then your RPC node exposes the following endpoints:

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

If you did not enable public access, then your RPC node is only accessible from within your VPC:

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

Observability

Google's Ops Agent is installed in the VM by default, so you get observability for this node out-of-the-box. Just open the 'Observability' tab in the Compute Engine menu in the GCP console and you should see all metrics and logs for this node.

What If I Need Help?

If you encounter any problems with your RPC node, documentation is available at docs.syndicate.io.