- Étend le concept d’informatique personnelle centrée sur les fichiers au social computing, en décrivant une structure où tout le contenu créé par l’utilisateur lui appartient, plutôt qu’à une application
- Propose le concept d’un système de fichiers social décentralisé fondé sur le protocole AT, permettant l’interopérabilité des données entre applications
- Chaque utilisateur dispose de son propre « everything folder » ou repository, où les publications, likes et follows sont stockés sous forme de fichiers JSON (records)
- Grâce aux DID (Decentralized Identifier) et au schéma d’URI
at://, il est possible de conserver des liens identifiables de manière permanente même en cas de changement d’hébergement ou de handle
- Cette structure forme un écosystème social centré sur les données plutôt que sur les applications, permettant à chacun de créer de nouvelles apps fonctionnant sur les données existantes
Le paradigme des fichiers et son extension sociale
- À l’origine, les fichiers existent dans un espace contrôlé par l’utilisateur plutôt qu’à l’intérieur d’une app, et les apps ne servent qu’à lire et écrire ces fichiers
- Les formats de fichiers ouverts comme
.svg permettent à plusieurs apps de partager les mêmes données
- Selon le principe « le format de fichier est l’API », l’interopérabilité entre apps devient possible
- En appliquant cette idée aux apps sociales, des actions comme les publications, follows et likes peuvent elles aussi être traitées comme des fichiers
- Il existe un « everything folder » contenant toute l’activité en ligne de l’utilisateur
- Les apps reflètent les données de ce dossier, qui joue le rôle de source of truth unique
Le protocole AT et le système de fichiers social
- Le protocole AT est la technologie qui concrétise cette architecture ; Bluesky, Leaflet, Tangled, Semble et Wisp s’appuient déjà dessus
- Les apps ne possèdent pas les données des utilisateurs ; grâce à un stockage séparé des données au niveau des fichiers, de nouvelles apps peuvent réutiliser les données existantes
- L’ensemble des dossiers utilisateurs forme un système de fichiers social décentralisé
Structure des records et des collections
- Chaque publication est représentée par un fichier JSON (record), sans inclure les informations sur l’auteur ni les données dérivées comme le nombre de likes
- Exemple :
{ text: 'no', createdAt: '2008-09-15T17:25:00.000Z' }
- Les noms de fichiers sont générés à partir de clés de record basées sur des timestamps, afin d’éviter les collisions
- La structure des fichiers est définie par un schéma appelé lexicon, que chaque app peut concevoir pour ses propres besoins
- Exemples :
com.twitter.post, fm.last.scrobble, io.letterboxd.review
- Même pour un même concept, différentes apps peuvent utiliser des lexicons différents, les namespaces basés sur les domaines évitant les conflits
Validation et confiance
- Il n’existe pas de Lexicon Police — aucune app ne peut imposer ses données aux autres
- Les apps valident les données à la lecture (validate on read) et les ignorent si elles ne sont pas valides
- Lorsqu’un lexicon évolue, il est indispensable de préserver la rétrocompatibilité ; les changements cassants doivent être séparés dans un nouveau lexicon
- Les lexicons peuvent être publiés ouvertement, et la preuve de propriété du domaine peut être établie via le DNS
Liens et identité
- Comme les « likes » ou les « réponses » créés par les utilisateurs doivent référencer d’autres records, un système de liens permanents est nécessaire
- Après plusieurs tentatives, l’identité a été établie au moyen des DID (Decentralized Identifier)
- Un identifiant comme
did:plc:6wpkkitfdkgthatfvspcfmjo ne peut pas être modifié
- Chaque DID est résolu en un document contenant les informations actuelles d’hébergement, de handle et de clé publique
- Les URI
at:// combinent DID, collection et clé de record pour fournir des liens qui ne se cassent pas même en cas de changement d’hébergement
- Exemple :
at://did:plc:6wpkkitfdkgthatfvspcfmjo/com.twitter.post/34qye3wows2c5
Hyperliens JSON et représentation des relations
- Chaque « like », « repost » ou « réponse » adopte une structure de JSON avec hyperliens qui référence d’autres records
- Par exemple, le champ
parent référence l’URI at:// d’une autre publication
- Toutes les informations de l’interface utilisateur (auteur, texte, nombre de likes, etc.) peuvent être calculées à partir de ces liens entre fichiers
Repository et flux de données
- Le « everything folder » d’un utilisateur est appelé repository et est identifié par un DID
- À l’intérieur se trouvent plusieurs collections et records
- Un repository peut être hébergé n’importe où, et les liens restent valides même s’il est déplacé
- Les apps peuvent lire le repository comme un système de fichiers ou s’y abonner en temps réel via un flux (WebSocket)
- Chaque commit est vérifié au moyen d’un arbre de hachage signé (Merkle tree), ce qui empêche la falsification des données
- Les serveurs de relay se contentent de retransmettre les événements, la confiance venant de cette structure vérifiable
Exploration de l’Atmosphere et cas concrets
- pdsls.dev fonctionne comme un explorateur du système de fichiers social, en permettant de saisir un DID ou un handle
- Il est possible d’y consulter directement chaque collection et chaque record
- L’app d’exemple Sidetrail reflète en temps réel les changements des records utilisateur, montrant que les données résident dans le repository et non dans l’app
- La démo teal.fm Relay visualise l’historique d’écoute musicale (scrobble) en indexant les records
fm.teal.alpha.feed.play, sans API dédiée
- L’outil
lex-gql permet aussi d’exécuter des requêtes GraphQL fondées sur les Lexicons
- Dans Bluesky, les utilisateurs peuvent publier eux-mêmes des algorithmes de feed personnalisés
- Par exemple, le feed « For You » de
@spacecowboy17.bsky.social fonctionne indépendamment, ce qui permet à des tiers d’améliorer des fonctionnalités sur des données partagées
Conclusion
- Le système de fichiers social propose une architecture d’Internet centrée sur les données plutôt que sur les apps
- Les utilisateurs possèdent leur propre repository de données, et les apps fonctionnent de manière réactive au-dessus de celui-ci
- L’objectif n’est pas une « app qui fait tout », mais une « économie où tout devient possible »
Aucun commentaire pour le moment.