Sieve protocol: a modular approach to replicating non-deterministic applications in a Byzantine Fault-Tolerant system

   page       attach   
Antonio Tagliente  •  Davide Del Vecchio
abstract

This project considers a modular approach for dealing with non-determinism in replicated services, where some processes are subject to faults and arbitrary behaviour (so-called Byzantine faults), with an implementation of the protocol Sieve by IBM (Cachin et al., 2016). This approach doesn’t require any changes to the potentially non-deterministic application (and neither access to its internal data) for filtering out non-deterministic operations. It ensures that all correct processes produce the same outputs and that their internal states do not diverge. The chosen programming language is Python and the system is runnable locally.

outcomes