Difference between revisions of "Kademlia"

From Organic Design wiki
(Created page with ''''Kademlia''' is a distributed hash table for decentralized peer to peer networks designed by Petar Maymounkov and David Mazières. It specifies the structure of ...')
 
(See also: tidy links)
Line 6: Line 6:
  
 
== See also ==
 
== See also ==
 +
*[[Wikipedia:Kademlia]]
 
*[[Random numbers, Encryption and Hashing]] ''- by Robert Uzgalis''
 
*[[Random numbers, Encryption and Hashing]] ''- by Robert Uzgalis''
 +
*[[Distributed hash table]]
 +
*[http://pdos.csail.mit.edu/~petar/pubs.html Petar Maymounkov's publications] ''- Kademlia's original author''
 
*[http://xlattice.sourceforge.net/components/protocol/kademlia/specs.html Kademlia specification]
 
*[http://xlattice.sourceforge.net/components/protocol/kademlia/specs.html Kademlia specification]
*[http://pdos.csail.mit.edu/~petar/pubs.html Petar Maymounkov's publications] ''- Kademlia's original author''
 
*[http://www.cspace.in CSpace] is a P2P application space written in Python which uses Kademlia
 
*[http://www.amule.org/wiki/index.php/Kademlia Kademlia] - they use a wiki too (a MediaWiki version 1.2!)
 
 
*[{{SERVER}}/files/f/f0/Kademlia.pdf Kademlia.pdf]
 
*[{{SERVER}}/files/f/f0/Kademlia.pdf Kademlia.pdf]
*[http://www.amule.org/wiki/index.php/AMule AMule] - confluence of the current range of p2p protocols eg eDonkey2K etc
 
 
*[http://www.infoanarchy.org/en/Kademlia infoanarchy article]
 
*[http://www.infoanarchy.org/en/Kademlia infoanarchy article]
 +
*[http://www.cspace.in CSpace] ''- a P2P application space written in Python which uses Kademlia''
 +
*[http://www.amule.org/wiki/index.php/Kademlia Kademlia] ''- A-mule's Kademlia article''

Revision as of 03:12, 8 June 2010

Kademlia is a distributed hash table for decentralized peer to peer networks designed by Petar Maymounkov and David Mazières. It specifies the structure of the network and how the exchange of information has to take place through network node lookups. Kademlia nodes communicate among themselves using the UDP. Over an existing network, a new virtual or overlay network is created in which each node is identified by a number or node ID. The node ID serves not only as a nodes identification, but the Kademlia algorithm uses it to locate values (usually file hashes or keywords). In fact, the node ID provides a direct map to file hashes.

When searching for some value, the algorithm explores the network in several steps. Each step approaches the key until the contacted node returns the value or no more closer nodes are found. Like many other DHTs, Kademlia contacts only [math]O(\log n)[/math] (see Big O notation) nodes during the search out of a total of [math]n[/math] nodes in the system.

Further advantages are found particularly in the decentralized structure, which clearly increases the resistance against a denial of service attack. Even if a whole set of nodes are flooded, this will have limited effect on network availability, which will recover itself by knitting the network around these "holes".

See also