# RPC-01 (VMID 2500) Troubleshooting Summary

**Date**: $(date)  
**Container**: besu-rpc-1  
**VMID**: 2500  
**IP**: 192.168.11.250

---

## 🛠️ Tools Created

### 1. Automated Troubleshooting Script ✅
**File**: `scripts/troubleshoot-rpc-2500.sh`

**What it does**:
- Checks container status
- Verifies network configuration
- Checks service status
- Validates configuration files
- Tests RPC endpoints
- Identifies common issues

**Usage**:
```bash
cd /home/intlc/projects/proxmox
./scripts/troubleshoot-rpc-2500.sh
```

### 2. Automated Fix Script ✅
**File**: `scripts/fix-rpc-2500.sh`

**What it does**:
- Creates missing config file
- Removes deprecated options
- Enables RPC endpoints
- Updates service file
- Starts service
- Tests RPC endpoint

**Usage**:
```bash
cd /home/intlc/projects/proxmox
./scripts/fix-rpc-2500.sh
```

---

## 🔍 Common Issues Identified

### Issue 1: Missing Configuration File
**Status**: ⚠️ Common  
**Error**: `Unable to read TOML configuration, file not found`

**Root Cause**: Service expects `/etc/besu/config-rpc.toml` but only template exists

**Fix**: Script creates config from template or creates minimal valid config

---

### Issue 2: Deprecated Configuration Options
**Status**: ⚠️ Common  
**Error**: `Unknown options in TOML configuration file`

**Deprecated Options** (removed):
- `log-destination`
- `max-remote-initiated-connections`
- `trie-logs-enabled`
- `accounts-enabled`
- `database-path`
- `rpc-http-host-allowlist`

**Fix**: Script automatically removes these options

---

### Issue 3: Service File Mismatch
**Status**: ⚠️ Possible  
**Error**: Service references wrong config file name

**Issue**: Service may reference `config-rpc-public.toml` instead of `config-rpc.toml`

**Fix**: Script updates service file to use correct config path

---

### Issue 4: RPC Not Enabled
**Status**: ⚠️ Possible  
**Error**: Service runs but RPC endpoint not accessible

**Fix**: Script ensures `rpc-http-enabled=true` and `rpc-ws-enabled=true`

---

## 📋 Configuration Fixes Applied

### Template Updates ✅

**File**: `smom-dbis-138-proxmox/templates/besu-configs/config-rpc.toml`
- ✅ Removed `log-destination`
- ✅ Removed `max-remote-initiated-connections`
- ✅ Removed `trie-logs-enabled`
- ✅ Removed `accounts-enabled`
- ✅ Removed `database-path`
- ✅ Removed `rpc-http-host-allowlist`

### Installation Script Updates ✅

**File**: `smom-dbis-138-proxmox/install/besu-rpc-install.sh`
- ✅ 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/`)

---

## 🚀 Quick Start

### Step 1: Run Diagnostic
```bash
cd /home/intlc/projects/proxmox
./scripts/troubleshoot-rpc-2500.sh
```

### Step 2: Apply Fix
```bash
./scripts/fix-rpc-2500.sh
```

### Step 3: Verify
```bash
# Check service
pct exec 2500 -- systemctl status besu-rpc.service

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

---

## 📚 Documentation

- [RPC 2500 Troubleshooting Guide](RPC_2500_TROUBLESHOOTING.md) - Complete guide
- [RPC 2500 Quick Fix](RPC_2500_QUICK_FIX.md) - Quick reference
- [Troubleshooting FAQ](TROUBLESHOOTING_FAQ.md) - General troubleshooting

---

## ✅ Expected Configuration

After fix, the service should have:

**Config File**: `/etc/besu/config-rpc.toml`
- ✅ RPC HTTP enabled on port 8545
- ✅ RPC WS enabled on port 8546
- ✅ Metrics enabled on port 9545
- ✅ P2P enabled on port 30303
- ✅ No deprecated options

**Service Status**: `active (running)`

**Ports Listening**:
- ✅ 8545 (HTTP RPC)
- ✅ 8546 (WebSocket RPC)
- ✅ 30303 (P2P)
- ✅ 9545 (Metrics)

**RPC Response**: Should return block number when queried

---

**Last Updated**: $(date)

