165 lines
6.4 KiB
Markdown
165 lines
6.4 KiB
Markdown
# 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**
|
|
|