- 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.
218 lines
6.0 KiB
Markdown
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**
|
|
|