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
etRemovalReason
) -
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*
etrequest_membership
Il me reste un peu de ménage à faire notamment sur les live tests, mais sinon c’est regardable en l’état.