Files
smom-dbis-138/terraform/phases/phase1/RPC_CONNECTIVITY_FIX.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

2.7 KiB

RPC Connectivity Fix

Issue Identified

The RPC connectivity issue was caused by Besu containers crashing due to an incorrect command in docker-compose.yml.

Root Cause

The docker-compose.yml file had:

command:
  - /opt/besu/bin/besu
  - --config-file=/config/besu-config.toml

But the Besu Docker container expects the command to be just besu (the binary is already in the PATH), not /opt/besu/bin/besu.

Error Message

Unmatched argument at index 0: '/opt/besu/bin/besu'
Did you mean: retesteth or operator?

This caused the container to crash and restart repeatedly, preventing it from listening on port 8545.

Fix Applied

Step 1: Fixed docker-compose.yml

Changed the command from:

command:
  - /opt/besu/bin/besu
  - --config-file=/config/besu-config.toml

To:

command:
  - besu
  - --config-file=/config/besu-config.toml

Step 2: Restarted Containers

For each Besu node:

  1. Stopped and removed existing container
  2. Fixed docker-compose.yml using sed
  3. Restarted container using docker compose up -d

Verification

NSG Rules

Port 8545 is allowed - AllowRPCHTTP rule exists on all backend VMs

Network Connectivity

VNet peerings working - Full mesh peering between all 6 VNets Ping successful - 0% packet loss between Nginx proxy and all backend nodes

Container Status

Containers running - Besu containers should now be in "Up" state instead of "Restarting"

RPC Connectivity

Testing in progress - Containers need time to fully start and initialize

Next Steps

  1. Fix docker-compose.yml - Completed on all nodes
  2. Wait for containers to start - Allow 30-60 seconds for Besu to initialize
  3. Verify RPC endpoints - Test eth_chainId on all nodes
  4. Test via Cloudflare - Verify https://rpc.d-bis.org responds correctly

Testing Commands

Test RPC from Nginx VM

for IP in 10.1.1.4 10.2.1.4 10.3.1.4 10.4.1.4 10.5.1.4; do
  curl -s -X POST -H "Content-Type: application/json" \
    --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
    http://$IP:8545
done

Test RPC via Cloudflare

curl -X POST https://rpc.d-bis.org \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

Expected response:

{"jsonrpc":"2.0","result":"0x8a","id":1}

Status

  • Issue identified: Besu container command incorrect
  • Fix applied: docker-compose.yml corrected on all nodes
  • Containers restarting: Waiting for Besu to fully initialize
  • RPC testing: In progress

Last Updated: After fixing docker-compose.yml on all nodes