See project at github acm wiki
- A DHT can be viewed as a dictionary service distributed over a network: it provides access to a common shared key->value data-store, distributed over participating nodes with great performance and scalability.
- From a user perspective, a DHT essentially provides a map interface, with two main operations:
put(key, value)
andget(key)
. Get will retrieve values stored at a certain key while put (often called announce) will store a value on the network. Note that many values can be stored under the same key. - There are many algorithms to implement dht, where Kademlia DHT algorithm requires to contact only O(log(N)) nodes for a get operation, N being the number of nodes in the network. This property makes DHTs very scalable as demonstrated.
More info in Wiki:DHT
- Use go-lang to implement a DHT with basic functions
- Use this DHT to implement an easy application
- 70% - DHT tests
- 20% - Applications with stable network
- 10% - Bonus
- Learn Go
- DHT models
- Related project framework