github.com/attilabuti/bittorrentdht (go): Kademlia DHT K-bucket implementation as a binary tree. KBucket was ported from Tristan Slominski's k-bucket: github.com/tristanls/k-bucket  A Distributed Hash Table (DHT) is a decentralized distributed system that provides a lookup table similar to a hash table.  KBucket is an implementation of a storage mechanism for keys within a DHT. It stores Contact objects which represent locations and addresses of nodes in the decentralized distributed system. Contact objects are typically identified by a SHA-1 hash, however this restriction is lifted in this implementation. Additionally, node ids of different lengths can be compared.  This Kademlia DHT k-bucket implementation is meant to be as minimal as possible. It assumes that Contact objects consist only of Id. It is useful, and necessary, to attach other properties to a Contact. For example, one may want to attach ip and port properties, which allow an application to send IP traffic to the Contact. However, this information is extraneous and irrelevant to the operation of a k-bucket.  KBucket events:  Low-level implementation of the k-rpc protocol. Krpc was ported from Mathias Buus's k-rpc: https://github.com/mafintosh/k-rpc  Krpc events:
Keywords: bittorrent|dht|k-bucket|k-rpc|kademlia|kademlia-dht|kbucket|krpc