Récapitulatif du parcours membre

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 :

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.

4 Likes

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.

Mais faut payer ? Ou pas ?

Oui, si on demande une évaluation de distance mais qu’elle se révèle être négative, on est prélevé de la somme réservée (De quel mécanisme antispam a-t-on besoin pour l'évaluation de la règle de distance? - #10 by HugoTrentesaux). Quand je dis qu’il ne s’agit pas d’un frais, c’est que ce n’est pas le même mécanisme (TransactionPayment contre slash_reserved).

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… :sweat_smile:

3 Likes

Pour un membre postulant, qui va faire la demande ?
Le 5e certificateur ?
Ce sera transparent pour les utilisateurs ?

1 Like

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.

3 Likes

Il y a encore quelque chose que je ne saisis pas.

  • l’identité est valide tant qu’elle a effectué une action il y a moins de 1 an (sinon elle expire)
  • si une action a été faite il y a 6 mois et que l’évaluation de la règle de distance devient négative :
    • l’identité expire immédiatement ?
    • OU l’identité expirera dans 6 mois ?
  • QUAND se fait l’évaluation de la règle de distance et par qui est-elle déclenchée ?

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.

Non, car ton message précédent parle de l’entrée d’un nouveau membre. Là où je m’interroge, c’est pour le maintien d’un membre existant.

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 :

  1. Une nouvelle identité, la demande peut être effectuée par n’importe qui dès la 5ème certification.
  2. Une identité membre, la demande (renouvellement d’adhésion) peut être effectuée uniquement par le membre.
  3. Une identité ayant perdu le statut de membre, la demande (ré-adhésion) peut être effectuée uniquement par cet ancien membre.

Les détails sont dans le fil Adhésion automatique après évaluation de la distance.

3 Likes

Merci beaucoup !

Je continue donc ici @Spiranne.

  1. 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)
  2. 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)