Milestone 3

Kademlia's purpose is storage, and this is the next task. You must extend your Kademlia system by implementing the operations STORE and FIND_VALUE. As always, these operations must be transformed into a RESTful API.

To ensure resilience, you should ensure that a value is stored across the k peers closest to its key in the network.

You should update your UI, so that key/values can be stored, found, and inspected.

Bonus: Implement the periodic republication and reclaiming of key/values (for testing purposes, make the periods configurable).

Milestone presentation

You should be able to launch a number of peers, and demonstrate that key/value pairs can be stored and retrieved. If you wish to demonstrate on your Raspberry Pi, I have monitor/keyboard/mouse/network/power available.

Requirements

All communication between peers must be RESTful. The individual peer shall to a Web browser present a simple page, where the peer’s state can be inspected, and where actions, such as searching for an id, or inserting a key/value, can be performed.

You must document your REST API, and bring it to the milestone meeting.

Bonus: Have your peers check each other for liveness, and update routing information accordingly.