TL;DR
[TODO: Quick summary of QBFT and when to use it]
Introduction
[TODO: Why consensus matters, QBFT in enterprise context]
What is QBFT?
Definition
[TODO: Quorum Byzantine Fault Tolerant - formal definition]
History & Evolution
[TODO: From IBFT to IBFT 2.0 to QBFT]
Why QBFT for Enterprise?
[TODO: Immediate finality, BFT guarantees, permissioned networks]
How QBFT Works
Byzantine Fault Tolerance Explained
[TODO: What is BFT, the Byzantine Generals Problem]
QBFT Consensus Process
[TODO: Step-by-step consensus rounds]
1. Pre-Prepare Phase
[TODO: Block proposal]
2. Prepare Phase
[TODO: Validators acknowledge proposal]
3. Commit Phase
[TODO: Validators commit to block]
4. Block Finalization
[TODO: Block added to chain]
Round Changes
[TODO: What happens when consensus fails in a round]
Validator Requirements
[TODO: N >= 3f + 1 formula, minimum validators]
Minimum validators for fault tolerance:
- 4 validators: Tolerates 1 faulty node
- 7 validators: Tolerates 2 faulty nodes
- 10 validators: Tolerates 3 faulty nodes
QBFT vs IBFT 2.0
Key Differences
[TODO: Technical improvements in QBFT]
| Feature | IBFT 2.0 | QBFT |
|---|---|---|
| Message format | Legacy | Optimized |
| Round change | Basic | Improved |
| Liveness | Good | Better |
| EEA Specification | Partial | Full compliance |
When to Use QBFT
[TODO: New deployments, EEA compliance]
When to Use IBFT 2.0
[TODO: Legacy compatibility, existing deployments]
Configuring QBFT in Besu
Genesis File Configuration
[TODO: Example genesis.json with QBFT config]
{
"config": {
"chainId": 1337,
"qbft": {
"blockperiodseconds": 5,
"epochlength": 30000,
"requesttimeoutseconds": 10
}
}
}Key Configuration Parameters
blockperiodseconds
[TODO: Block time configuration, tradeoffs]
epochlength
[TODO: Epoch length, validator vote counting]
requesttimeoutseconds
[TODO: Timeout configuration, network latency considerations]
Validator Configuration
[TODO: extraData encoding, validator list]
Validator Management
Adding Validators
[TODO: Propose and vote process]
# Propose adding a validator
curl -X POST --data '{"jsonrpc":"2.0","method":"qbft_proposeValidatorVote","params":["0x...", true],"id":1}' http://localhost:8545Removing Validators
[TODO: Vote to remove process]
Validator Voting Rules
[TODO: Majority requirements, vote persistence]
Network Topology
Minimum Network Size
[TODO: 4 validators minimum, recommendations]
Recommended Configurations
Development/Testing
[TODO: 4 validators, single machine possible]
Production
[TODO: 7+ validators, geographic distribution]
High Availability Setup
[TODO: Node redundancy, failover considerations]
Performance Tuning
Block Time Optimization
[TODO: Tradeoffs between speed and reliability]
Network Latency Considerations
[TODO: Geographic distribution, timeout tuning]
Transaction Throughput
[TODO: Expected TPS, optimization strategies]
Monitoring QBFT
Key Metrics
[TODO: Consensus metrics to monitor]
- Block proposal rate
- Round change frequency
- Validator participation
- Block finalization time
Prometheus Metrics
[TODO: Besu metrics for QBFT]
Alerting Recommendations
[TODO: What to alert on]
Troubleshooting
Common Issues
Consensus Not Progressing
[TODO: Diagnosis and resolution]
Frequent Round Changes
[TODO: Network issues, validator problems]
Validator Not Participating
[TODO: Configuration issues, connectivity]
Debug Logging
[TODO: Enable debug logs for QBFT]
Security Considerations
Validator Key Management
[TODO: Protecting validator keys]
Network Security
[TODO: TLS, firewall configuration]
DoS Protection
[TODO: Rate limiting, validator protection]
Migration from IBFT 2.0 to QBFT
Migration Path
[TODO: Step-by-step migration process]
Compatibility Considerations
[TODO: What changes, what stays same]
Best Practices
Validator Operations
[TODO: Key management, monitoring, updates]
Network Operations
[TODO: Upgrades, incident response]
Governance
[TODO: Validator addition/removal policies]
Real-World Examples
Financial Services Network
[TODO: Example QBFT configuration for finance]
Supply Chain Network
[TODO: Example configuration for supply chain]
Conclusion
[TODO: Summary, QBFT as production choice for Besu]
FAQ
How many validators do I need?
[TODO: Answer - minimum 4, recommend 7+]
What happens if a validator goes offline?
[TODO: Answer - network continues if within tolerance]
Can I change block time after deployment?
[TODO: Answer - requires network restart]
Is QBFT the same as PBFT?
[TODO: Answer - similar but optimized]
Ready to deploy a QBFT Besu network? ChainLaunch deploys production-ready Besu networks with QBFT consensus in minutes. Try our step-by-step guide.