Skip to content

Implemented the Chord protocol, as specified in the paper "Chord:A Scalable Peer-to-peer Lookup Service for Internet Applications" by Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan. Implemented Network join and routing as per the Chord paper.

Notifications You must be signed in to change notification settings

saifilmaknojia/Chord-Protocol_proj3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GROUP INFO

Jacob Ville 4540-7373
Shaifil Maknojia 7805-9466


Instructions:

  1. Extract the zip file

  2. Go to project3 folder

  3. mix escript.build

  4. ./project3 num_nodes num_requests

    num_nodes - integer
    num_requests - integer

    Eg:
    \DOS\Projects\project3
    \DOS\Projects\project3> mix escript.build
    \DOS\Projects\project3> ./project3 1200 15

    O/P:
    Average number of hops is 4.95


Bonus Instructions:

usage: ./project3 num_nodes num_requests failure_rate

failure_rate - integer (0 - 100)


What is working:

The chord protocol is working as specified in the paper. Nodes are created and initialized with a finger table referencing other nodes in the network. Once all nodes are initialized they begin to send messages to a random key that is mapped to a node. Each time the message is sent and received, the number of hops increases, and is recorded once it reaches its destination.

To verify output and observe traversal, uncomment line #33 in lib/node.exs


Largest Network:

The largest network used had 250,000 nodes. After that our systems exceeded the max number of simultaneous processes.

About

Implemented the Chord protocol, as specified in the paper "Chord:A Scalable Peer-to-peer Lookup Service for Internet Applications" by Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan. Implemented Network join and routing as per the Chord paper.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages