Switchover: Action to permanently transition to HotStuff consensus.
Require the authority of the contract itself
Set a flag altering the behavior of the update_elected_producers function
Establish a new finalizer set (introduced by the Instant Finality protocol feature)
Abort if an insufficient number of the top 21 block producers have registered a BLS finalizer key
Register Finalizer Key: Action to register a finalizer key.
Registered BPs Only: must be a registered block producer
Multiple Registered Finalizer Keys: A registered block producer can have multiple registered finalizer keys.
Proof of Possession: The finalizer key to register must be accompanied by a valid Proof of Possession signature.
Activate on First Key: If this is the first registered finalizer key of the block producer, it will also implicitly be marked active.
Reject Duplicate Finalizer Keys: If this finalizer key was registered before (and still exists) even by other block producers, reject the registration.
Activate Finalizer Key: Action to mark a finalizer key as active.
Registered Finalizer Keys Only: must be a registered finalizer key.
Registered BPs Only: account must be a registered block producer.
Only One Active Finalizer Key: A block producer may only have one active finalizer key.
Deactivates Previously Active Finalizer Key: Activating a finalizer key of a block producer implicitly deactivates the previously active finalizer key of that block producer.
Immediately Change Finalizer Policy: If the block producer is currently active (in top 21), then immediately call set_finalizers with the new policy after activating the finalizer key. Otherwise, wait until the periodic check that sets the proposers and finalizers.
Delete Finalizer Key: A registered block producer can delete a registered finalizer key that is not marked as active.
Prevent Deletion of Active Key: A registered block producer should not be able to delete a registered finalizer key that is marked as active unless it was the last registered finalizer key of that block producer.
Change Description
Add core contract actions to support Savanna. For details please see https://github.com/AntelopeIO/reference-contracts/issues/24.
Switchover: Action to permanently transition to HotStuff consensus.
Register Finalizer Key: Action to register a finalizer key.
Activate Finalizer Key: Action to mark a finalizer key as active.
set_finalizers
with the new policy after activating the finalizer key. Otherwise, wait until the periodic check that sets the proposers and finalizers.Delete Finalizer Key: A registered block producer can delete a registered finalizer key that is not marked as active.
Resolved https://github.com/AntelopeIO/reference-contracts/issues/24
Deployment Changes
API Changes
Documentation Additions