p2pkademlia

Is there a clearly documented consensus in plain English that describes Maymounkov and Mazieres Kademlia system?


I am struggling with the original paper trying to understand seemingly contradicting paragraphs. One example is where in 2.2 the authors declare that for bit space 160 there will be 160 k buckets, then later go on to say that in fact the buckets are a smaller number covering wider bit ranges and organized by prefix binary trees. In that 2.4 section they talk about unbalanced trees that lead to interpretations like the following, https://stackoverflow.com/a/32187456/442396 , where it is not clear if the answer there does reflect MMs intentions. Is there a clearly documented consensus out there that explains how these ambiguities should be interpreted in plain English?


Solution

  • From David Mazières homepage [emphasis mine]:

    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 '02), pages 53-65, March 2002. paper. (Short pre-proceedings version often cited, but please read the full paper, instead.)

    Since the quoted links point to postscript here's the PDF of the full version

    The sections beyond 2.2 in the longer 13-page version contain many enhancements and refinements which are not part of the original proof.

    So the flat 160-bucket array can be seen as Kademlia 0.9 that was necessary for the basic proof while the tree-based version is Kademlia 1.0 which is necessary to implement those enhancements.

    Note that the tree-based and flat approach are nearly equivalent if one does not implement any of the things in the later sections such as the unbalanced tree handling or bucket splitting.

    Is there a clearly documented consensus out there that explains how these ambiguities should be interpreted in plain English?

    Not that I am aware, but from the above I would argue that later sections simply trump earlier ones.