Duniter est il énergivore?

Mon petit tableau indicatif amélioré dans la même unité. C’est plus parlant effectivement.

Capture du 2020-04-25 10-00-04

3 Likes

La conso énergétique prend en compte plein de facteurs compliqués à mesurer, mais la chose qui de loin consomme le plus est la PoW, non ?

Si on se limite à ça, en trouvant une conversion entre la difficulté moyenne du bitcoin et celle du Duniter (en probabilité de trouver un bloc valide en une tentative), on devrait pouvoir comparer leur énergivoracité. (plus éventuellement un coefficient pour prendre en compte la différence d’algos)

Supposons que la difficulté augmente linéairement avec le nombre de nœuds. (à vérifier)

difficulté de Duniter pour 30 nœuds ≈ 90
proba qu’un hash soit valide = 1/16^90/16
soit 1 bloc valide tous les 6M blocs
soit avec 1 blocs par 5 minutes : 20 kHash/s
Avec la fenêtre courante (20 nœuds), puissance du réseau : 20 × 20 = 400 kHash/s
Duniter fait donc 400 kHash/s (4×10^5 Hash/s).

Puissance du bitcoin : 8 EHash/s (8×10^18 Hash/s) (source)

Ensuite il est plus difficile d’estimer le nombre d’utilisateurs de ces deux monnaies. Elles sont souvent utilisées en plus d’autres monnaies, donc chaque utilisateur (en moyenne) les utilise beaucoup moins actuellement que si elles étaient plus répandues. Si l’objectif est de comparer la conso d’un monde ne tournant qu’à Duniter avec celui d’un monde ne tournant qu’au bitcoin, c’est compliqué.

Pour Duniter, ce n’est pas 0,48 TWh par an mais 0,0048 TWh par an (4,8 GWh).

J’ai calculé 48213 kWh pour ma part :

 55Wh x 24 x 365,25 x 100

Soit 48 MWh, ou 0,048 GWh, ou 0,000048 TWh par an.

4 Likes

En fait, même pas. 100 serveurs à 55 W, cela fait une puissance de 5500 W, soit 5,5 kW, soit 5,5 kWh/h. En multipliant par le nombre d’heures par an, cela fait 5,5 x 24 x 365,25, soit 48000 kWh / an, soit 0,048 GWh, ou 0,000048 TWh par an !

2 Likes

Ah, tu m’as doublé. Mais, au moins, on est d’accord. :grinning:

7 Likes

Merci à tous les deux, y en a qui suivent !
Capture du 2020-04-25 17-54-10

7 Likes

C’est plus convaincant, hein ?

5 Likes

Manque plus qu’une estimation par utilisateurs :slight_smile:

2 Likes

Si on compte 7,1 millions de gens pour BTC et 38,7 TWh ça donne:
5 450 kWh par an et par gens en BTC. 15 kWh par jour et par gens.
Pour la G1, 2664 membres (si on ne compte pas les non membres comme utilisateurs), ça donne :
1 801 kwH par an et par membre en G1. 5 kWh par jour et par gens.

Si je fais un bête produit en croix qui supposerait que la conso est linéaire, on pourrait comparer avec 7,1 millions d’utilisateurs de la G1, et ça donnerait 0,035 TWh par an contre les 38,7 du BTC.

1 Like

Soit 1105 fois moins énergivore ? ^^

1 Like

1105 fois moins selon une estimation pessimiste, en défaveur de Duniter

3 Likes

Avec mon estimation de la puissance de calcul et vos nombres d’utilisateurs, j’obtiens que le bitcoin fait plus de Hash/s que Duniter pour autant d’énergie :

Bitcoin : 8e18 / 38.7e12 = 206718 Hash/s/kWh.an
Duniter : 4e5/0.000048e12 = 0.0083 Hash/s/kWh.an
(pourquoi on s’embête avec des kWh/an ? autant dire que je mesure 3600×0,044 s.m²/in/h)

Cela peut venir du fait que les nœuds ne sont pas installés sur des machines optimisées pour le minage. Ou alors qu’un Hash n’a pas le même coût dans l’un ou l’autre protocole.

