This is a fork of golang Kademlia/Bittorrent DHT library that implements BEP5.
To improve DHT's avalibility, we build each DHT node a http server to accept peer routing information. It can also cooperate with a ETCD cluster that act as an external coordinator.
A DHT node already has a UDP server to handle peer routing, and has a routing table to store its peers. A DHT node use krpc (which is introduced by BEP5) to interact with other DHT nodes.
The DHT performs well and supports the most important features despite its simple API. Besides, the security of a DHT overlay network can be significantly imporved.
A full example is at: find_infohash_and_wait