The data is stored in a decentralised manner over the Kademlia distributed hash table.
The user is identified by their Key. The data stored on the nodes is encrypted using the end users key and only the end user can access this data.
There are two main components of this project:
1. The DHT node
2. Browser.
DHT Node
A node can be run any one that wants to provide storage space to the end user as part of the DHT network.Browser
The data browser provides an interface to the network with two simple calls:1. PUT - the put call sends the data to the DHT to be stored.
The put request has the following format
{ "user_public_key": "" // 32 byte hex encoded public key of the User, "record_key": "" // Key to be associated with the data being stored, "record_value": "" // Data to be stored in DHT, "signature": "" // 64 byte hash encoded Schnorr signature, }
2. GET - the get call decrypts the data using the end users key.
The put request has the following format
{ "user_public_key": "" // 32 byte hex encoded public key of the User, "record_key": "" // Key to be associated with the data that needs to be retrieved from the DHT, "signature": "" // 64 byte hash encoded Schnorr signature, }