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.

Rotating Signers on Environment Dashboard

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.

Activate Rotating Signers

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.

Additional actions

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:

curl -X POST -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/rotatesigners/{service_id}/activate" -d '{}'

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:

curl -X POST -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/rotatesigners/{service_id}/deactivate" -d '{}'

/currentSigners

For example, to retrieve the IBFT consensus identity of the currently active signing nodes:

curl -X GET -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/rotatesigners/{service_id}/currentSigners" | jq

/nextSigners

For example, to see the consensus identity of the signing nodes to be voted in during the next interval:

curl -X GET -H "$HDR_AUTH" -H "$HDR_CT" "$APIURL/rotatesigners/{service_id}/nextSigners" | jq