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§

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§

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 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 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 greater 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.
  • 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.