À quoi servent les pending membership?

J’ai beaucoup avancé dans mon refac dans la MR !215, le code est devenu plus propre et compréhensible.

Et au vu de ton post Refonte de la Smith WoT et de l’intérêt que tu portes à la question, je me demande si je ne ferais pas mieux d’arrêter là dans le ticket #156 et de ne pas :

  • retirer le call revoke_membership
  • retirer l’instance smith de la pallet membership
  • apporter des modification à la pallet authority_members
  • permettre le changement de clé pour les forgerons

Comme ça j’ai fait la simplification que j’estimais indispensable et les bases sont propres pour les évolutions que tu proposes. Parmi ces nouvelles bases :

  • une distinction claire pour les statuts d’identité :
enum IdtyStatus {
    Unconfirmed,
    Unvalidated,
    Member,
    NotMember,
    Revoked,
}
  • une distinction entre la révocation d’identité et le retrait d’identité avec une cause précisée dans le message d’erreur (cf RevocationReason et RemovalReason)

  • des deadlines pour faire les actions bien définies

/// Period during which the owner can confirm the new identity.
// something like 2 days but this should be done quickly as the first certifier is helping
type ConfirmPeriod: Get<Self::BlockNumber>;
/// Period before which the identity has to be validated (become member).
// this is the 2 month period in v1
type ValidationPeriod: Get<Self::BlockNumber>;
/// Period before which an identity who lost membership is automatically revoked.
// this is the 1 year period in v1
type AutorevocationPeriod: Get<Self::BlockNumber>;
/// Period after which a revoked identity is removed and the keys are freed.
type DeletionPeriod: Get<Self::BlockNumber>;
  • un grand ménage dans les IdtyEvent qui passe de 5 à 2 cas

  • des messages d’erreurs plus précis partout (certifications, toile, membership, distance…)

enum MembershipRemovalReason {
    // reach end of life
    Expired,
    // was explicitly revoked
    Revoked,
    // received certs count passed below threshold
    NotEnoughCerts,
    // system reasons (consumers, authority members, or root)
    System,
}
  • le retrait de “validate_identity” qui n’a pas de raison d’être vu que “claim_membership” existe

  • et évidemment le retrait de pending* et request_membership

Il me reste un peu de ménage à faire notamment sur les live tests, mais sinon c’est regardable en l’état.

3 Likes