Self-stabilizing Byzantine Digital Clock Synchronization

We present a scheme that achieves self-stabilizing Byzantine digital clock synchronization assuming a "synchronous" system. This synchronicity is established by the assumption of a common "beat" delivered with a regularity in the order of the network message delay, thus enabling the nodes to execute in lock-step. The system can be subjected to severe transient failures with a permanent presence of Byzantine nodes. Our algorithm guarantees eventually synchronized digital clock counters, i.e. common increasing integer counters associated with each beat. We then show how to achieve regular clock synchronization, progressing at realtime rate and with high granularity, from the synchronized digital clock counters. There is one previous self-stabilizing Byzantine clock synchronization algorithm, which also converges in linear time (relying on an underlying pulse mechanism), but it requires to execute and terminate Byzantine agreement in between consecutive pulses. Such a scheme, although it does not assume a synchronous system, cannot be easily transformed to a synchronous system in which the pulses (beats) are in the order of the message delay time apart. The only other digital clock synchronization algorithm operating in a similar synchronous model converges in expected exponential time. Our algorithm converges (deterministically) in linear time.

[1]  Jennifer L. Welch,et al.  Wait-Free Clock Synchronization , 1993, PODC '93.

[2]  Danny Dolev,et al.  Self-Stabilizing Pulse Synchronization Inspired by Biological Pacemaker Networks , 2003, Self-Stabilizing Systems.

[3]  Jennifer L. Welch,et al.  Self-Stabilizing Clock Synchronization in the Presence of ByzantineFaults ( Preliminary Version ) Shlomi Dolevy , 1995 .

[4]  Danny Dolev,et al.  The Byzantine Generals Strike Again , 1981, J. Algorithms.

[5]  Shlomi Dolev,et al.  Possible and Impossible Self-Stabilizing Digital Clock Synchronization in General Graphs , 1997, Real-Time Systems.

[6]  Danny Dolev,et al.  Self-Stabilizing Byzantine Pulse Synchronization , 2006, ArXiv.

[7]  Barbara Liskov,et al.  Practical uses of synchronized clocks in distributed systems , 1991, PODC '91.

[8]  Sébastien Tixeuil,et al.  Self-Stabilizing Systems , 2003, Lecture Notes in Computer Science.

[9]  Danny Dolev,et al.  Self-stabilization of Byzantine Protocols , 2005, Self-Stabilizing Systems.

[10]  Ted Herman Phase Clocks for Transient Fault Repair , 2000, IEEE Trans. Parallel Distributed Syst..

[11]  Sam Toueg,et al.  Fast Distributed Agreement , 1987, SIAM J. Comput..

[12]  Danny Dolev,et al.  'Eventual' is earlier than 'immediate' , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[13]  Danny Dolev,et al.  Linear Time Byzantine Self-Stabilizing Clock Synchronization , 2003, OPODIS.

[14]  Marina Papatriantafilou,et al.  On Self-Stabilizing Wait-Free Clock Synchronization , 1997, Parallel Process. Lett..

[15]  Anish Arora,et al.  Maintaining Digital Clocks In Step , 1991, WDAG.

[16]  Mahyar R. Malekpour,et al.  Comments on the "Byzantine Self-Stabilizing Pulse Synchronization" Protocol: Counter-examples , 2006 .

[17]  Danny Dolev,et al.  Self-stabilizing byzantine agreement , 2006, PODC '06.