Cependant mon résultat de 20 kHash/s en moyenne par nœud Duniter semble cohérent : c’est ce que je faisais en minant du Monero sur mon Pentium. (triste époque)


Le nombre d’utilisateurs n’est pas forcément égal à N : il y a des membres qui n’utilisent pas et des non-membres qui utilisent. Il faut aussi compter que l’utilisation peut être relativement peu intense.

Il faut aussi compter que la proportion de développeurs dans la Ğ1 est élevée, donc que pour un usage mondial il y aura une plus faible proportion de mineurs, et parmi eux une plus faible proportion de gros serveurs (au profit des RPi à 10 W).

Pas sûr que tu puisses comparer les hashs : l’opération de PoW de Duniter implique signature + hash à chaque essai. Le nombre de hashs est forcément moindre pour Duniter.

3 Likes

D’ailleurs si vous voulez jouer à qui qu’a la plus grosse performance CPU, installez Sombrero (un logiciel libre de bench), compilez le, et lancez l’évaluation, ça prend cinq minutes:

sudo apt install make gnuplot gcc bc openmpi-bin openmpi-common openssh-server
cd
git clone https://github.com/sa2c/sombrero && cd sombrero
make
./sombrero.sh -n 1 -s small > mon_benchmark_.txt

ça fait plusieurs fois le même test,6 fois pour celui ci, et donne à chaque fois une estimation de FLOPS.
Par exemple mon ordi portable (qui n’est pas une machine de guerre, mais un ultra-portable le Swift7 d’Acer) peut faire jusqu’a 9,6 giga FLOPS.
Un gens a fait un supercalculateur avec 33 raspberry pi qui font 10 Giga FLOPS. C’est drôle mais cher, 1500 eur et surement plus de Watts que mon laptop et son transfo de 45 Watts. :smiley:

voilà un topic listant un paquet de mesures de CPU: https://forum.nextinpact.com/topic/167337-benchmark-tableau-de-la-performance-des-cpu-en-flops/

Et en ce qui concerne les cartes graphiques, les noeuds Duniter peuvent l’utiliser ou c’est que du CPU ?

Pour le moment, c’est que du CPU. Mais le sha256 peut être mené sur GPU, et même sur ASIC, si on veut vraiment mettre de la puissance de calcul.

Je ne sais pas ce qu’il en est de ed25519.

Ce qui ne sert a rien car le hash sha256 n’est qu’une opération mineure dans la PoW, ce n’est pas ce qui occupe la majeure partie du temps de calcul.

Voici ce que fait la PoW a chaque itération :

  • Incrémentation du nonce
  • Concaténation du inner hash et du nonce : blockInnerHash ++ nonce (1)
  • Hash sha512 de (1)
  • Signature Ed25519 de ce hash sha512
  • Concaténation du inne hash et de la signature : blockInnerHash ++ blockSig (2)
  • Hash sha256 de (2)

On voit bien que le hash sha256 n’est que la 6ème étape, et pas la plus coûteuse, bien au contraire.

EDIT: l’observateur avisé notera que l’étape 5 ne sert a rien, on pourrait hasher directement la signature, mais historiquement ça a été fait comme ça, un détail qui pourra être amélioré dans une future version du protocole :slight_smile:

1 Like

Cette étape sert à contextualiser la signature vu que celle-ci n’est pas une fonction bijective (la signature peut correspondre à plusieurs contenus). Mais c’est peut-être de la sur-sécurité je veux bien en convenir.

Étant donné que la signature est déjà la signature du hash sha512 du message, on a déjà tout de contextualiser dans ce hash, le risque de collision étant considéré comme nul, la signature seule est suffisante, c’est sur ce principe que les merkle tree sont basés, et ça marche très bien :wink:

Ce serait intéressant de savoir combien il y a de raspberry sur les 80 noeuds… Pas mal à mon avis. Et 10W, ce serait pour un Pi4 avec HDD… Un pi3 avec SD tourne plutôt à 3.6W (mais tout doux). Ça réduit sacrément des i3 à 55W de moyenne.

Perso, je serais partisan de ne faire tourner que sur Pi, ce serait égalitaire et là on aurait la crypto la moins énergivore du monde (c’est déjà la cas, mais encore plus !)

1 Like