What is Kademlia?
Kademlia[1] is a UDP-based peer-to-peer communications protocol, a variation on the DHT (distributed hash table). It is distinguished by its use of XOR as a metric [2].
Why Kademlia?
Some key features of Kademlia can be found in here[3].
What else!
What's the big fuss about Kademlia? Well, I wrote a simple file sharing application for demonstration. Actually, I wrote the file sharing application, the core Kademlia part is borrowed from Dr. Thomas Ambus's "Peer-to-Peer Routing for Persistent Storage"[4].
Simple implementation of Kademlia based file sharing
You can download the whole project file from here. If you only want to test just use the jar in the dist folder. else you can directly import it to netbeans as a project. (write "java -jar KademliaApplication.jar" in a text file and save it as "run.bat" :) and double click on the bat file)
You can start a network by your own, by pressing the Start Network button. You can join a network if you know the port and the IP of another machine where this application is running. local node's port is randomly generated.
If you want to upload a content, you should first start the server and then upload the file using Upload button.
using Search Content button, you can search a file(hmm.. you have to write the exact name of the file that you search). Then if the content is available, it will show up as a green text under the Search Content button. Then download and have fun.
References:
[1]http://jkadx.googlecode.com/files/nps6DF.pdf
[2]http://xlattice.sourceforge.net/components/protocol/kademlia/index.html
[3]http://code.google.com/p/jkadx/wiki/KademliaWhitePaper
[4]http://www.ambus.dk/plan-x/routing/
Kademlia[1] is a UDP-based peer-to-peer communications protocol, a variation on the DHT (distributed hash table). It is distinguished by its use of XOR as a metric [2].
Why Kademlia?
Some key features of Kademlia can be found in here[3].
What else!
What's the big fuss about Kademlia? Well, I wrote a simple file sharing application for demonstration. Actually, I wrote the file sharing application, the core Kademlia part is borrowed from Dr. Thomas Ambus's "Peer-to-Peer Routing for Persistent Storage"[4].
Simple implementation of Kademlia based file sharing
You can download the whole project file from here. If you only want to test just use the jar in the dist folder. else you can directly import it to netbeans as a project. (write "java -jar KademliaApplication.jar" in a text file and save it as "run.bat" :) and double click on the bat file)
You can start a network by your own, by pressing the Start Network button. You can join a network if you know the port and the IP of another machine where this application is running. local node's port is randomly generated.
If you want to upload a content, you should first start the server and then upload the file using Upload button.
using Search Content button, you can search a file(hmm.. you have to write the exact name of the file that you search). Then if the content is available, it will show up as a green text under the Search Content button. Then download and have fun.
References:
[1]http://jkadx.googlecode.com/files/nps6DF.pdf
[2]http://xlattice.sourceforge.net/components/protocol/kademlia/index.html
[3]http://code.google.com/p/jkadx/wiki/KademliaWhitePaper
[4]http://www.ambus.dk/plan-x/routing/
hello,
ReplyDeleteThis project is very good. Do you know how to monitor peer nodes in the network?? Can you please suggest me any project related to monitoring feed i.e hash values of the peer, and total no of peers active in network..
hello,
ReplyDeleteThis project is very good. Do you know how to monitor peer nodes in the network?? Can you please suggest me any project related to monitoring feed i.e hash values of the peer, and total no of peers active in network..