[bittorrent] DHT - Clarifying the spec

Adrian Ulrich torrent at blinkenlights.ch
Sat Mar 3 09:52:10 EST 2007

> I can't seem to find that paragraph in either the kademlia paper or the
> bittorrent page :p Where is it?

Checkout the 2nd Kademlia paper:

> So will we take it that replies from ip/port combinations which return a
> different nodeid to the one that was expected should be silently ignored?

Yes, that was what i meant with 'drop'.

> So, that leaves me with the timeout values.

>From my implementation:

# Kademlia constants
use constant K_BUCKET_SIZE      => 8;        # Size of a single bucket
use constant K_BUCKET_RETURN    => 8;        # Return closest X nodes on searches
use constant K_QUERY_TIMEOUT    => 15;       # Timeout of queries
use constant K_MAX_FAILS        => 5;        # Kick node after X-Fails in a row
use constant K_ALPHA            => 3;        # How many nodes we shall contact per run
use constant K_REFRESH_AFTER    => 7*60;     # ForceRefresh a peer that has been silent for more than X seconds
use constant K_REFRESH_ANNOUNCE => 5*60;     # Check ANNOUNCE_LIST and RECREATE a Token
use constant K_STORE_KICKER     => 28*60;    # Store peers each X seconds (-> announce!)
use constant K_REANNOUNCE_INTERVAL => 30*60; # Kick ANNOUNCE_LIST entries older than...

As far as i can remember, K_QUERY_TIMEOUT was taken from mainline.

 RFC 1925:
   (11) Every old idea will be proposed again with a different name and
        a different presentation, regardless of whether it works.

More information about the BitTorrent mailing list