This is an optional project for the Distributed System course at Politecnico di Milano. It is an OMNeT++ implementation of the Chord P2P protocol as discussed in its original paper, also including the protocols to stabilize the network when new peers join or leave.
I'm not gonna dive into the protocols details, I assume that if you are reading this README you perfectly know what the protocol does. In this section I wanted to only give an overview of how the various aspects of the protocol have been implemented.
IP addresses are randomly generated and each IP address is associated to a unique node, which has its unique identifier given by the SHA-1 hash of the IP.
The successor list has been treated as a vector of pairs: the key identifier and the node.
For the finger table we decided to use a deque, as we saw an similar implementation in the OverSim project and we really liked it.
This project is licensed under the Apache License 2.0.
- Original Chord paper
- Other Chord paper
- OverSim implementation
- Distributed Systems course P2P slides