Page 1 of 1

KAD Support & Discussion

Posted: Mon Sep 13, 2004 9:08 pm
by Stoepsel
Hi all,

starting with eMule 0.42b, the guys over at the Official eMule website have added Kademlia support to allow a serverless eD2K network, much like Overnet does.

This sticky will give you, the eMule/Kademlia beginner, some basic information on how to make this network work for you.

Kademlia - What it is
The official eMule development team has been working on a Kademlia version of eMule and have given it the version number 0.40 and above.

I could be lazy and just give you a link to an Acrobat PDF file that explains Kademlia here. But since it is rather heavy reading and only a slide-show type document, I'll try to put it into simple terms...

Kademlia is a routing algorithm designed to find computers on a network that are closest to you out of a list of computers you know about. The algorithm is fairly simple compared to other algorithms and is therefore ideal for programs that operate in a serverless network.

As of eMule 0.42b, Kademlia network support has been integrated into the official eMule, that is, all eMule will have support for the Kademlia routing algorithm and connect to the serverless eMule network.

The Kademlia network is great for finding more sources for files quicker. But it also comes with a small price to pay. Being connected to the Kademlia network does incur additional network overhead for processing Kademlia search queries. This overhead can be as much as 1 KB/s network bandwidth.

Kademlia - How to connect for the first time
With a serverless network like Kademlia, you'll need to 'bootstrap' it in order to connect to it the first time. What this means is, you'll need to tell eMule the IP address of one client in the Kademlia network. eMule will then try to connect to that client. From then on, it will build up a list of known Kademlia clients and use them to connect to the network.

The easiest way to bootstrap to another Kademlia client, is to do the following:
* Connect to the ed2k network.
* Queue up a few popular files and wait for eMule to find a sufficient number of sources.
* Change to the Kad screen.
* Press the Connect button.
* Activate the "From known clients" option. Then press the "Bootstrap" button.

You will usually only have to bootstrap once to the Kademlia network. From there on in, eMule stores a list of Kademlia contacts and will attempt to bootstrap using them. You should only ever need to bootstrap again, if your list of contacts is completely outdated, e.g. because you haven't connected to Kademlia in weeks.

Kademlia - Low-ID support
From version 44a on, the Kademlia network supports a Buddy for firewalled users. Buddies are other Kademlia clients who have status open and work as a relay for connections, that the firewalled user cannot manage.

Re: KAD Support & Discussion

Posted: Sat Sep 22, 2007 12:08 am
KAD is simply a serverless network that is supposed to give you some advangates over using eD2k alone, such as finding sources much more quickly, and faster overall downloading as well. KAD as a protocol is constantly being improved upon and is now considered to be at a mature state, perhaps also the future since it introduces two important new concepts... scalibility and independancy. I highly recommend connecting to the KAD network, but only if you have a fast internet connection, otherwise it will have negative affects on your downloads due to the high overhead. Don't worry much about not using KAD and finding sources, because eD2k's SX (Source Exchange) will eventually find all sources (though more slowly) exactly as KAD anyway.

Overhead is simply the bandwidth used to recieve/send non-data traffic, such as exchanging sources info, not the files you are actually downloading or uploading. eD2k servers store hash details for all files shared by the connected users clients, and eD2k clients will query those servers every period of time minutes to collect updated information about the sources. KAD on the other hand is a serverless network, meaning that all clients have to contact each other for finding sources, and the problem is that all the requests (not just yours) have to be routed through your PC. This means there is a lot of traffic used just to run the network excluding actual movie/music/whatever data being transferred. Some routers will even stop responding when they connect to the KAD network because of the heavy load.

When searching by KAD, there are no servers to keep track of clients and the files they share so it has to be done by each participating client in the network – in essence, every client is also a small server. Since every client is identified by a unique hash value, the idea of Kademlia is to associate a certain “responsibility” based on this hash. Each client in the Kademlia network works as a server for certain keywords or sources. The client's hash determines the specific keywords or sources.

Re: KAD Support & Discussion

Posted: Sun Oct 21, 2007 7:32 pm
by Stoepsel
You have 2 ways to go about this:

Option 1:
Connect to the ed2k network.
Start up a few downloads and wait until you are connected to sufficiently many sources (~50-100).
Then go to the Kad screen and activate the "From known clients" option.
Press the Bootstrap button.

Option 2:
Disconnect Kad.
Download 'nodes.dat' from
Replace the old 'nodes.dat' in \eMule\config - folder with the new one.
Go to the Kad screen and click 'Connect' or 'Bootstrap from known clients'.