Rotating Block Signers Usage
Configuring the service
Once the service is deployed in your environment, access the dashboard by clicking “Rotate Signers” under the SERVICES row or by expanding the ellipsis next to “Rotate Signers” and selecting the “view dashboard” option.
The service exposes four parameters in the lefthand navigation for optional configuration:
Target Number of Signers
The number of active signers in each rotation interval.
The minimum and default value is 4. The maximum is 16. - The system monitor node is always configured as a signer in an IBFT environment.
The length, specified in minutes, between signer rotations. The minimum and default value is 5 minutes.
The number of signers to be added and removed in each rotation interval.
As of this writing, the algorithm is hardcoded, by default, to “Oldest Out First” meaning that the longest tenured signers will be the first to be removed. Additional algorithms (e.g. randomization based) will be added in the future.
Activating the service
Once you have configured the available parameters, you can initialize the service by clicking the ACTIVATE button in the bottom left of the dashboard screen.
Restart or Delete
To perform additional administrative operations against the service (i.e. restart or delete), click the ACTIONS tab at the top of the screen.
As with all Kaleido services, the same in-console actions can be accomplished via the administrative API. Please refer to the api.kaleido.io for the full specification. Below are some sample calls for configuration, activation and status. Note that these are predicated on a deployed service instance and the corresponding service ID.
For example, to configure the service with 5 active signing nodes, a batch size of 2 and a rotation interval of 15 minutes:
Note that this call is a PATCH against the
/configuration route and that the arguments for
rotationSize are specified as integers. The algorithm must be enumerated and is supplied as a string.
For example, to activate your newly configured service:
Note that this call is a
POST against the
/activate route and requires an empty body to be supplied.
For example, to deactivate the service:
For example, to retrieve the IBFT consensus identity of the currently active signing nodes:
For example, to see the consensus identity of the signing nodes to be voted in during the next interval: