Volume de Code de Duniter

Duniter est un serveur de monnaie libre, qui doit être associé à un client (Sakia ou Cesium) pour former un client/serveur de même nature que le client/serveur Transmission (réseau P2P de protocole bittorrent).

On peut se faire une idée de la complexité relative de ces deux réseaux en terme de volume de code nécessaire pour les faire tourner, en comparant les lignes de codes des programmes de base, associés à un facteur de complexité relative des codes (Duniter est du NodeJS, qui est du JS, Sakia est en Python, Transmission en langage C).

On peut compter les lignes de code python, JS ou C, grâce à des lignes de commandes spécifiques telles que :

find -type f -iname '*.py' ! -path '*/lib/*' ! -path '*/frameworks/*' | xargs wc -l

On trouve (en Janvier 2017), pour :

  • Duniter : 15386 lignes
  • Duniter API : 2647 lignes
  • Sakia : 15156 lignes
  • Transmission : 59004 lignes

En tenant compte des facteurs de complexité relatives JS/C et Python/C on obtient :

(Duniter + Sakia) / Transmission = (153862.8 + 26472.8 + 15156*2.2) / 59004 = 95%

Le volume de code pour Duniter représente donc grosso modo 95% du volume de code pour Transmission.

Le réseau de monnaie libre P2P Duniter représente donc une volume de code comparable à celui de Bittorrent.

Pour information les lignes de codes de Cesium (client JS Duniter) et Qbittorrent (client/serveur riche Bittorrent écrit en C++) sont :

  • Cesium : 36139 lignes
  • Qbittorrent (lignes .cpp et .h) : 43301 (.cpp) + 14133 (.h) = 57434 lignes

(Duniter + Cesium) / Qbittorrent = (15386 + 2647 + 36139) * 2.8 / (57434 * 1.4) = 188%

On tourne donc grosso modo entre 1 et 2 fois le volume selon les programmes choisis.

2 Likes

Bonjour,

Merci pour cette analyse.

La modération des ressources, dans une vision écologique, ferait donc que l’utilisation du client Sakia, pour la gestion quotidienne de notre monnaie libre, soit préférée ?

Heu non ^^ le nombre de lignes de code n’informe pas de l’utilisation électrique demandée par le code.
1 seul ligne de code peut demander 100% de ton CPU (1 Thread) a vie ^^

le nombre de lignes de code représente uniquement le temps passé au développement d’une application et sa complexité.

Absolument pas. Un volume de code très grand peut parfaitement “consommer moins” en ressources énergétique qu’un petit volume de code. Ca n’a rien à voir.

Ok. merci pour vos réponses rapides !
Du coup, j’ai pas compris le sens du post, je crois :confused:

Information. Tout simplement, non? :wink:

Ca donne une idée de la complexité des projets, de l’énergie nécessaire à la réalisation de ces travaux, etc… :slight_smile:
Un peu comme le nombre de briques pour construire une maison. :wink:

ben je croyait qu’il n’y avait pas de liens ; )

En tout cas chapeau pour tout ce travail, bien content de vous rejoindre en route :slight_smile:

énergie humaine évidemment :wink: