Distributed Computing

, Volume 20, Issue 5, pp 305–321 | Cite as

Continuous consensus via common knowledge



This paper introduces the continuous consensus problem, in which a core M[k] of information is continuously maintained at all correct sites of the system. All local copies of the core must be identical at all times k, and every interesting event should eventually enter the core. The continuous consensus problem is studied in synchronous systems with crash and omission failures, assuming an upper bound of t on the number of failures in any given run of the system. A simple protocol for continuous consensus, called ConCon, is presented. This protocol is knowledge-based: The actions processes take depend explicitly on their knowledge, as well as on their knowledge of what other processes know about failures and about events that occurred in the system. A close connection between continuous consensus and knowledge is established by showing that in every continuous consensus protocol, the information in the core at any given time must be common knowledge. Based on the characterization of common knowledge by Moses and Tuttle, it is shown that ConCon is an optimum protocol for continuous consensus, maintaining the most up-to-date core possible at all times: For every pattern of failures and external inputs and each point in time, the core provided by ConCon contains the cores of all correct protocols for continuous consensus. Indeed, the ConCon protocol can be viewed as a simplification of the Moses and Tuttle construction for computing the common knowledge at a given point. Finally, a uniform version of continuous consensus is considered, in which all processes (faulty and nonfaulty) are guaranteed to maintain the same core at any given time. An algorithm for uniform continuous consensus is presented, and is also shown to be an optimum solution.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bernstein P.A., Hadzilacos V. and Goodman N. (1987). Concurrency Control and Recovery in Database Systems. Addison–Wesley, Reading Google Scholar
  2. 2.
    Lewis D. (1969). Convention: A Philosophical Study. Harvard University Press, Cambridge Google Scholar
  3. 3.
    Halpern J.Y. and Moses Y. (1990). Knowledge and common knowledge in a distributed environment. J. ACM 37(3): 549–587 MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Dwork C. and Moses Y. (1990). Knowledge and common knowledge in a Byzantine environment: crash failures. Inf. Comput. 88(2): 156–186 MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Moses Y. and Tuttle M.R. (1988). Programming simultaneous actions using common knowledge. Algorithmica 3: 121–169 MATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Fagin R., Halpern J.Y., Moses Y. and Vardi M.Y. (1995). Reasoning about Knowledge. MIT Press, Cambridge MATHGoogle Scholar
  7. 7.
    Berry G. and Gonthier G. (1992). The Esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Programm. 19: 87–152 MATHCrossRefGoogle Scholar
  8. 8.
    Halbwachs N. (1993). Synchronous Programming of Reactive Systems. Kluwer, Dordrecht MATHGoogle Scholar
  9. 9.
    Lamport L. (1998). The part-time parliament. ACM Trans. Comput. Syst. 16(2): 133–169 CrossRefGoogle Scholar
  10. 10.
    Coan B.A., Dolev D., Dwork C. and Stockmeyer L.J. (1989). The distributed firing squad problem. SIAM J. Comput. 18(5): 990–1012 MATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Coan, B.: A communication-efficient canonical form for fault-tolerant distributed protocols. In: Proc. 5th ACM Symp. on Principles of Distributed Computing, pp. 63–72 (1986)Google Scholar
  12. 12.
    Neiger G. and Tuttle M.R. (1993). Common knowledge and consistent simultaneous coordination. Distrib. Comput. 6(3): 181–192 MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  1. 1.Department of Electrical EngineeringTechnionHaifaIsrael

Personalised recommendations