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.
Rotation Interval
The length, specified in minutes, between signer rotations. The minimum and default value is 5 minutes.
Rotation Size
The number of signers to be added and removed in each rotation interval.
Rotation Algorithm
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.
API usage
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.
/configuration
For example, to configure the service with 5 active signing nodes, a batch size of 2 and a rotation interval of 15 minutes:
curl -X PATCH -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/rotatesigners/{service_id}/configuration" -d '{"targetSignerCount":5, "rotationInterval":15, "rotationSize":2, "rotationAlgorithm":"oldest-first"}'
Note that this call is a PATCH against the /configuration
route and that the arguments for targetSignerCount
, rotationInterval
and rotationSize
are specified as integers. The algorithm must be enumerated and is supplied as a string.
/activate
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.
/deactivate
For example, to deactivate the service:
/currentSigners
For example, to retrieve the IBFT consensus identity of the currently active signing nodes:
/nextSigners
For example, to see the consensus identity of the signing nodes to be voted in during the next interval: