The Voltan software library for building distributed applications provides the support for (i) a processpair to act as single Voltan self-checking ‘fail-silent’ process; and (ii) connection management for Voltan process communication. A Voltan fail-silent process is written by the application developer as a single threaded program. The Voltan system replicates this program transparently. The active replication of applications engenders problems when dealing with non-deterministic calculations. This paper outlines the mechanisms deployed by Voltan to deal with non-determinism. The current implementation can achieve a level of performance that is suitable for many real-time applications. The work described in the paper provides a way of solving the challenging problem of constructing fault tolerant distributed computing systems capable of tolerating Byzantine failures, using general-purpose, low cost components. The present practice is to employ hardware based approaches to construc...
Dave Black, C. Low, Santosh K. Shrivastava