Les wot sont bien séparées, mais elles n’ont pas “conscience” des instances de certification et membership auxquelles elles sont liées. J’avoue que je n’ai pas creusé à fond la question, je pense que c’est mieux de régler ça après le lancement du réseau de test. C’est vrai qu’on pourrait quand même faire les vérifications en implémentant les traits Check*CallAllowed
sur les pallets certification et membership et en les fournissant sous forme de tuple. Mais de toute façons les implémentations devraient prendre en compte l’instance I
pour explorer les données rattachées à cette instance, donc je trouve ça plus simple de tout relier en utilisant la pallet wot.
En gros, si on émet une certification forgeron, vers une identité A, il faut vérifier :
- que A est bien membre de la toile principale (son adhesion n’a pas expiré par exemple)
- que A a une adhésion en cours à la toile forgeron ou est membre de la toile forgeron
Ces vérifications ne doivent pas se faire uniquement de manière statique en stockant dans Idty son statut, mais bien auprès de chaque instance des pallets.
On peut omettre certaines vérifications si on fait en sorte qu’elles se réalisent toujours, mais dans se cas, il faut s’assurer de la cohérence du storage.
Exemple : si A perd son statut de membre sur la toile principale, il doit aussi perdre son statut de membre de la toile forgeron. Dans l’implémentation d’elois, il n’y avait pas ce problème parce l’identité (et toutes les données liées) était immédiatement supprimées (Proposition de supprimer la notion d'identité désactivée mais non révoquée et la notion d'adhésion). Mais c’était une trop grosse modification par rapport au protocole Duniter v1 et en plus très “punitive”, au sens où il fallait recommencer une identité de zéro, changer de pseudo, obtenir les certifications…
Donc j’ai autorisé la perte d’adhésion sans suppression d’identité, mais en introduisant des “bugs”. Maintenant il faut travailler à corriger ces “bugs” pour se rapprocher davantage du comportement v1 qui est bien plus souple et logique sur ce point.