Implement the Birman-Schiper-Stephenson algorithm for causal ordering of broadcast messages with Java/RMI. The implemented program should be truly distributed in that the it can be demonstrated to run across multiple physical machines.
Implement Peterson’s algorithm for election in a unidirectional ring with Java/RMI. The implemented program should be truly distributed in that it can be demonstrated to run across multiple physical machines.
Implement the randomized algorithm for Byzantine Agreement in synchronous and asynchronous systems with a completely connected network (Algorithm 5.11 in the lecture notes)