diff --git a/docs/HowTo/Configure/Consensus-Protocols/IBFT.md b/docs/HowTo/Configure/Consensus-Protocols/IBFT.md index ca977be8422..343f02eda99 100644 --- a/docs/HowTo/Configure/Consensus-Protocols/IBFT.md +++ b/docs/HowTo/Configure/Consensus-Protocols/IBFT.md @@ -25,12 +25,21 @@ Existing validators propose and vote to [add or remove validators](Add-Validators.md#ibft-20). Adding or removing a validator requires a majority vote (greater than 50%) of validators. -## Minimum number of validators +## Validators + +### Minimum number of validators IBFT 2.0 requires four validators to be Byzantine fault tolerant. Byzantine fault tolerance is the ability for a blockchain network to function correctly and reach consensus despite nodes failing or propagating incorrect information to peers. +### Maximum number of validators + +As the number of validators increase, the message complexity increases, which can decrease performance. +In [network tests](https://wiki.hyperledger.org/display/BESU/Maximum+Validator+count+for+an+IBFT2+Network), IBFT 2.0 handles up to 30 validators with no loss of performance. + +Non-validator nodes don't affect performance and don't count towards the maximum limit. + ## Genesis file To use IBFT 2.0, Besu requires an IBFT 2.0 [genesis file](../Genesis-File.md). The genesis file defines properties