# QBFT Validator Recognition Issue **Date**: 2025-12-20 **Critical Issue**: Besu is not recognizing validators from genesis extraData ## Problem - ✅ Genesis extraData is correct (contains 5 validator addresses in QBFT format) - ✅ Validator keys are deployed correctly - ✅ Validator addresses match extraData - ✅ Network connectivity is good - ❌ **Besu returns empty validator set**: `qbft_getValidatorsByBlockNumber("latest")` returns `[]` - ❌ Validators are trying to sync instead of produce blocks - ❌ No QBFT consensus activity ## Key Finding **Query Result**: ```json { "jsonrpc": "2.0", "id": 1, "result": [] } ``` An empty validator set means Besu is **not extracting validator addresses from the genesis extraData**, even though: - Genesis block exists and has correct extraData - extraData contains 5 validator addresses in RLP-encoded QBFT format - All validator node addresses match addresses in extraData ## Possible Root Causes ### 1. Besu Not Parsing Genesis extraData - Besu may require explicit configuration to parse QBFT extraData - Or there's a bug/issue with extraData parsing in Besu 23.10.0 ### 2. Missing QBFT Configuration Option - There may be a required config option to enable QBFT validator detection - Some versions require explicit validator configuration even with genesis extraData ### 3. Genesis Block Initialization Issue - The genesis block exists, but Besu may not have processed the extraData correctly - This could be a database initialization issue ### 4. QBFT vs IBFT2 Confusion - Some Besu versions may use IBFT2 API instead of QBFT API - But IBFT2 API also returned "Method not enabled" ## Next Steps 1. **Check Besu 23.10.0 QBFT Documentation**: Verify if there are special requirements for QBFT validator recognition 2. **Test with a simpler genesis**: Try with a minimal QBFT genesis to isolate the issue 3. **Check Besu GitHub Issues**: Look for known issues with QBFT validator recognition in Besu 23.10.0 4. **Try explicit validator configuration**: Even though it should be auto-detected, try explicitly configuring validators ## Configuration Status - **Besu Version**: 23.10.0 - **QBFT Config in Genesis**: ✅ Present (`blockperiodseconds: 2`, `epochlength: 30000`) - **extraData Format**: ✅ Correct (RLP-encoded QBFT format) - **RPC Enabled**: ✅ With QBFT API - **Validator Keys**: ✅ Present and matching ## Impact **Blocks cannot be produced** because Besu doesn't recognize any validators. Without validators, QBFT consensus cannot start, and the network will remain at block 0 indefinitely.