Skip to content

jnin-dev/Chord-P2P

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chord P2P

image

Compilation

Inside the main directory, type "make" to compile and "make clean" to clean up the compiled code in gen-py/

  • Ensure that your thrift installation is in the same directory as the project directory. Otherwise you can change the sys path insert at the top of the file for each python file
  • Ensure that you have the thrift compiler installed

Compute Nodes

  • In order to change the possible compute nodes, change the compute_nodes.txt in the src/ directory
  • To run:
$python3 <self_port> <supernode_ip> <supernode_port>

Supernode

  • To run:
$python3 <self_port>

Client

  • To run:
$python3 client.py <ip> <port>

How it works

Blank diagram(2)

The network is formed when compute nodes queries the supernode. The supernode will then give the compute an id based off of a $2^m$, m-bit keyspace. In this project, we use a $2^6$, 6-bit keyspace for up to 64 nodes. Blank diagram(3)

When the compute node enters the network, it recursively goes through the network to find the correct position to enter (in this case between 4 and 10) and places itself there. Afterwards, the finger tables are updated recursively to allow for cross network communication (See Chord P2P research paper). This allows for extremely scalable network especially for filesharing or CDNs. Blank diagram(4)

In this project, we utilize it for distributed machine learning and computing. By creating a network P2P network and indexing data, we allow efficient load-balancing and computation. The client will communicate with the supernode which will then choose a node to communicate with. This node will then receive the data and pass it along within the P2P network using forward/backward pointers or the finger table for cross network communication based off of the ID given. Once done, the supernode will query all nodes to aggregate the data and send back to the client.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors