Asynchronous distributed consensus in the absence of faults #
This file presents an asynchronous distributed consensus algorithm and proves that it does achieve
consensus when there is no fault. Assume that there are n processes numbered 0, 1, ..., n - 1.
The algorithm works as follows:
(1) Process 0 receives its input value and sends that value to all processes (including itself).
All other processes ignore their inputs upon receiving them.
(2) Upon receiving the value sent by process 0 in the previpus step, every process (including
process 0) decides on that value.
Clearly, if there is no fault and all messages are eventually delivered, every process will
eventually decide on the same value, namely, the input value at process 0.
The contents of this file are not needed for proving the FLP impossibility result, but do show
that the notion of an Algorithm is not vacuous, in the sense that it allows a working
asynchronous consensus algorithm when there is no fault.
The local state of a process is trivial.
Equations
Instances For
alg satisfies the SafeConsensus property.
Whenever the message carrying the input value for process 0 is enabled in a state,
a message carrying that value is eventually sent to every process p by process 0.
Whenever a message carrying a value sent by process 0 is enabled at a process p,
p eventually decides on that value.