Tout doit fonctionner dans une page web.
Utiliser WebRTC pour la signalisation de présence et la communication pair à pair.
Le « block device »
Implémenter le principe de la « démonstration » afin que chaque « data store » fonctionne sur un appareil différent.
À ce stade on a déjà un PoC intéressant devant un auditoire : « sortez vos tél, allez sur cette page, modifiez les données, c’est vous tous qui les stockez, et chaque modif est vue de tous ».
Le système de fichiers
Implémenter une API équivalente au protocole iSCSI pour accéder au « block device ».
Traduire en asm-js un système de fichiers concurrent (comme par exemple GFS2), et le « brancher » sur l’API précédemment créée.
L’identité
Décider d’un protocole pour authentifier les utilisateurs.
- En inventer un.
- Reprendre un protocole existant.
- Reprendre une identité existante (Signal, BlockStack…).
Les crédits
Chercher le moyen de comptabiliser les droits de chaque utilisateur afin qu’on ne puisse pas tricher. Des pairs aléatoires témoignent de la mise à disposition de ressources par exemple.
Comment est « payé » le stockage d’une donnée dans le temps ?
- Dans le cas des données privées, le coût incombe entièrement à un seul utilisateur.
- Dans le cas de données partagées ou publiques, le coût devrait être réparti entre celui qui écrit la donnée et ceux qui y accèdent. On peut imaginer un tas d’équations avec à la clé une possible rémunération pour celui qui a écrit la donnée (contenu éditorial), voire pour ceux qui y accèdent (contenu publicitaire) !
La signalisation
Mettre en place un système de « signalisation » entre utilisateurs pour les données partagées. Fonctionnement par « publication / abonnement » sur une donnée partagée. Peut-être celui de Signal ? Auquel cas on peut aussi adopter leur protocole d’identité.