Specifying and Analyzing the Kademlia Protocol in Maude [chapter]

Isabel Pita, Adrián Riesco
2015 Lecture Notes in Computer Science  
Kademlia is a peer-to-peer distributed hash table (DHT) currently used in the P2P eDonkey file sharing network. Kademlia offers a number of desirable features that result from the use of a notion of distance between objects based on the bitwise exclusive or of the n-bit quantities that represent both nodes and files. Nodes keep information about files close or near to them in the key space and the search algorithm is based on looking for the closest node (or almost closest node, if the
more » ... on is replicated) to the file key. The structure of the routing table defined in each peer guarantees that the lookup algorithm takes no longer than log n steps. This paper presents the distributed specification of the behavior of a P2P network that uses the Kademlia DHT in the formal specification language Maude. We use sockets to connect different Maude instances and create a P2P network where the Kademlia protocol can be used. This protocol is executed on top of a previously developed routing protocol that provides real-time by connecting Maude to an external Java server and allows peers to enter and leave the network dynamically. Then, we show how to represent this distributed system in one single term in order to simulate and analyze the system using Real-Time Maude.
doi:10.1007/978-3-319-25150-9_30 fatcat:giy3fbqxvffalkgsw7c3nsn3mu