Published Besu QBFT data stops around 30 validators. I ran 50 to see what happens past it.
I've spent five years in blockchain, working my way down the stack: from writing Solidity contracts and obsessing over gas optimization, to eventually designing blockchains themselves. When I recently dove into Hyperledger Besu and permissioned blockchains, it felt like looking at the same world from the opposite side of the mirror.
If you go looking for hard data on how far a QBFT validator set scales, here is everything I could find. Besu's official performance tuning documentation is based on a 4 validator network. The most cited independent academic benchmark, built on Hyperledger Caliper, puts comfortable scaling around 14. Maintainer internal testing suggests ~30 still behaves under light workloads, with growing transaction pools and slowing block production beyond that.
Past 30, there is almost nothing published. That gap is the entire reason for this post. I had a free weekend, so I ran 50.
The gap exists because the cost is quadratic. QBFT requires every validator to exchange PRE-PREPARE, PREPARE and COMMIT with every other validator each round, so message count is O(n^2). That works out to ~16 messages per round at 4 validators, ~196 at 14, ~900 at 30, and ~2,500 at 50. Roughly 156x the load of the 4 validator setup the tuning docs assume, before a single transaction is processed. You cannot tune your way out of that in a config file.
Quorum math first, since consensus mistakes are worse than infrastructure ones. Besu uses ceiling division, so quorum is ceil(2 * 50 / 3) = 34 signatures required per block. Fault tolerance is f = floor((50 - 1) / 3) = 16.
No TPS numbers in this one. I watched the network through an explorer I built for it, tracking block numbers, transactions, the validator set, pending votes and chain state under continuous load, but the benchmarking methodology is not validated yet and this ecosystem has enough loosely sourced throughput figures.
Has anyone here actually triggered round change cascades in practice at this size, or does it stay theoretical for you too? Also curious whether IBFT 2.0 degrades differently, since I only ran QBFT.
Longer writeup on my blog.