Implémentation de Duniter en Rust?

:laughing:

Bon, j’ai le code qui marche, mais le test échoue de manière alétoire. En effet l’ordre des chemins retournés par get_path est aléatoire vu que les calculs sont répartis sur plusieurs threads.

Je fais quoi ? Je supprime la ligne correspondante ?

assert_eq!(wot.get_paths(NodeId(3), NodeId(0), 2)[0].len(), 3);

(par contre mon compute_distance à marché du premier coup, et ne contient aucune récursion)

1 Like

Idéalement, il faudrait réécrire le test pour vérifier que la collection de chemins est bien celle attendue :stuck_out_tongue:

En effet il faudrait vérifier tous les chemins ^^

Bon je suis plutot satisfait de mon nouveau format binaire pour wotb, taille du fichier wotb au bloc Ğ1 114120 :

wotb cpp : 37929 octets

wotb rust : 25811 octets

Soit un gain de place de 32% c’est quand même cool :smiley:

D’après mes calculs une wot de 1 millions de membres ayant émis en moyenne 50 certifications chacun pèsera seulement 150Mo ^^

1 Like

Essaie de chiffrer pour une masse monétaire M = N * 3700 DU, le nombre total de comptes différents possibles avec > 1 Ğ1 sur chaque compte, et estimer son poids.

Arf cela dépendra des choix de structure de stockage des sources, or je n’ai pas encore commencer cette partie.

On a dit que le DU faisait 4 chiffres sur la Ğ1, donc on au maximum 99,99 Ğ1 le DU (en cas de dépassement, il y a changement de base). Pour faciliter les calculs arrondissons à 100 Ğ1.

On a donc M(max) = 1.000.000 * 3700 * 100 = 370.000.000.000 (370 milliards) comptes de monnaie au maximum.

Si l’on considère qu’à 99% les comptes sont représentés par des clés publiques, arrondissons à 100% toujours pour faciliter les calculs, et qu’une clé publique pèse 32 octets, on a donc à peu près : M = 370x10⁹ * 32 / 1024 / 1024 / 1024 / 1024 = 10,76 To de pur stockage.

A ceci il faudrait aussi rajouter l’index, qui fait bien 1 To à lui tout seul. Donc un total au doigt mouillé de 12 To.

Mais bon, bientôt il ne sera plus nécessaire que chaque nœud stocke l’ensemble des sources de monnaie, donc ce chiffre ne sera valable que pour ceux qui désirent tout archiver.

3 Likes

Ceci dit sans compression.

M’est avis que tout ceci se compresse extrêmement bien.

1 Like

Tu parles de FYgg ou d’une nouvelle version de Duniter ? :stuck_out_tongue:

D’une version de Duniter avec au moins le goût fruité !

3 Likes

Ah super :stuck_out_tongue: Comment tu vas faire ça ?

Reprendre les idées qui m’intéressent le plus à court terme que tu as développées, entre autre :

  • binarisation
  • non-stockage des UTXO

Du coup tu compte passer par arbre de Merkle + preuve, ou quelque chose de différent ?

Je comptais réétudier ce que tu as proposé à ce sujet d’abord, mais dans l’idée oui c’était arbre de Merkle + preuve si ça matchait bien.

2 Likes