Algorithm Description. The pseudocode of GWTS is in Algorithms 3-4. Gener- alized Wait Till Safe algorithm is an extension of the WTS algorithm based on the same batching approach proposed in [2]. Input values at proposers are batched until a new decision round starts. Each decision round follows the two- phases approach of WTS. Note that rounds are executed asynchronously at each proposer.2 Compared to WTS, an additional challenge to be faced is to prevent adversarial processes from indefinitely postponing the decision of correct processes. A uncareful design could allow 2The Byzantine reliable broadcast primitive used in [14] is designed to avoid what we need. possible confusion of messages in round based algorithms. That is exactly Byzantine proposers to continuously pretend to have decided, thus jumping to new rounds, and clogging the proposers with a continuous stream of new values. This would make acceptors to continuously nack proposals of correct processes. We solve this problem through the acceptors. Acceptors will hep a new proposal to be decided in round r 1 when, and if, in round (r 1) a proposal has been accepted by at least a (Byzantine) quorum of acceptors (i.e., safe r = r ). In order for this to work we make acceptors to reliably broadcast their ack messages, in this way the acceptance of proposals is made public. Any correct proposer can decide, in a round r, any proposal that has been correctly accepted in round r, even if it was not proposed by itself (provided that such decision preserves the Local Stability).
Appears in 3 contracts
Sources: Byzantine Generalized Lattice Agreement, Byzantine Generalized Lattice Agreement, Byzantine Generalized Lattice Agreement