Milestone 4

It is now time bring it all together. Enable your WoT nodes to automatically register themselves with your Kademlia network. Once added, it becomes the responsibility of the Kademlia peer closest to the WoT node's ID to retrieve sensor data from the WoT node, and to ensure that there are k copies of that data across the network.

A WoT node should at any given time only be reporting to one Kademlia peer.

It is the responsibility of the Kademlia peers to store historical data.

It should be possible to navigate from the responsible Kademlia peer to its associated WoT node(s) for closer inspection.

The Kademlia peers should ensure that if a Kademlia peer responsible for communicating with an WoT node fails, some other peer (typically the closest to the WoT node's ID) takes over the responsibilities.

It should be possible to inspect the collected data at any of the Kademlia peers storing a copy. This can be done in, e.g., a plot or a table.

Milestone presentation

You should be able to launch a number of peers, and demonstrate how your WoT node connects to the Kademlia system, and stores its data there. 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, can be performed.

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

For this final milestone, you must also upload all your code along with instructions on how to get the system running. It would be very nice to have a single script that starts the system with a fair number of peers.

Bonus: Have your peers check each other for liveness, and update the buckets accordingly.