The Mojito DHT

Mojito is the name of LimeWire's Kademlia implementation. The Mojito DHT is a general purpose DHT and not specific to the Gnutella Network or the LimeWire client. The Mojito DHT is implemented as a stand-alone framework and can easily be integrated into other products.

See the example Mojito Main within the limewire project (org.limewire.mojito.Main) to run a local instance of the Mojito DHT.

In theory, it's easy to implement a Mojito compatible DHT. You must implement Kademlia and use the same Message Format as Mojito does. Kademlia is however a bit tricky and non-trivial to implement because there are many little details that are not written down and, or people haven't even thought about.

Mojito is entirely built on top of the original set of commands as specified in the Kademlia paper and you may take an existing implementation and modify it so that it can interact with Mojito. A good existing implementation candidate is Khashmir.

Ping Sequence A UML diagram for ping request

The Mojito Message Format The Mojito Message Format

Security Features Mojito DHT Security Features

Mojito Modes Mojito Modes

MojitoDHT Bootstrap Mojito Bootstrap Sequence

Values How to retrieve, define and publish Values


Kademlia: A Peer-to-peer Information System Based on the XOR Metric (PDF)

Wikipedia: Kademlia

Kademlia: A Design Specification (has some good ideas and points out a few things like the Sybil Attack)