Crate sc_consensus_slots
source ·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 type that implements
SlotWorker
for a type that implementsSimpleSlotWorker
. - 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 toslot_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 greater than 0 this method will apply an exponential backoff of at most
2^7 * slot_duration
, if no slots were skipped this method will returnNone.
- Calculate a slot duration lenience based on the number of missed slots from current to parent. If the number of skipped slots is greater than 0 this method will apply a linear backoff of at most
20 * slot_duration
, if no slots were skipped this method will returnNone.
- Start a new slot worker.
- Returns the duration until the next slot from now.
Type Aliases§
- The changes that need to applied to the storage to create the state for a block.