Kademlia/Mainline DHT node in Go.
Switch branches/tags
Clone or download
nictuku Merge pull request #62 from cenkalti/logging
introduce DebugLogger interface
Latest commit 46b1843 Nov 10, 2018


This is a golang Kademlia/Bittorrent DHT library that implements BEP 5.

It's typically used by a torrent client such as Taipei-Torrent, but it could also be used by a standalone DHT routers, or for other more creative purposes.

The DHT performs well and supports the most important features despite its simple API.

A multi-node deployment is able to process more than 5000 incoming packets per second in a single core of a very old AMD Athlon(tm) 64 Processor 3700+, when the optional rate-limiting feature is disabled.

Performance stats

By default, if left running for several days the DHT node should use approx. 30MB of RAM. This can be adjusted by changing MaxInfoHashes and MaxInfoHashPeers accordingly.

For usage details, see the online documentation at: http://godoc.org/github.com/nictuku/dht

A full example is at: find_infohash_and_wait

Build Status

Google+ Community

We have a Taipei-Torrent Google+ Community for the parent project Taipei Torrent and also this DHT library.