The rotate signers service is an inclusion and optimization service for environments running IBFT consensus. Kaleido caps the active signers limit at 16 to ensure the stability and performance of the algorithm, and as such this service allows for environments with more than 16 signing nodes to achieve equitable participation in the voting and block signing processes. For environments with 16 or fewer signing nodes, the active signer count can be lowered to optimize the algorithm’s threads while still maintaining maximum byzantine fault tolerance.
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 consortium 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.
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.