by Neil Williams
The colorful epidemiologist is a graphical representation of a small (400 node) peer-to-peer distributed system using a gossip protocol. I wrote the program in my free time while taking a distributed systems course as a way for me to visualize the dissemination of information through a gossip network.
The program is divided into two parts. The node-client is written in python, and the network status display (the epidemiologist) is written in C# for rapid development. The node-client's source code is included, but the epidemiologist's is not because it is a relatively simple application that is of little interest to the gossip network itself.
To make the network scale to larger numbers of nodes, I used a membership protocol described in Correctness of a gossip based membership protocol by Andre Allavena, Alan Demers, and John E. Hopcroft. The protocol works by keeping the addresses of a randomly shifting subset of the whole network on each client. In the case of this program, each node only knows about 50 of the 400 nodes.