Scale IBFT consensus algorithm for broader participation
When using the Istanbul BFT consensus algorithm alongside either the Quorum or Pantheon node clients, the upper benchmark of actively participating signers is capped by Kaleido at 16 in order to ensure stability and performance of your blockchain network. If the number of active signers were to exceed the logical limit, the algorithm would become overstrained due to an untenable number of threads and render your chain unusable. By enforcing a signer limit, Kaleido safeguards against overwhelming traffic that would otherwise suffocate the environment.
However, as a consortia begins to scale and the number of participants in a network exceeds the upper bounds of permitted active signing nodes, there needs to be a mechanism to provide equitable participation in the consensus algorithm’s voting process. For example, imagine a Kaleido environment with 30 nodes all belonging to different organizations where all of whom desired to be signing nodes. Organizations participating in coopetition-style networks will undoubtedly want, and likely need, to play a part in the signing of blocks and validation of the chain. The rotate signers service exists to accommodate this mandate by allowing one or more nodes to be added and withdrawn from the active signing pool in configurable intervals.
As with all Kaleido services, the rotating signers service can be configured and operated via the administrative API. The service is dynamically reconfigurable after provisioning and can be deactivated and/or deleted based on the requirements of the network.
Enumerate the number of current active signers
This can be trimmed down to maximize efficiency of the algorithm while still maintaining the highest degree of byzantine fault tolerance. Take an environment with 9 signing nodes. The equation of IBFT states that the algorithm can sustain F faulty nodes, where F = (n-1)/3, with n representing the total number of active signing nodes in the environment. As a result, if all 9 nodes are participating as active signers, then the tolerated number of byzantine nodes is 2… (9-1)/3. However, this identical limit can still be achieved by truncating the active signers to 7… (7-1)/3. In doing so, the algorithm is optimized. Kaleido recommends a minimum of 4 active target signers in order to accommodate a potentially byzantine node. The service supports a maximum of 16 active target signers.
Enumerate the number of signers to be added and removed in each batch
Multiple signers can be batched into each rotation interval as a way to offer more consistent participation. Alternatively, the rotation pool can be set at the lowest threshold of 1 as a way to offer more prolonged periods of participation. The rotation algorithm is set to a default of "oldest out first", meaning that the longest tenured signers will be the first to be removed.
Set the rotation interval specified in minutes
Environmental administrators can configure this interval in accordance with agreed upon network mandates. The minimum interval is 5 minutes. Take an environment with 5 signing nodes, 4 active signers, a batch of 1 and an interval of 5 minutes. This means that each node would only spend 5 minutes during a 25 minute window as a non-singer.