Chandra–Toueg consensus algorithm

The Chandra–Toueg consensus algorithm, published by Tushar Deepak Chandra and Sam Toueg in 1996, is an algorithm for solving consensus in a network of unreliable processes equipped with an eventually strong failure detector.

The actions carried out in each round are: Note that this algorithm is used to decide only on one value.

Furthermore, note that this algorithm assumes the existence of eventually strong failure detector (which are accessible and can be used to detect the crash of a node).

An eventually strong failure detector is one that never identifies some specific non-faulty (or correct) process as having failed, after some initial period of confusion, and, at the same time, eventually identifies all faulty processes as failed.

This allows p to collect enough acknowledgments to send decide(preference), causing every process to terminate.