pub trait Config: Config {
    type EpochDuration: Get<u64>;
    type ExpectedBlockTime: Get<Self::Moment>;
    type EpochChangeTrigger: EpochChangeTrigger;
    type DisabledValidators: DisabledValidators;
    type KeyOwnerProof: Parameter + GetSessionNumber + GetValidatorCount;
    type KeyOwnerIdentification: Parameter;
    type KeyOwnerProofSystem: KeyOwnerProofSystem<(KeyTypeId, AuthorityId), Proof = Self::KeyOwnerProof, IdentificationTuple = Self::KeyOwnerIdentification>;
    type HandleEquivocation: HandleEquivocation<Self>;
    type WeightInfo: WeightInfo;
    type MaxAuthorities: Get<u32>;
}
Expand description

Configuration trait of this pallet.

Implement this type for a runtime in order to customize this pallet.

Required Associated Types§

source

type EpochDuration: Get<u64>

The amount of time, in slots, that each epoch should last. NOTE: Currently it is not possible to change the epoch duration after the chain has started. Attempting to do so will brick block production.

source

type ExpectedBlockTime: Get<Self::Moment>

The expected average block time at which BABE should be creating blocks. Since BABE is probabilistic it is not trivial to figure out what the expected average block time should be based on the slot duration and the security parameter c (where 1 - c represents the probability of a slot being empty).

source

type EpochChangeTrigger: EpochChangeTrigger

BABE requires some logic to be triggered on every block to query for whether an epoch has ended and to perform the transition to the next epoch.

Typically, the ExternalTrigger type should be used. An internal trigger should only be used when no other module is responsible for changing authority set.

source

type DisabledValidators: DisabledValidators

A way to check whether a given validator is disabled and should not be authoring blocks. Blocks authored by a disabled validator will lead to a panic as part of this module’s initialization.

source

type KeyOwnerProof: Parameter + GetSessionNumber + GetValidatorCount

The proof of key ownership, used for validating equivocation reports. The proof must include the session index and validator count of the session at which the equivocation occurred.

source

type KeyOwnerIdentification: Parameter

The identification of a key owner, used when reporting equivocations.

source

type KeyOwnerProofSystem: KeyOwnerProofSystem<(KeyTypeId, AuthorityId), Proof = Self::KeyOwnerProof, IdentificationTuple = Self::KeyOwnerIdentification>

A system for proving ownership of keys, i.e. that a given key was part of a validator set, needed for validating equivocation reports.

source

type HandleEquivocation: HandleEquivocation<Self>

The equivocation handling subsystem, defines methods to report an offence (after the equivocation has been validated) and for submitting a transaction to report an equivocation (from an offchain context). NOTE: when enabling equivocation handling (i.e. this type isn’t set to ()) you must use this pallet’s ValidateUnsigned in the runtime definition.

source

type WeightInfo: WeightInfo

source

type MaxAuthorities: Get<u32>

Max number of authorities allowed

Implementors§