- 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.
108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# 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:
|
|
```yaml
|
|
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:
|
|
```yaml
|
|
command:
|
|
- /opt/besu/bin/besu
|
|
- --config-file=/config/besu-config.toml
|
|
```
|
|
|
|
To:
|
|
```yaml
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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:
|
|
```json
|
|
{"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
|
|
|