Everything must work in a web page.
Use WebRTC for presence signaling and peer-to-peer communication.
The block device
Implement the principle of “demonstration” so that each “data store” works on a different device.
At this point we already have an interesting PoC in front of an audience: “take out your tel, go to this page, modify the data, it is you who store them, and every modification is seen by all”.
The file system
Implement an API equivalent to the iSCSI protocol to access the block device.
Translate asm-js a competing file system (like GFS2 for example), and plug it into the previously created API.
The identity
Decide on a protocol to authenticate users.
- To invent one.
- Reuse an existing protocol.
- Reuse an existing identity (Signal, BlockStack …).
The credits
Look for ways to count the rights of each user so that we can not cheat. Random peers testify to the availability of resources for example.
How is the storage of data in time paid for?
In the case of private data, the cost is entirely the responsibility of a single user.
In the case of shared or public data, the cost should be divided between the person who writes the data and those who access it. One can imagine a lot of equations with the key a possible remuneration for the one who wrote the data (editorial content), even for those who access it (advertising content)!
Signaling
Set up a system of “signaling” between users for the shared data. Operation by “publisher / subscriber” on a shared data. Maybe that of Signal? In which case we can also adopt their identity protocol.