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:
- If elected, propose IB
- Wait
- Wait
- If elected, propose EB
- 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:
- Positive rules, when we do need to create a block.
- 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.