Using Time Instead of Timeout for Fault-Tolerant Distributed Systems

ACM Transactions on Programming Languages and Systems | , pp. 254-280

The genesis of this paper was my realization that, in a multiprocess system with synchronized clocks, the absence of a message can carry information. I was fascinated by the idea that a process could communicating zillions of bits of information by not sending messages. The practical implementation of Byzantine generals algorithms described in [46] could be viewed as an application of this idea. I used the idea as something of a gimmick to justify the paper. The basic message of this paper should have been pretty obvious: the state machine approach, introduced in [27], allows us to turn any consensus algorithm into a general method for implementing distributed systems; the Byzantine generals algorithms of [46] were fault-tolerant consensus algorithms; hence, we had fault-tolerant implementations of arbitrary distributed systems. I published the paper because I had found few computer scientists who understood this.