# Configuration Files Fixed

**Date**: $(date)  
**Action**: Removed deprecated configuration options from all Besu config files

---

## Issue

All Besu services were failing with errors:
```
Unknown options in TOML configuration file: log-destination, max-remote-initiated-connections, trie-logs-enabled, accounts-enabled, database-path
```

These deprecated options caused services to exit immediately and restart in loops.

---

## Fix Applied

### Deprecated/Invalid Options Removed

The following deprecated and invalid options were removed from all configuration files:

1. **`log-destination`** - Removed (logging controlled by `logging` option)
2. **`max-remote-initiated-connections`** - Removed (deprecated in Besu v23.10.0)
3. **`trie-logs-enabled`** - Removed (deprecated)
4. **`accounts-enabled`** - Removed (deprecated)
5. **`database-path`** - Removed (uses `data-path` instead)
6. **`rpc-http-host-allowlist`** - Removed from sentry/RPC configs (deprecated)
7. **`rpc-tx-feecap="0x0"`** - Removed (invalid value - "0x0" cannot be converted to Wei)
8. **`fast-sync-min-peers`** - Removed (incompatible with FULL sync-mode)
9. **`tx-pool-*` options** - Removed (legacy transaction pool options incompatible with layered implementation: `tx-pool-max-size`, `tx-pool-price-bump`, `tx-pool-retention-hours`)
10. **Fixed `permissions-nodes.toml`** - Replaced placeholder IPs (`<node-1-ip>`, etc.) with actual validator IPs (192.168.11.100-104), removed entries for undeployed nodes, and fixed node IDs to exactly 128 hexadecimal characters
11. **Disabled account permissioning for validators** - Changed `permissions-accounts-config-file-enabled=false` since the permissions-accounts.toml file doesn't exist

### Files Fixed

#### Validators (1000-1004)
- ✅ Fixed `/etc/besu/config-validator.toml` (5 files)
- Removed: `log-destination`, `max-remote-initiated-connections`, `trie-logs-enabled`, `accounts-enabled`, `database-path`, `rpc-tx-feecap`, `fast-sync-min-peers`, `tx-pool-max-size`, `tx-pool-price-bump`

#### Sentries (1500-1503)
- ✅ Fixed `/etc/besu/config-sentry.toml` (4 files)
- Removed: `log-destination`, `max-remote-initiated-connections`, `trie-logs-enabled`, `accounts-enabled`, `database-path`, `rpc-http-host-allowlist`, `rpc-tx-feecap`, `fast-sync-min-peers`, `tx-pool-max-size`, `tx-pool-price-bump`, `tx-pool-retention-hours`

#### RPC Nodes (2500-2502)
- ✅ Fixed `/etc/besu/config-rpc-public.toml` (3 files)
- Removed: `log-destination`, `max-remote-initiated-connections`, `trie-logs-enabled`, `accounts-enabled`, `database-path`, `rpc-http-host-allowlist`, `rpc-tx-feecap`, `fast-sync-min-peers`, `tx-pool-max-size`, `tx-pool-price-bump`, `tx-pool-retention-hours`

---

## Method Used

Used `sed` to remove deprecated option lines from config files:

```bash
# Validators - remove deprecated/invalid/incompatible options
sed -i '/^log-destination=/d; /^max-remote-initiated-connections=/d; /^trie-logs-enabled=/d; /^accounts-enabled=/d; /^database-path=/d; /^rpc-tx-feecap=/d; /^fast-sync-min-peers=/d; /^tx-pool-/d' /etc/besu/config-validator.toml

# Sentries and RPC - remove deprecated/invalid/incompatible options
sed -i '/^log-destination=/d; /^max-remote-initiated-connections=/d; /^trie-logs-enabled=/d; /^accounts-enabled=/d; /^database-path=/d; /^rpc-http-host-allowlist=/d; /^rpc-tx-feecap=/d; /^fast-sync-min-peers=/d; /^tx-pool-/d' /etc/besu/config-sentry.toml
```

---

## Services Restarted

All services were restarted after fixing configuration files:

- ✅ Validators: 5/5 restarted
- ✅ Sentries: 4/4 restarted
- ✅ RPC Nodes: 3/3 restarted

---

## Expected Results

After this fix:
- ✅ Services should start without configuration errors
- ✅ No more "Unknown options" errors
- ✅ Services should stay running (no restart loops)
- ✅ Besu processes should remain active
- ✅ Block processing should begin once services are stable

---

## Verification

### Check for Configuration Errors

```bash
# Check logs for "Unknown options" errors (should be zero)
for vmid in 1000 1001 1002 1003 1004; do
    errors=$(pct exec $vmid -- journalctl -u besu-validator.service --since '1 minute ago' --no-pager 2>/dev/null | grep -i 'Unknown options' | wc -l)
    echo "VMID $vmid: $errors config errors"
done
```

### Check Service Status

```bash
# All services should show "active" or "activating" (not restarting)
for vmid in 1000 1001 1002 1003 1004 1500 1501 1502 1503 2500 2501 2502; do
    if [[ $vmid -lt 1500 ]]; then
        service="besu-validator"
    elif [[ $vmid -lt 2500 ]]; then
        service="besu-sentry"
    else
        service="besu-rpc"
    fi
    echo "VMID $vmid: $(pct exec $vmid -- systemctl is-active $service.service)"
done
```

### Check for Successful Startup

```bash
# Look for successful startup messages (not just errors)
for vmid in 1000 1001 1002; do
    echo "=== VMID $vmid ==="
    pct exec $vmid -- journalctl -u besu-validator.service --since '2 minutes ago' --no-pager 2>/dev/null | grep -vE 'systemd|Unknown options' | tail -15
done
```

---

## Next Steps

1. ✅ **Configuration Fixed** - Deprecated options removed
2. ✅ **Services Restarted** - All services restarted with fixed config
3. ⏳ **Monitor Services** - Verify services start successfully
4. ⏳ **Check for Errors** - Ensure no new errors appear
5. ⏳ **Verify Block Processing** - Check if blocks are being processed once services are stable

---

## Additional Fixes

### permissions-nodes.toml Fix

The `permissions-nodes.toml` file contained placeholder IP addresses like `<node-1-ip>`, `<node-2-ip>`, etc. These were replaced with actual validator IP addresses:

- `<node-1-ip>` → `192.168.11.100` (Validator 1000)
- `<node-2-ip>` → `192.168.11.101` (Validator 1001)
- `<node-3-ip>` → `192.168.11.102` (Validator 1002)
- `<node-4-ip>` → `192.168.11.103` (Validator 1003)
- `<node-5-ip>` → `192.168.11.104` (Validator 1004)

Entries with remaining placeholder IPs (for undeployed nodes) were removed to prevent configuration errors. These can be added back when those nodes are deployed.

## Notes

- The `data-path` option remains (this is correct and replaces `database-path`)
- Logging is controlled by the `logging` option (removed `log-destination`)
- Network settings remain unchanged
- All other valid options remain in config files
- Only validator nodes (1000-1004) are included in permissions-nodes.toml for now

---

**Fix Applied**: $(date)  
**Status**: ✅ **CONFIGURATION FILES FIXED - SERVICES RESTARTED**

