-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintended-use.tex
More file actions
8 lines (5 loc) · 1.8 KB
/
intended-use.tex
File metadata and controls
8 lines (5 loc) · 1.8 KB
1
2
3
4
5
6
7
8
Before the design can be considered, the expected use of the network must be examined. Although the network is for the storage of data, this data is not intended to be in the form of large files, rather, it is expected that services can use the network to store their state. A concrete example of such a service could be a social network, where users can associate with each other, update their profile and make posts. Upon performing actions, the user would send an update to each user they associate with, which they would later receive and act on accordingly.
The aim of the protocol is to write the rules of internodal communication within the network. The protocol should therefore define how a node can connect to the network, discover other nodes, the process of transferring data between nodes and the logical topology of the data stored.
The goal of the network is to allow messages to be sent and received later by the intended recipient. This should be done in a way that makes the message highly available, as any services will desire guaranteed, predictable availability.
The API should provide an interface with the network, abstracting the details of the actual insertion/retrieval away from the application. Insertion of a message happens when the message will have some function applied to it and be distributed across the network to make it highly available, such that the function makes the message unreadable to anyone that is not a recipient. To retrieve a message for a particular user, all data in the network can have the inverse function applied to it to receive messages intended for them. %\todo[inline]{Need to add sequence diagram}
In reality, this function is likely to be a form of asymmetric cryptography operating on the public key of the recipient and the inverse an operation of the recipient's private key.