Short-Pipeline Leios

This document is a specification of Short-Pipeline Leios, usually abbreviated as Short Leios. On a high level, the pipeline looks like this:

  1. If elected, propose IB
  2. Wait
  3. Wait
  4. If elected, propose EB
  5. If elected, vote If elected, propose RB

Upkeep

A node that never produces a block even though it could is not supposed to be an honest node, and we prevent that by tracking whether a node has checked if it can make a block in a particular slot. LeiosState contains a set of SlotUpkeep and we ensure that this set contains all elements before we can advance to the next slot, resetting this field to the empty set.

Block/Vote production rules

We now define the rules for block production given by the relation _↝_. These are split in two:

  1. Positive rules, when we do need to create a block.
  2. Negative rules, when we cannot create a block.

The purpose of the negative rules is to properly adjust the upkeep if we cannot make a block.

Note that _↝_, starting with an empty upkeep can always make exactly three steps corresponding to the three types of Leios specific blocks.

Positive rules

Negative rules

Uniform short-pipeline

Initialization

Network and Ledger

Base chain

Note: Submitted data to the base chain is only taken into account if the party submitting is the block producer on the base chain for the given slot

Protocol rules