Files
proxmox/docs/09-troubleshooting/QBFT_TROUBLESHOOTING.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

106 lines
3.7 KiB
Markdown

# QBFT Consensus Troubleshooting
**Last Updated:** 2026-01-31
**Document Version:** 1.0
**Status:** Active Documentation
---
**Date**: 2025-12-20
**Issue**: Blocks not being produced despite validators being connected
## Current Status
### ✅ What's Working
- All validator keys deployed correctly
- Validator addresses match genesis extraData
- Network connectivity is good (10 peers connected)
- Services are running
- Genesis extraData is correct (5 validator addresses in QBFT format)
- QBFT configuration present in genesis (`blockperiodseconds: 2`, `epochlength: 30000`)
- RPC now enabled on validators (with QBFT API)
### ❌ What's Not Working
- **No blocks being produced** (still at block 0)
- **No QBFT consensus activity** in logs
- Validators are looking for "sync targets" instead of producing blocks
- No QBFT-specific log messages (no "proposing block", "QBFT consensus", etc.)
## Root Cause Analysis
The critical observation: **Validators are trying to sync from peers instead of producing blocks**.
In QBFT:
- Validators should **produce blocks** (not sync from others)
- Non-validators sync from validators
- If validators are looking for sync targets, they don't recognize themselves as validators
## Configuration Verified
### Genesis Configuration ✅
```json
{
"config": {
"qbft": {
"blockperiodseconds": 2,
"epochlength": 30000,
"requesttimeoutseconds": 10
}
},
"extraData": "0xf88fa00000000000000000000000000000000000000000000000000000000000000000f869941c25c54bf177ecf9365445706d8b9209e8f1c39b94c4c1aeeb5ab86c6179fc98220b51844b749354469422f37f6faaa353e652a0840f485e71a7e5a8937394573ff6d00d2bdc0d9c0c08615dc052db75f825749411563e26a70ed3605b80a03081be52aca9e0f141c080c0"
}
```
Contains 5 validator addresses:
1. `0x1c25c54bf177ecf9365445706d8b9209e8f1c39b`
2. `0xc4c1aeeb5ab86c6179fc98220b51844b74935446`
3. `0x22f37f6faaa353e652a0840f485e71a7e5a89373`
4. `0x573ff6d00d2bdc0d9c0c08615dc052db75f82574`
5. `0x11563e26a70ed3605b80a03081be52aca9e0f141`
### Validator Configuration ✅
- `miner-enabled=false` (correct for QBFT)
- `sync-mode="FULL"` (correct)
- Validator keys present at `/keys/validators/validator-*/`
- Node key at `/data/besu/key` matches validator key
- RPC enabled with QBFT API
## Possible Issues
### 1. Besu Not Recognizing QBFT Consensus
- **Symptom**: No QBFT log messages, trying to sync instead of produce
- **Possible cause**: Besu may not be detecting QBFT from genesis
- **Check**: Look for consensus engine initialization in logs
### 2. Validator Address Mismatch
- **Status**: ✅ Verified - addresses match
- All validator addresses in logs match extraData
### 3. Missing Validator Key Configuration
- **Status**: ⚠️ Unknown
- Besu should auto-detect validators from genesis extraData
- But config file has no explicit validator key path
### 4. Network Synchronization Issue
- **Status**: ✅ Verified - peers connected
- All validators can see each other (10 peers each)
## Next Steps
1. **Check QBFT Validator Set**: Query `qbft_getValidatorsByBlockNumber` via RPC to see if validators are recognized
2. **Check Consensus Engine**: Verify Besu is actually using QBFT consensus engine
3. **Review Besu Documentation**: Check if there's a required configuration option for QBFT validators
4. **Check Logs for Errors**: Look for any silent failures in consensus initialization
## Applied Fixes
1. ✅ Enabled RPC on validators with QBFT API
2. ✅ Verified all validator keys and addresses
3. ✅ Confirmed genesis extraData is correct
4. ✅ Verified network connectivity
## Status
**Still investigating** - Validators are connected but not producing blocks. The lack of QBFT consensus activity in logs suggests Besu may not be recognizing this as a QBFT network or the nodes as validators.