Introduction to Consensus
data-intensive ch. 8, 9 db internals ch. 8 https://decentralizedthoughts.github.io/2019-06-27-defining-consensus/
- definition
- relation to consistency: consensus can be a way to implement linearizability in a system
- different types of consensus based on their fault tolerance
Atomic broadcast
- definition
- it's the same problem as consensus but looked from a different angle
this relation is well covered in db internals book and in the tendermint thesis
Safety and liveness properties
here or somewhere else, explain how it maps to other classification of properties, eg.: agreement, integrity, validity, termination termination = fault-tolerance
streamlet
https://decentralizedthoughts.github.io/2020-05-14-streamlet/ https://eprint.iacr.org/2020/088 http://elaineshi.com/docs/blockchain-book.pdf chapter 7
this is a "textbook" protocol, good for pedagogical value so it's an obvious candidate to introduce some topics NOTE: this is a blockchain protocol and it's permissioned, so it kind of jumps ahead in the topics as currently organized in the book. nevertheless it seems like a better approach to start with this as the first consensus example before moving into classical stuff like paxos or raft.
[CODE SAMPLES HERE]