Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
222 lines
5.4 KiB
Markdown
222 lines
5.4 KiB
Markdown
# RPC Troubleshooting - Complete Summary
|
|
|
|
**Date**: $(date)
|
|
**Issue**: RPC-01 (VMID 2500) troubleshooting and resolution
|
|
|
|
---
|
|
|
|
## 🔍 Issue Identified
|
|
|
|
RPC-01 (VMID 2500) was experiencing multiple issues preventing proper operation:
|
|
|
|
1. **Missing Configuration File**: Service expected `/etc/besu/config-rpc.toml` but only `config-rpc-public.toml` existed
|
|
2. **Service File Mismatch**: Service file referenced wrong config file name
|
|
3. **Database Corruption**: Corrupted `DATABASE_METADATA.json` file preventing startup
|
|
4. **Missing Required Files**: Genesis, static-nodes, and permissions files in wrong locations
|
|
5. **Database Directory Missing**: `/data/besu/database/` directory did not exist
|
|
|
|
---
|
|
|
|
## ✅ Resolution Steps Taken
|
|
|
|
### 1. Configuration File Fix
|
|
|
|
**Problem**: Service expected `config-rpc.toml` but only `config-rpc-public.toml` existed
|
|
|
|
**Solution**:
|
|
```bash
|
|
pct exec 2500 -- cp /etc/besu/config-rpc-public.toml /etc/besu/config-rpc.toml
|
|
pct exec 2500 -- chown besu:besu /etc/besu/config-rpc.toml
|
|
```
|
|
|
|
### 2. Service File Update
|
|
|
|
**Problem**: Service file referenced `config-rpc-public.toml` instead of `config-rpc.toml`
|
|
|
|
**Solution**:
|
|
```bash
|
|
pct exec 2500 -- sed -i 's|config-rpc-public.toml|config-rpc.toml|g' /etc/systemd/system/besu-rpc.service
|
|
pct exec 2500 -- systemctl daemon-reload
|
|
```
|
|
|
|
### 3. Database Corruption Fix
|
|
|
|
**Problem**: Corrupted `DATABASE_METADATA.json` causing startup failures
|
|
|
|
**Solution**:
|
|
```bash
|
|
pct exec 2500 -- systemctl stop besu-rpc.service
|
|
pct exec 2500 -- rm -f /data/besu/DATABASE_METADATA.json
|
|
pct exec 2500 -- rm -rf /data/besu/database/*
|
|
```
|
|
|
|
### 4. Required Files Setup
|
|
|
|
**Problem**: Genesis, static-nodes, and permissions files in `/etc/besu/` but config expects `/genesis/` and `/permissions/`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Create directories
|
|
pct exec 2500 -- mkdir -p /genesis /permissions
|
|
|
|
# Copy files
|
|
pct exec 2500 -- cp /etc/besu/genesis.json /genesis/
|
|
pct exec 2500 -- cp /etc/besu/static-nodes.json /genesis/
|
|
pct exec 2500 -- cp /etc/besu/permissions-nodes.toml /permissions/
|
|
|
|
# Set ownership
|
|
pct exec 2500 -- chown -R besu:besu /genesis /permissions
|
|
```
|
|
|
|
### 5. Database Directory Creation
|
|
|
|
**Problem**: Database directory missing
|
|
|
|
**Solution**:
|
|
```bash
|
|
pct exec 2500 -- mkdir -p /data/besu/database
|
|
pct exec 2500 -- chown -R besu:besu /data/besu
|
|
```
|
|
|
|
### 6. Service Restart
|
|
|
|
**Solution**:
|
|
```bash
|
|
pct exec 2500 -- systemctl start besu-rpc.service
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Verification Results
|
|
|
|
### Service Status
|
|
|
|
- **Status**: ✅ Active (running)
|
|
- **Process**: ✅ Besu process running (PID 327821)
|
|
- **Uptime**: Stable since restart
|
|
|
|
### Network Ports
|
|
|
|
- **8545 (HTTP RPC)**: ✅ Listening
|
|
- **8546 (WebSocket RPC)**: ✅ Listening
|
|
- **30303 (P2P)**: ✅ Listening
|
|
- **9545 (Metrics)**: ✅ Listening
|
|
|
|
### Network Connectivity
|
|
|
|
- **RPC Endpoint**: ✅ Responding
|
|
- **Chain ID**: ✅ 138 (correct)
|
|
- **Block Production**: ✅ Active (syncing blocks)
|
|
- **Peers**: ✅ Connected to 5 peers
|
|
|
|
### Block Sync Status
|
|
|
|
- **Current Block**: > 11,200 (at time of fix)
|
|
- **Sync Status**: ✅ Actively syncing
|
|
- **Import Rate**: Processing blocks successfully
|
|
|
|
---
|
|
|
|
## 🛠️ Tools Created
|
|
|
|
### 1. Troubleshooting Script
|
|
|
|
**File**: `scripts/troubleshoot-rpc-2500.sh`
|
|
|
|
**Features**:
|
|
- Container status check
|
|
- Network configuration verification
|
|
- Service status check
|
|
- Configuration file validation
|
|
- Required files check
|
|
- Port listening check
|
|
- RPC endpoint test
|
|
- Process verification
|
|
- Error log analysis
|
|
|
|
### 2. Fix Script
|
|
|
|
**File**: `scripts/fix-rpc-2500.sh`
|
|
|
|
**Features**:
|
|
- Automated configuration file creation
|
|
- Deprecated option removal
|
|
- Service file update
|
|
- Required files setup
|
|
- Service restart
|
|
- Verification
|
|
|
|
### 3. Documentation
|
|
|
|
**Files Created**:
|
|
- `docs/09-troubleshooting/RPC_2500_TROUBLESHOOTING.md` - Complete guide
|
|
- `docs/09-troubleshooting/RPC_2500_QUICK_FIX.md` - Quick reference
|
|
- `docs/09-troubleshooting/RPC_2500_TROUBLESHOOTING_SUMMARY.md` - Summary
|
|
|
|
---
|
|
|
|
## 📋 Configuration Fixes Applied
|
|
|
|
### Template Updates
|
|
|
|
**File**: `smom-dbis-138-proxmox/templates/besu-configs/config-rpc.toml`
|
|
|
|
**Changes**:
|
|
- ✅ Removed `log-destination` (deprecated)
|
|
- ✅ Removed `max-remote-initiated-connections` (deprecated)
|
|
- ✅ Removed `trie-logs-enabled` (deprecated)
|
|
- ✅ Removed `accounts-enabled` (deprecated)
|
|
- ✅ Removed `database-path` (deprecated)
|
|
- ✅ Removed `rpc-http-host-allowlist` (deprecated)
|
|
|
|
### Installation Script Updates
|
|
|
|
**File**: `smom-dbis-138-proxmox/install/besu-rpc-install.sh`
|
|
|
|
**Changes**:
|
|
- ✅ Changed service to use `config-rpc.toml` (not `config-rpc-public.toml`)
|
|
- ✅ Updated template file name
|
|
- ✅ Removed deprecated options from template
|
|
- ✅ Fixed file paths (`/genesis/` instead of `/etc/besu/`)
|
|
|
|
---
|
|
|
|
## ✅ Current Status
|
|
|
|
**RPC-01 (VMID 2500)**: ✅ **FULLY OPERATIONAL**
|
|
|
|
- Service: Active and stable
|
|
- Network: Connected and syncing
|
|
- RPC: Accessible and responding
|
|
- All ports: Listening correctly
|
|
|
|
---
|
|
|
|
## 🔄 Next Steps
|
|
|
|
### Immediate
|
|
|
|
1. ✅ RPC-01 fixed and operational
|
|
2. ⏳ Verify RPC-02 (VMID 2501) status
|
|
3. ⏳ Verify RPC-03 (VMID 2502) status
|
|
|
|
### Short-term
|
|
|
|
1. Apply same fixes to RPC-02 and RPC-03 if needed
|
|
2. Verify all RPC nodes are in sync
|
|
3. Test load balancing across RPC nodes
|
|
|
|
---
|
|
|
|
## 📚 Related Documentation
|
|
|
|
- [RPC 2500 Troubleshooting Guide](/docs/09-troubleshooting/RPC_2500_TROUBLESHOOTING.md)
|
|
- [RPC 2500 Quick Fix](/docs/09-troubleshooting/RPC_2500_QUICK_FIX.md)
|
|
- [Deployment Readiness](../../03-deployment/DEPLOYMENT_READINESS.md)
|
|
|
|
---
|
|
|
|
**Resolution Date**: $(date)
|
|
**Status**: ✅ **RESOLVED**
|
|
|