Crate pallet_grandpa

source ·
Expand description

GRANDPA Consensus module for runtime.

This manages the GRANDPA authority set ready for the native code. These authorities are only for GRANDPA finality, not for consensus overall.

In the future, it will also handle misbehavior reports, and on-chain finality notifications.

For full integration with GRANDPA, the GrandpaApi should be implemented. The necessary items are re-exported via the fg_primitives crate.

Re-exports

Modules

Structs

  • Generic equivocation handler. This type implements HandleEquivocation using existing subsystems that are part of frame (type bounds described below) and will dispatch to them directly, it’s only purpose is to wire all subsystems together.
  • A grandpa equivocation offence report.
  • A round number and set id which point on the time of an offence.
  • A stored pending change. Limit is the bound for next_authorities
  • An AuthorityList that is encoded with a version specifier. The encoding version is updated any time the AuthorityList type changes. This ensures that encodings of different versions of an AuthorityList are differentiable. Attempting to decode an authority list with an unknown version will fail.

Enums

  • Current state of the GRANDPA authority set. State transitions must happen in the same order of states defined below, e.g. Paused implies a prior PendingPause.

Traits

  • An interface for types that will be used as GRANDPA offences and must also implement the Offence trait. This trait provides a constructor that is provided all available data during processing of GRANDPA equivocations.
  • A trait with utility methods for handling equivocation reports in GRANDPA. The offence type is generic, and the trait provides , reporting an offence triggered by a valid equivocation report, and also for creating and submitting equivocation report extrinsics (useful only in offchain context).

Type Definitions