API Reference for the Rotate Signers Service (1.0)

Download OpenAPI specification:Download

The Rotating Signers service can be configured to have different target signers count, rotation size, and rotation interval. It also allows for the rotation algorithm to be configurable, although currently the only supported algorithm is "oldest-first", meaning the signers that have been active the longest will be voted out in the next rotation. We welcome feedback on the need for other algorithms.

The Rotating Signers service can be activated, to start the timer on the rotator, and deactivated, to stop the rotations.

Client applications can query for the current set of signers that are active, and future set of signers that are expected to be rotated in.

rotatesigners

Authentication

bearer_token

Kaleido API for platform resources are authenticated using the Bearer token in the Authorization HTTP header. The token can either be the API Key created in the Kaleido user's account, or the JWT token issued to the user's browser as a cookie after logging in. The JWT token is set to expire in one hour.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

Configurations

Returns the latest service configuration

Authorizations:
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "targetSignerCount": 4,
  • "rotationInterval": 5,
  • "rotationSize": 1,
  • "rotationAlgorithm": "oldest-first"
}

Configure the Rotating Signers service for various runtime parameters

Authorizations:
path Parameters
service_id
required
string
Request Body schema: application/json
targetSignerCount
integer [ 4 .. 20 ]
Default: 4

The number of signers that should be active in each rotation

rotationInterval
integer >= 5
Default: 5

The length of period, in minutes, between signer rotations

rotationSize
integer
Default: 1

The number of signers from the active set that should be rotated out and the equal amount should be voted in

rotationAlgorithm
string
Value: "oldest-first"

The algorithm used to decide which signers to vote out and which signers to vote in during each rotation

Responses

Request samples

Content type
application/json
{
  • "targetSignerCount": 4,
  • "rotationInterval": 5,
  • "rotationSize": 1,
  • "rotationAlgorithm": "oldest-first"
}

Response samples

Content type
application/json
{
  • "targetSignerCount": 4,
  • "rotationInterval": 5,
  • "rotationSize": 1,
  • "rotationAlgorithm": "oldest-first"
}

Activation

Activates the rotator to start the rotations on the configured interval

Authorizations:
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

De-activates the rotator to stop the rotations

Authorizations:
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Status

Returns the current signers that are actively participating in the blockchain consensus

Authorizations:
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns the list of signers that are expected to be rotated in during future rotations

Authorizations:
path Parameters
service_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]