Skip to content

An implementation of the Chord protocol as part of my Computer Systems 2 class

Notifications You must be signed in to change notification settings

alexcaldarone/chord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

The goal of this project is to implement the basic functionalities of the Chord protocol. More specifically, the code is aimed at simulating the evolution of a network that utilized the Chord protocol. By evolution we inted the behaviour of a network that starts out with zero nodes and that then is subject to node joins, node fails and resource lookups.

Usage

To clone the repository run:

git clone https://github.com/alexcaldarone/chord.git
cd chord
python setup.py install

To see the parameters of the simulation execute:

cd src
python simulate.py -h

Example of how to run a simulation for 1000 epochs, on a network of maximum size 2048 nodes, where at each epoch a node can join with probability 0.8 and a node can leave with probability 0.2:

python simulate.py 11 -n 1000 -j 0.8 -f 0.2

TO DO:

  • There is a error somewhere that is causing the bootstrap node to see the node joining the network as his successor when he shouldn't (also, it seems that when I reassing it nothing changes in the list of nodes?)
  • Improve exit procedure of nodes (make use of successors list) as it is causing searches to fail
  • Improve FT (just use node instead of dictionary? Do i need to refactor some code in Node class?)
  • Change node failure probability from fixed to variable (can assume several different values during the simulation)
  • Add tqdm to time simulations and add a printed summary at the end
  • add tests

About

An implementation of the Chord protocol as part of my Computer Systems 2 class

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages