A permissionless consensus algorithm that guarantees deterministic agreement and termination under a crash-stop system model.

Source Writeup

Sandglass proceeds in virtual rounds. Every round, nodes propose a value by broadcasting it. Values come with an associated priority.

  1. In the first round, each node proposes its initial value with priority initialized to 0.
  2. In subsequent rounds, nodes propose a value chosen among those received in the previous round.
    1. The priority of  depends on the number of consecutive rounds during which  was the only value received by the node proposing .
    2. Whenever a node receives a value other than v, it resets ’s priority back to 0. When proposing a value in a given round, node  selects the highest priority value received in the previous round; if multiple values have the same priority, then it selects randomly among them.
  3. A node can safely decide a value  after ‘s priority is sufficiently high. Termination follows from the non-zero probability that the necessary sequence of unanimous, consecutive rounds will actually eventually occur.