Après de très nombreuses discussions et évolutions du parcours membre dans Duniter v2, je ressens le besoin de faire un récapitulatif du protocole.
Historique des discussions
Par ordre chronologique :
- 2022-01 La création d'identité dans Duniter-v2s
- 2023-11 Demande d'adhésion et statut d'identité
- 2023-12 À quoi servent les pending membership?
- 2023-12 Révocation automatique d'identité
- 2023-04 Trancher sur la perte du statut de membre
- 2024-01 Proposition pour supprimer la pallet membership
- 2024-01 Adhésion automatique après évaluation de la distance
- 2024-09 Durée du dossier d'adhésion
Machine à états
Je reprends le schéma de la machine à états pour illustrer les changements de statuts :
Il faudrait renommer les statuts suivant la proposition de vit
Mais j’avoue que je suis un peu réticent à le faire parce que ça implique des changements sur toute la ligne (indexeurs, clients…).
Détail du fonctionnement
- La création d’identité est soumise au minimum aux mêmes contraintes que la certification, et elle entraîne automatiquement une certification.
- La suppression automatique d’une identité non confirmée entraîne la suppression de la certification (elle devient donc à nouveau disponible).
- La confirmation d’identité par le certifié est une étape bloquante pour la suite, c’est là qu’est associé un pseudo qui devient réservé.
- La suppression automatique d’une identité non confirmée entraîne la suppression de toutes les certifications reçues. Elles ne comptent plus dans le stock des certifications envoyées.
- La validation de l’identité se fait automatiquement suite à une évaluation positive de la règle de distance. La demande d’évaluation est manuelle et peut être demandée par n’importe quel compte.
- Le renouvellement d’identité se fait automatiquement suite à une évaluation positive de la règle de distance. La demande d’évaluation est manuelle et peut être effectuée uniquement par le membre.
- La révocation explicite se fait par document de révocation, publiable par n’importe quel compte, mais signé par la clé membre (ou la clé précédant une migration de l’identité).
- L’expiration automatique de l’adhésion se fait en cas de non-renouvellement de l’adhésion.
- La ré-adhésion se fait automatiquement suite à une évaluation positive de la règle de distance. La demande d’évaluation peut être effectuée uniquement par l’ancien membre.
- La révocation automatique survient en cas de non ré-adhésion.
- La suppression automatique de l’identité survient automatiquement et de manière irrémédiable après un délai suivant la révocation. Cela permet de bloquer l’utilisation de la clé publique au-delà de la révocation.
Remarques
La suppression des certifications lors de la suppression d’identité actualise bien le compte de certification, mais ne change pas le délai avant la prochaine certification.
Les identités non confirmées ou non validées sont supprimées immédiatement, sans révocation automatique, la clé publique devient donc à nouveau disponible. Dans les clients il faudrait décourager la création d’identité sur cette clé en utilisant les données des indexeurs.
Une identité supprimée permet la réutilisation de la clé publique, mais ne libère pas le pseudo. Un pseudo n’est jamais libéré automatiquement. prune_item_identities_names
n’est jamais appelé par duniter, uniquement manuellement par root. Si on veut libérer un pseudo pour qu’il puisse être réutilisé, il faut réfléchir à comment donner un sens à ça dans l’indexeur.
Normalement le délai de suppression d’une identité révoquée est réglé pour être supérieur à la durée de vie des certifications. Si ce n’est pas le cas, les certifications sont supprimées et le stock devient de nouveau disponible pour les certificateurs.