The paper addresses the problem of broadcasting messages in a reliable manner within a practical asynchronous system where processes and channels may crash and recover. In this crash-recovery model, we present meaningful specifications of reliable broadcast and we describe algorithms that implement those specifications. Our approach is modular and incremental. It is modular in the sense that we give the properties of reliable broadcast separately, and then consider their composition. It is incremental in the sense that we show how to automatically transform any reliable broadcast algorithm that implements a given specification into one that implements a stronger specification. In particular we show how to reuse, in a crash-recovery model, reliable broadcast algorithms that were initially designed in a simpler crash-stop model.
['Romain Boichat', 'Rachid Guerraoui']
Reliable broadcast in the crash-recovery model