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.
Les utilisatrices doivent-elles demander le recalcul de la règle de distance au moins une fois par an, ou uniquement après expiration de l’identité ?
edit :
Par ailleurs, des frais sont associés aux opérations de TdC. les frais sont remboursés aux membres. Hormis le calcul de règle de distance, existe-t-il des opérations qui peuvent échouer et occasionner des frais non remboursés ?
J’ai ici distingué “renouvellement d’adhésion” et “ré-adhésion” mais c’est la même action (request_distance_evaluation), juste dans un contexte différent (Member ou WasMember).
Pour l’évaluation négative de la règle de distance, il ne s’agit pas tant d’un frais que d’une “punition”. Les frais sont remboursés même en cas d’échec de l’extrinsic (hors surcharge). Le “slash” de distance négative est une autre règle.
Donc un membre pourrait payer des frais s’il renouvelle son adhésion en manquant de certification, ou en ne respectant pas la règle de distance.
Je suppose que les clients seront configurés pour éviter d’envoyer une demande d’évaluation qui ne passera pas.
En manquant de certifications, non car c’est vérifié, mais en ne respectant pas la règle oui. D’où Guessing distance result before requesting evaluation dont le but est de pré-évaluer la règle de distance avant de soumettre l’appel. Et si une certification expire juste après la demande mais juste avant l’évaluation, ça dépend de si cette certification fait passer sous le seuil de certifications (auquel cas l’identité ne re-devient pas membre) ou sous la règle de distance (dans ce cas c’est ok).
Hé hé, je comprends tout à fait ! Ce n’est pas “essentiel”. Aucune obligation de le faire. Par contre, si tu fais le changement, c’est maintenant ! Après la migration ce sera trop difficile…
C’est le 5ème certificateur qui déclanche automatiquement la règle de distance côté client.
Suite à quoi le certifié passe membre automatiquement si la règle est positive.
C’est totalement transparent.
Mon message précédent ne répond pas à cette question ?
Je reformule: le 5ème certificateur déclanche directement l’évaluation de la règle de distance sur l’oracle via un extrinsic spécialement prévu pour déclancher cette évaluation puis passer l’identité en membre si le résultat est positif.
C’est donc le 5eme certificateur qui paie les frais d’exécution de cet extrinsic.
C’est pour cette raison qu’il est recommandé de pré-évaluer la distance côté client (ou via des instances dediés) avant d’invoquer l’oracle pour éviter de slasher le pauvre 5eme certificateur qui n’a rien demandé en cas de réponse négative de l’oracle.
Edit: Enfin c’est le design actuellement implémentemé dans Ğecko. Je crois que c’est le seul client à être aller aussi loin sur ce flow il me semble, mais je peux me tromper.
Pas n’importe quelle action : celle de renouveler l’adhésion (indirectement, par demande d’évaluation de la règle de distance). Les clients peuvent lancer cet appel automatiquement s’ils le veulent, mais à mon avis c’est quand même mieux si c’est explicite parce que c’est à ce moment qu’on va regarder si la règle de distance est toujours ok.
La règle de distance n’est évaluée que sur demande. Une évaluation négative ne désactive pas l’adhésion, mais ne repousse pas l’expiration de l’adhésion. Une évaluation positive repousse l’expiration de l’adhésion.
Il y a trois scénarios d’évaluation de la règle de distance :
Une nouvelle identité, la demande peut être effectuée par n’importe qui dès la 5ème certification.
Une identité membre, la demande (renouvellement d’adhésion) peut être effectuée uniquement par le membre.
Une identité ayant perdu le statut de membre, la demande (ré-adhésion) peut être effectuée uniquement par cet ancien membre.
création de l’identité avec la première certification, 48h pour choisir un pseudo (discussion pour allonger le délai ici : V2- certification - 72h au lieu de 48h)
une fois le pseudo choisi, 2 mois pour recevoir les quatre autres certifications (on pourrait également allonger ce délai, mais c’est à discuter plus largement)