====== Kademlia ====== [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] **Kademlia** is a [[dido:public:ra:xapend:xapend.a_glossary:d:dht]] for decentralized [[dido:public:ra:xapend:xapend.a_glossary:p:p2p]] computer networks designed by Petar Maymounkov and David Mazières in 2002. It specifies the structure of the network and the exchange of information through node lookups. **Kademlia** nodes communicate among themselves using [[dido:public:ra:xapend:xapend.a_glossary:u:udp]]. A virtual or overlay network is formed by the participant nodes. Each node is identified by a number or node ID. The node ID serves not only as identification, but the **Kademlia** algorithm uses the node ID to locate values (usually file hashes or keywords). In fact, the node ID provides a direct map to file hashes and that node stores information on where to obtain the file or resource. When searching for some value, the algorithm needs to know the associated key and explores the network in several steps. Each step will find nodes that are closer to the key until the contacted node returns the value, or no closer nodes are found. This is very efficient: like many other DHTs, **Kademlia** contacts only O(\log(n)) nodes during the search out of a total of n nodes in the system. Further advantages are found particularly in the decentralized structure, which increases the resistance against a [[dido:public:ra:xapend:xapend.a_glossary:d:ddos]] attack. Even if a whole set of nodes is flooded, this will have limited effect on network availability, since the network will recover itself by knitting the network around these "holes". Source: [[https://en.wikipedia.org/wiki/Kademlia ]] /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~