Consensus
Consensus algorithms are used to agree on a decision inside a distributed system.
Regular consensus #
- Validity: any value decided is a value proposed
- Termination: every correct process eventually decides
- Integrity: no process decides twice
- Agreement: no two correct processes decide differently
Uses best-effort broadcast and perfect failure detector.
Uniform consensus #
Uniform Agreement: no two correct processes decide differently
All processes add their proposal value to proposalset and then use the same deterministic function to decide.
Total order broadcast #
Can be used to build consensus.
Total order property: let $m_1$ and $m_2$ be any two messages. Let $p_i$ and $p_j$ be any correct processes that deliver $m_1$ and $m_2$. If $p_i$ delivers $m_1$ before $m_2$ then and $p_j$ also delivers $m_1$ before $m_2$.