Kademlia: P2P Distributed Hash Table with Petar Maymounkov

Napster, Kazaa, and Bittorrent are peer-to-peer file sharing systems. In these P2P systems, nodes need to find each other. Users need to be able to search for files that exist across the system. P2P systems are decentralized, so these routing problems must be solved without a centralized service in the middle.

Without a centralized service that has all the information in one place, how can you solve these problems of node discovery and file lookup? This is the central question that Petar Maymounkov sought to answer with Kademlia.

Kademlia is a peer-to-peer distributed hash table. Kademlia implements the “put” and “get” operations of an efficiently scalable hash table without using any centralized service. Each node in the system maintains its own routing table. When a user queries the system (a “get” operation), that query is serviced by the nodes coordinating with each other to intelligently route the user to their target location. When a file is stored (a “put” operation), that update to the file system can propagate through the network in a decentralized, uncoordinated way.

Petar joins the show to give a brief history of P2P networks, why he created Kademlia, and what he is working on today.

Transcript

Transcript provided by We Edit Podcasts. Software Engineering Daily listeners can go to weeditpodcasts.com/sed to get 20% off the first two months of audio editing and transcription services. Thanks to We Edit Podcasts for partnering with SE Daily. Please click here to view this show’s transcript.

Sponsors

Citus is worry-free Postgres that is built to scale out. Made for SaaS and enterprises, Citus is an extension to Postgres that transforms Postgres into a distributed database. Whether you need to scale out a multi-tenant app—or are building real-time analytics dashboards that require sub-second responses—Citus makes it simple to shard Postgres. Go to citusdata.com/sedaily to learn more about how Citus can scale your Postgres database.

With Pluralsight’s learning platform, you can level up your skills in cutting edge tech like machine learning, cloud infrastructure, mobile development, DevOps and blockchain. Get access to three options: the 10-day free trial, 50% off your first month, and $50 off a yearly subscription at Pluralsight.com/sedaily.

ActiveState gives your engineers a way to bake security right in your languages’ runtime. You identify security vulnerabilities, out-of-date packages and restrictive licenses (e.g. GPL, LPGL). Get more info at activestate.com/sedaily

GoCD is a continuous delivery tool created by ThoughtWorks. It’s great to see the continued progress on GoCD with the new Kubernetes integrations–and you can check it out for yourself at gocd.org/sedaily.