pub trait Epoch {
    type NextEpochDescriptor;
    type Slot: Ord + Copy;
    fn start_slot(&self) -> Self::Slot;
fn end_slot(&self) -> Self::Slot;
fn increment(&self, descriptor: Self::NextEpochDescriptor) -> Self; }
Expand description

Epoch data, distinguish whether it is genesis or not.

Once an epoch is created, it must have a known start_slot and end_slot, which cannot be changed. Consensus engine may modify any other data in the epoch, if needed.

Associated Types

Descriptor for the next epoch.

Type of the slot number.

Required methods

The starting slot of the epoch.

Produce the “end slot” of the epoch. This is NOT inclusive to the epoch, i.e. the slots covered by the epoch are self.start_slot() .. self.end_slot().

Increment the epoch data, using the next epoch descriptor.

Implementors