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.