Files
proxmox/docs/archive/BESU_CONFIGURATION_ISSUE.md
defiQUG 9c37af10c0 Complete optional next steps: fix references and consolidate duplicates
- Fixed 104 broken references in 59 files
- Consolidated 40+ duplicate status files
- Archived duplicates to reports/archive/duplicates/
- Created scripts for reference fixing and consolidation
- Updated content inconsistency reports

All optional cleanup tasks complete.
2026-01-06 02:25:38 -08:00

218 lines
6.0 KiB
Markdown

# Critical Issue: Missing Besu Configuration Files
**Date**: $(date)
**Severity**: 🔴 **CRITICAL**
**Impact**: All Besu services failing in restart loop
---
## Issue Summary
All Besu services across all LXC containers are **failing** with the error:
```
Unable to read TOML configuration, file not found.
```
**Services Affected**:
- ✅ Validators (1000-1004): All failing
- ✅ Sentries (1500-1502): All failing
- ✅ RPC Nodes (2500-2502): All failing
- ⚠️ Sentry 1503: Service file missing
---
## Root Cause
The systemd services are configured to use:
- **Expected Path**: `/etc/besu/config-validator.toml` (validators)
- **Expected Path**: `/etc/besu/config-sentry.toml` (sentries)
- **Expected Path**: `/etc/besu/config-rpc.toml` (RPC nodes)
**Actual Status**: Only template files exist:
- `/etc/besu/config-validator.toml.template` ✅ (exists)
- `/etc/besu/config-validator.toml` ❌ (missing)
---
## Service Status
All services are in a **restart loop**:
| Node Type | VMID Range | Restart Count | Status |
|-----------|-----------|---------------|--------|
| Validators | 1000-1004 | 47-54 restarts | 🔴 Failing |
| Sentries | 1500-1502 | 47-53 restarts | 🔴 Failing |
| RPC Nodes | 2500-2502 | 45-52 restarts | 🔴 Failing |
**Error Pattern**: Service starts → fails immediately (config file not found) → systemd restarts → repeat
---
## Verification
### What's Missing
```bash
# Service expects:
/etc/besu/config-validator.toml ❌ NOT FOUND
# What exists:
/etc/besu/config-validator.toml.template ✅ EXISTS
```
### Service Configuration
The systemd service files reference:
```ini
ExecStart=/opt/besu/bin/besu \
--config-file=/etc/besu/config-validator.toml
```
---
## Solution Options
### Option 1: Copy Template to Config File (Quick Fix)
Copy the template files to the actual config files:
```bash
# For Validators
for vmid in 1000 1001 1002 1003 1004; do
pct exec $vmid -- cp /etc/besu/config-validator.toml.template /etc/besu/config-validator.toml
pct exec $vmid -- chown besu:besu /etc/besu/config-validator.toml
done
# For Sentries
for vmid in 1500 1501 1502 1503; do
pct exec $vmid -- cp /etc/besu/config-sentry.toml.template /etc/besu/config-sentry.toml 2>/dev/null || echo "Template not found for $vmid"
pct exec $vmid -- chown besu:besu /etc/besu/config-sentry.toml 2>/dev/null
done
# For RPC Nodes
for vmid in 2500 2501 2502; do
pct exec $vmid -- cp /etc/besu/config-rpc.toml.template /etc/besu/config-rpc.toml 2>/dev/null || echo "Template not found for $vmid"
pct exec $vmid -- chown besu:besu /etc/besu/config-rpc.toml 2>/dev/null
done
```
**Note**: This uses template configuration which may need customization.
### Option 2: Copy from Source Project (Recommended)
Copy actual configuration files from the source project:
```bash
# Assuming source project is at /opt/smom-dbis-138 on Proxmox host
# Validators
for vmid in 1000 1001 1002 1003 1004; do
# Determine validator number (1-5)
validator_num=$((vmid - 999))
# Copy from source project (adjust path as needed)
# Option A: If node-specific configs exist
pct push $vmid /opt/smom-dbis-138/config/nodes/validator-${validator_num}/config-validator.toml \
/etc/besu/config-validator.toml
# Option B: If single template exists
pct push $vmid /opt/smom-dbis-138/config/config-validator.toml \
/etc/besu/config-validator.toml
pct exec $vmid -- chown besu:besu /etc/besu/config-validator.toml
done
# Similar for sentries and RPC nodes
```
### Option 3: Run Configuration Deployment Script
Use the deployment scripts to properly copy and configure files:
```bash
cd /opt/smom-dbis-138-proxmox
# Check for config copy scripts
./scripts/deployment/copy-configs-to-containers.sh /opt/smom-dbis-138
```
---
## Additional Required Files
Even after fixing the main config files, ensure these files exist:
### Required for All Nodes
-`/etc/besu/genesis.json` - Network genesis block
-`/etc/besu/static-nodes.json` - Static peer list
-`/etc/besu/permissions-nodes.toml` - Node permissions
### Required for Validators
-`/keys/validators/validator-*/` - Validator signing keys
---
## Verification After Fix
After copying configuration files, verify:
```bash
# Check if config files exist
for vmid in 1000 1001 1002 1003 1004; do
echo "VMID $vmid:"
pct exec $vmid -- ls -la /etc/besu/config-validator.toml
done
# Restart services
for vmid in 1000 1001 1002 1003 1004; do
pct exec $vmid -- systemctl restart besu-validator.service
sleep 2
pct exec $vmid -- systemctl status besu-validator.service --no-pager | head -10
done
# Check logs for errors
for vmid in 1000 1001 1002 1003 1004; do
echo "=== VMID $vmid ==="
pct exec $vmid -- journalctl -u besu-validator.service --since "1 minute ago" --no-pager | tail -10
done
```
---
## Current Logs Summary
All services showing identical error pattern:
```
Dec 20 15:51:XX besu-validator-X besu-validator[XXXX]: Unable to read TOML configuration, file not found.
Dec 20 15:51:XX besu-validator-X besu-validator[XXXX]: To display full help:
Dec 20 15:51:XX besu-validator-X besu-validator[XXXX]: besu [COMMAND] --help
Dec 20 15:51:XX besu-validator-X systemd[1]: besu-validator.service: Deactivated successfully.
```
**Restart Counter**: Services have restarted 45-54 times each, indicating this has been failing for an extended period.
---
## Priority Actions
1. 🔴 **URGENT**: Copy configuration files to all containers
2. 🔴 **URGENT**: Restart services after fixing config files
3. ⚠️ **HIGH**: Verify all required files (genesis.json, static-nodes.json, etc.)
4. ⚠️ **HIGH**: Check service logs after restart to ensure proper startup
5. 📋 **MEDIUM**: Verify validator keys are in place (for validators only)
---
## Related Documentation
- [Files Copy Checklist](FILES_COPY_CHECKLIST.md)
- [Path Reference](/docs/11-references/PATHS_REFERENCE.md)
- [Current Deployment Status](CURRENT_DEPLOYMENT_STATUS.md)
---
**Issue Identified**: $(date)
**Status**: 🔴 **NEEDS IMMEDIATE ATTENTION**