actual monetary_mass (7,739,543,077) and initial_monetary_mass (7,739,834,527) do not match
J’avais justement ajouté ce check pour éviter la création ou destruction de monnaie non désirée. Pour clarifier :
Comme c’est cette valeur qui est utilisée pour le calcul du DU, je prends celle-ci comme source de vérité.
J’ai calculé cette valeur dans l’idée que toute unité de monnaie créée par Duniter v1 devait bien être présente sur un compte, et je souhaiterais qu’au genesis v2 la somme de la monnaie sur les comptes soit bien égale à la masse monétaire totale. Une inadéquation entre ces valeurs correspondrait à une création ou destruction monétaire hors du cadre de la TRM, ce qui ne serait pas sérieux par rapport au but du projet.
Je trouve que c’est assez différent d’avoir de la monnaie présente dans le système ou absente du système. Comme la gouvernance on-chain facilite la mise en oeuvre de décisions, il n’est pas impossible qu’on déplace de la monnaie présente sur le système suite à une décision de gouvernance. Par exemple, si une quantité extrêmement importante de monnaie était déplacée par erreur sur un compte n’appartenant à personne, il ne serait pas complètement déraisonnable que la gouvernance décide d’effectuer une transaction en sens inverse pour réparer l’erreur et éviter une “destruction monétaire technique”. La gouvernance aurait aussi le pouvoir de créer de la monnaie hors cadre du DU, mais il faut se l’interdire par respect de la TRM.
Ceci serait aussi possible dans Duniter v1 : si on publie une mise à jour qui contient une règle spéciale et que cette mise à jour est installée par l’ensemble des forgerons.
Pour moi, création et destruction monétaire doivent être soumises aux règles de la TRM au même titre l’une et l’autre. Ce serait aussi grave de détruire une Ğ1 que d’en créer une hors d’un DU.
Pour revenir aux unité manquantes, dans le code actuel, toute la monnaie ignorée clairement identifiée (comptes hors ed25519, sources spéciales) est déplacée dans la trésorerie. Et ce compte “trésorerie” est inclut dans le calcul de monetary_mass
.
Malgré cela, il reste un écart entre la masse monétaire théorique et observée.
Maaltir avait déjà formulé son hypothèse dans le sujet “Quantité de monnaie sur Duniter” :
Il faudrait explorer cette piste et vérifier si ça explique l’écart de monnaie, je n’ai pas encore eu le temps de le faire.
Pour moi il faut faire réapparaître ces Ğ1, Duniter ne devrait pas générer de destruction monétaire si le but est de coller à la TRM.
Ce que j’ai fait en attendant qu’on creuse cette piste est de prendre initial_monetary_mass
comme référence et d’ajouter au compte trésorerie toute la monnaie qui n’était pas expliquée par des comptes. Libre à la gouvernance de décider de ne jamais toucher à cette monnaie ou même de la “détruire véritablement” (je ne souhaite pas de destruction monétaire), mais c’est une décision qui ne devrait pas être prise au genesis de la v2 par un nombre très réduit de personnes à mon avis. Toute destruction de monnaie dans le genesis serait un argument pour rejeter la v2 et maintenir la v1 en route, au même titre qu’une création de monnaie.