Crate sc_consensus_slots[][src]

Expand description

Slots functionality for Substrate.

Some consensus algorithms have a concept of slots, which are intervals in time during which certain events can and/or must occur. This crate provides generic functionality for slots.

Structs

A simple default strategy for how to decide backing off authoring blocks if the number of unfinalized blocks grows too large.

A slot duration. Create with get_or_compute.

Information about a slot.

A unit type wrapper to express the proportion of a slot.

The result of SlotWorker::on_slot.

Enums

A header which has been checked

The strategy used to calculate the slot lenience used to increase the block proposal time when slots have been skipped with no blocks authored.

Constants

We keep at least this number of slots in database.

We prune slots when they reach this number.

Traits

Trait for providing the strategy for when to backoff block authoring.

Slot specific extension that the inherent data provider needs to implement.

A skeleton implementation for SlotWorker which tries to claim a slot at its beginning and tries to produce a block if successfully claimed, timing out if block production takes too long.

A worker that should be invoked at every new slot.

Functions

Checks if the header is an equivocation and returns the proof in that case.

Calculate the remaining duration for block proposal taking into account whether any slots have been skipped and applying the given lenience strategy. If max_block_proposal_slot_portion is not none this method guarantees that the returned duration must be lower or equal to slot_info.duration * max_block_proposal_slot_portion.

Calculate a slot duration lenience based on the number of missed slots from current to parent. If the number of skipped slots is greated than 0 this method will apply an exponential backoff of at most 2^7 * slot_duration, if no slots were skipped this method will return None.

Calculate a slot duration lenience based on the number of missed slots from current to parent. If the number of skipped slots is greated than 0 this method will apply a linear backoff of at most 20 * slot_duration, if no slots were skipped this method will return None.

Start a new slot worker.

Type Definitions

The changes that need to applied to the storage to create the state for a block.