Distributed Systems

Master's Programme: Computer Systems and Networks

Simple Distributed Blackboard

A program that runs on several machines, clients post to any server using a web browser, store all received data, propagate the newly received data: to all the other boards and in a peer-to-peer manner.

Source code and full description


Distributed Blackboard - Centralized communication version

Each post is sent to the leader which distributes it to the network. The leader should be able to handle correctly multiple posts from different nodes.

Source code and full description


Eventually Consistent Blackboard

All replicas eventually converge to the same value, a protocol for eventual consistency: writes are eventually applied in total order (same order on all replicas, lead to the same value, eventual consistency) and reads might not see most recent writes in total order.

Source code and full description


Byzantine Agreement

N vessels, each general controls one vessel, for each general (vessel): decide on a profile "honest" or "Byzantine", for honest generals decide on a vote "attack" or "retreat", start the Byzantine agreement algorithm on all generals, through a webpage interface. When the algorithm ends, the result and result vector should appear on each webpage (upon refresh): honest generals should agree on the same votes among them, it is not required any agreement for the Byzantine generals.

Source code and full description