Audit des différences de comportement entre les runtime gtest et g1

En comparant les runtimes gtest et g1, j’ai identifié plusieurs différences de comportement qui peuvent avoir un impact fonctionnel:

1. ProxyType TechnicalCommitteePropose

  • Présent dans gtest
  • Absent dans g1
  • Impact : une capacité de proxy disponible sur gtest ne l’est pas sur g1.

J’avais créé ce ProxyType pour permettre aux membres du comité technique de voter avec un trousseau de clés secondaire afin de ne pas avoir à utiliser leur trousseau membre à chaque fois. Est-ce que quelqu’un s’en sert ? Est-ce qu’on veut garder cette possibilité en production ?

2. SmithMaxByIssuer

  • gtest : 100
  • g1 : 12
  • Impact : limitation beaucoup plus stricte côté g1 pour l’émission Smith.

Est-on toujours d’accord pour limiter à 12 les certifications forgeron en production ?

3. MembershipRenewalPeriod

  • gtest : 56 jours
  • g1 : 2 mois
  • Impact : fenêtre de renouvellement plus longue sur g1 (en pratique ~4,875 jours de plus avec les constantes actuelles).

Puisqu’on veut désormais aligner gtest et g1 pour qu’ils évoluent de la même façon, doit-on modifier MembershipRenewalPeriod en gtest à 2 mois ?


Gitlab issue: Behavioral Discrepancy between gtest and g1 runtimes (#349) · Issues · nodes / rust / Duniter v2S · GitLab

1 Like

12 ça me paraît léger quand même.

Je crois que personne ne s’en sert à vrai dire.

Oui je suis pour aligner les 2 runtimes.

1 Like

Je viens de créer une MR pour aligner les comportements des runtimes gtest et g1 :

Cette MR aligne la valeur de MembershipRenewalPeriod et la définition des ProxyType en ajoutant TechnicalCommitteePropose à g1, au cas où un dev s’en serait servi sur gtest. On pourra toujours supprimer ce ProxyType à l’avenir si personne ne l’utilise.

Concernant SmithMaxByIssuer, je n’ai pas trouvé de discussion sur le forum à propos de cette valeur. C’est moi qui l’avais fixée à 12 il y a 4 ans, lorsque j’ai écrit le code de la sous-toile forgerons, mais je ne me souviens plus pourquoi j’avais choisi 12. S’il y avait eu une raison forte, je m’en souviendrais, car j’ai une très bonne mémoire pour ce genre de choses. Ce qui est certain, c’est qu’il faut une limite, et que cette limite doit être plus faible que pour les certifications normales, puisqu’il suffit d’en recevoir 3 au lieu de 5.

Avez-vous discuté de la limite à appliquer au nombre de certifications forgerons @HugoTrentesaux @cgeek @tuxmain ?

Je ne pense pas que 12 soit trop élevé. Avec les événements physiques récurrents, les devs forment une presque-clique assez grande (en termes de certifications potentielles). On peut laisser comme ça et augmenter si besoin. Ce sera plus compliqué de réduire que d’augmenter.

@HugoTrentesaux Avec tes outils de stats sur la TdC est-ce que tu as un truc déjà fait qui permet de voir la sous-toile des forgerons v1 ? (peut-être en cumulé, tous les gens qui ont écrit au moins 1 bloc, et sans compter les expirations, pour avoir une borne haute sur le degré sortant dans cette sous-toile)

3 Likes

Justement il suffit théoriquement d’un stock de 3 certifications par Smith pour faire une toile en anneau qui minimise leur consommation.

Tout ce qui est au-dessus de 3 permet surtout de faciliter l’entrée de nouveaux Smith.

Sachant qu’on a une limite à 32 validateurs actuellement, spontanément je dirais que 12 est déjà trop élevé.

1 Like

Dans les faits, il se peut que la plupart de futures smiths soient invités par le même petit groupe de personne central, qui consomme alors plus de certification que le autres.
Mais bon je sais pas en fait, peut être pas.

2 Likes

Merci @tuxmain et @cgeek pour vos retours. Du coup, je propose qu’on reste à 12 pour le moment. On pourra toujours augmenter lors d’un futur runtime upgrade si on constate que 12 est trop limitant en pratique.

@poka, de mon côté, j’ai terminé d’auditer tout ce que je voulais. Il ne reste plus qu’à merger la MR !368 et on pourra livrer un nouveau runtime gtest :slightly_smiling_face:

2 Likes
  • Et concernant la MR !363 ?
  • J’ai vue que le benchmark sur la machine de aya ont été mergé, mais concernant !358, ont est d’accord qu’on fera l’upgrade substrate après la migration, ou qu’en penses-tu ?

J’ai expliqué dans ce post pourquoi ça peut attendre :

Oui, cette MR n’est pas prête de toute façon et va demander du temps à Aya, plus du temps de review. Elle a bien le milestone runtime-1200.

Le prochain runtime à release correspond au milestone runtime-1100.

2 Likes

Super, et bien attendons la review et le merge de !368, et on pourra faire le runtime upgrade gtest ce weekend :slight_smile:

Je ne sais pas si tu veux le préparer, sinon je peux m’en charger demain soir ou dimanche.

1 Like

Est-ce que tu peux t’en charger ? Merci

1 Like

C’est pas @HugoTrentesaux mais, du coup je viens de faire ça :

Et voici les podiums :

2 Likes

J’ai l’approche inverse en tête. Je propose qu’on ne l’implémente pas. Si un besoin se crée on l’ajoute. Plus un code a de fonctionnalités, plus il y a de bugs potentiels. Cette fonctionnalité est potentiellement pas utilisée et a surement été oubliée (je la découvre). Si une fonctionnalité est oubliée, il vaut mieux qu’elle n’existe pas. On a suffisamment de choses à maintenir.

Qu’est-ce qui met en place cette limite ?

12 me semble bien pour démarrer.

Oui, comme sur la Ğ1/Duniter v1.

AuthorityMembers::MaxAuthorities.

edit : j’ai commenté le ticket. TLDR: je suis pour qu’on garde cette palette.

1 Like

La pallet proxy est maintenue par Parity ; tout ce qu’on a à faire, c’est déclarer les catégories de délégation et les droits associés. Ce n’est que de la configuration.

1 Like