EOS System Contracts v3.6.0-rc2 Release Notes
Pre-releaseThis release of EOS System Contracts introduced support for managing BLS keys and the associated finalizer policies.
Overview
In this release we introduce 4 new System Contract Actions, and 2 new Tables.
The current version of system contracts ties the role of the finalize to the top 21 producers. All producers are expected to be finalizers, and have registered finalizer keys. For more information on managing finalizer keys see Managing Finalizer Keys
Actions
regfinkey
Action to register a finalizer key by a registered producer. If this was registered before (and still exists) even by other block producers, the registration will fail. If this is the first registered finalizer key of the producer, it will also implicitly be marked active. A registered producer can have multiple registered finalizer keys.
Params
- finalizer_name - account registering
finalizer_key
, - finalizer_key - key to be registered. The key is in base64url format.
- proof_of_possession - a valid Proof of Possession signature to show the producer owns the private key of the finalizer_key. The signature is in base64url format.
PreRequisites
finalizer_name
must be a registered producerfinalizer_key
must be in base64url formatproof_of_possession
must be a valid of proof of possession signature- Authority of
finalizer_name
to register.linkauth
may be used to allow a lower authority to execute this action.
actfinkey
Action to activate a finalizer key. If the finalizer is currently an active block producer (in top 21), then immediately change Finalizer Policy. A finalizer may only have one active finalizer key. Activating a finalizer key implicitly deactivates the previously active finalizer key of that finalizer.
Params
- finalizer_name - account activating
finalizer_key
, - finalizer_key - key to be activated.
PreRequisites
finalizer_key
must be a registered finalizer key in base64url format- Authority of
finalizer_name
delfinkey
Action to delete a finalizer key. An active finalizer key may not be deleted unless it is the last registered finalizer key. If it is the last one, it will be deleted.
Params
- finalizer_name - account deleting
finalizer_key
, - finalizer_key - key to be deleted.
PreRequisites
finalizer_key
must be a registered finalizer key in base64url formatfinalizer_key
must not be active, unless it is the last registered finalizer key- Authority of
finalizer_name
switchtosvnn
Action to permanently transition to Savanna consensus. Create the first generation of finalizer policy and activate the policy by using set_finalizers
host function
PreRequisites
- Require the authority of the contract itself, typically
eosio
- A sufficient number of the top 21 block producers have registered a finalizer key
Tables
finalizers
List of finalizers and currently active BLS key.
finkeys
List of all BLS Public Keys registered by finalizer