Files
tendermint/spec/consensus
339304f87c PBTS: new minimal set of changes in consensus algorithm (#369)
* PBTS: second draft of protocol specification

* PBTS: updates in consensus algorithm v2

* PBTS: adding/fixing links in second draft

* PBTS: updated links for new algorithm specification

* PBTS: changes suggested by Josef

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* PBTS: minor fixes and additions to spec

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
2021-11-27 11:18:46 +01:00
..
2020-08-24 11:47:31 +02:00

order, parent
order parent
1
title order
Consensus 4

Consensus

Specification of the Tendermint consensus protocol.

Contents

  • Consensus Paper - Latex paper on arxiv describing the core Tendermint consensus state machine with proofs of safety and termination.
  • BFT Time - How the timestamp in a Tendermint block header is computed in a Byzantine Fault Tolerant manner
  • Creating Proposal - How a proposer creates a block proposal for consensus
  • Light Client Protocol - A protocol for light weight consensus verification and syncing to the latest state
  • Signing - Rules for cryptographic signatures produced by validators.
  • Write Ahead Log - Write ahead log used by the consensus state machine to recover from crashes.

The protocol used to gossip consensus messages between peers, which is critical for liveness, is described in the reactors section.

There is also a stale markdown description of the consensus state machine (TODO update this).