Skip to content

EOS System Contracts v3.6.0 Release Notes

Latest
Compare
Choose a tag to compare
@ericpassmore ericpassmore released this 04 Sep 14:47
· 2 commits to release/3.6 since this release
f2a9b82

This 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

Version 3.6.0 of the EOS System Contracts requires the host function provided in CDT v4.1.0 and later and must be run using Spring v1.0.0 or later. In addition, all protocol features available in Spring v1.0.0 including SAVANNA must be activated prior to applying version 3.6.0 of the EOS System Contracts. See Switch to Savanna for a full guide on the requirements and the process of switching the Savanna consensus algorithm.

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 producer
  • finalizer_key must be in base64url format
  • proof_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 format
  • finalizer_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