@Chiara07 a commencé à travailler, dans une version de développement de Gecko, sur la migration des profils, des contacts et des files de certifications de Cesium+ vers Dunipod. Dans ce cadre, elle a ouvert un ticket côté Cesium2 pour standardiser le format de la file de certifications entre les applications.
Je pense qu’il faut en profiter pour standardiser le format de toutes les données qui seront stockées dans le domaine userPrivateData de Dunipod.
C’est le bon moment pour le faire, car dès qu’une application utilisera Dunipod en production pour ce type de données, elle imposera un standard de fait, et toutes les autres applications se retrouveront obligées de gérer les éventuels défauts de cette première implémentation. C’est pourquoi je souhaite que nous prenions le temps, dès maintenant, de définir un format propre, efficient, versionné et évolutif.
Le domaine userPrivateData a vocation à stocker toutes les données qu’un utilisateur souhaite conserver pour lui-même. Cela inclut potentiellement (liste non exhaustive) :
- La file de certifications
- Les contacts
- Les préférences de l’utilisateur
- Les données spécifiques à chaque application, comme les données de configuration
À l’avenir, ce domaine pourrait également être utilisé pour stocker des fragments de Shamir chiffrés, dans le cadre d’un protocole de membres gardiens, par exemple, ou encore pour d’autres usages auxquels nous ne pensons même pas encore.
Tout compte (même non-membre) peut stocker des données dans son espace userPrivateData, mais il doit posséder un certain solde en Ğ1, dont le montant minimum dépend de la taille des données stockées, et ce, afin de lutter contre le spam.
Pour limiter la consommation du quota de stockage de l’utilisateur, le format doit être binaire et compact. Dans la RFC, je propose un format basé sur SCALE, car toutes les applications gèrent déjà ce format pour interagir avec Duniter.
Dunipod est totalement agnostique quant au format des données userPrivateData. Il se contente de vérifier leur taille et de s’assurer que l’utilisateur a le droit de stocker des données de cette taille.
Voici la Merge Request qui propose la RFC. J’invite tous les développeurs d’applications à l’analyser et à faire des retours constructifs, directement sur la MR ou dans ce sujet du forum :