δ μ
 
  Seite auf Deutsch Site in English Page en Français
© 2005-2013 Denis Martin

P2P Lab Tutorial: A Kademlia-based DHT

For one of our lectures, we have short complementary lab assignments. One of them provides some hands-on experience with a Kademlia-based Distributed Hash Table (DHT). Kademlia [1] is a robust structured overlay network that provides lookups in O(log n) and is used in many P2P applications today.

This demo application visualizes some of Kademlia's interior for a simple DHT: its k-buckets, its datastore, its RPCs, etc. It provides a simple put/get/delete interface of a (key, value)-pair to the user. As Kademlia implementation, Entangled is used. In order to run the demo application, you will need the following packages:

Entangled and the twisted Qt4-reactor are part of the package provided here.

Download

p2plab.tar.gz (2011-07-18)

Manual

Simply launch it with the provided run.sh script. You may connect different instances of this application by filling in a remote IP address. For testing it locally, however, just click on Join Network to create a local node without connectivity, and then on Launch to create additional background nodes on the same host. They will be automatically connected to the node that can be inspected by the GUI.

Hints: A hex-number selected in the logging area is displayed as a red dot on the key-space ring. The graphics provide tooltips. Everything else should be self-explanatory if you have some basic knowledge about Kademlia.

Screenshot

References

[1] Petar Maymounkov and David Mazières. Kademlia: A peer-to-peer information system based on the XOR metric. In Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS), pages 53-65, March 2002.