gitlab inso

L’écosystème logiciel de Duniter

Nous allons ici vous présenter l'écosystème logiciel de Duniter.

Outre les logiciels historiques, vous découvrirez aussi des projets moins connus mais tout aussi fondamentaux pour l'avenir de Duniter.

Table des matières

  1. Topologie du réseau
  2. Nœuds serveurs
  3. Logiciels clients
  4. Places de marchés
  5. Autres projets

Topologie du réseau

Le réseau Duniter est un réseau pair à pair (P2P). Techniquement, ce type de réseau signifie qu'il n'y a pas de serveur central. Ceux-ci sont répartis, n'importe qui peut démarrer un nouveau nœud et se connecter au réseau. Cependant, à la différence de bitcoin, il n'existe pas de nœud dit "wallet" dans Duniter. Deux objectifs distincts sont définis actuellement entre les nœuds serveurs et les nœuds clients :

Il y a donc deux couches dans le réseau Duniter : les serveurs, qui se synchronisent entre eux via la blockchain, et les clients, situés en périphérie, et qui se connecte aux nœuds serveurs.

L'exécution de nœuds serveur est anonyme. Cependant, sans associer le nœud à une identité, celui-ci ne peut pas calculer de bloc : il se comporte en simple miroir de la chaîne de blocs. Une fois associé à une identité membre, il peut participer au calcul de blocs sur la chaîne.

Nœuds serveurs

Il n'existe dans Duniter qu'une seule implémentation des nœuds serveurs à l'heure actuelle : duniter-ts. Il est écrit en TypeScript, un langage orienté-objet et typé, qui est transpilé en JavaScript. Ce langage offre l'avantage de la robustesse des langages typés tout en offrant l'agilité et la vitesse de développement de JavaScript.

Duniter-ts est un nœud serveur qui est configurable en ligne de commande. Il est capable d'automatiquement se connecter et se synchroniser au réseau, y compris derrière un NAT. Pour en simplifier l'utilisation, un plugin, Duniter-UI a été développé. Il permet d'avoir une interface d'administration pour ce logiciel.

Duniter gère ainsi différents modules. Le plus connu étant Duniter-Currency-monit. Un outil permettant d'observer l'évolution de la monnaie, que ce soit la toile de confiance, les adhésions, la masse monétaire, etc.

Le protocole réseau des nœuds serveurs permet aux nœuds de s'auto-déclarer via un message signé contenant leurs différents points d’accès (endpoints). Un nœud peut héberger plusieurs types d’endpoints. Par exemple :

Logiciels clients

La communauté de développeur a réalisé à l'heure actuelle trois types de logiciels wallets pour Duniter :

Un client CLI, Silkaj. Réalisé en Python 3, il permet d'automatiser facilement des tâches sur le réseau. Il offre une liste de fonctionnalité assez complète :

Silkaj n'utilise pas le consensus du réseau pour vérifier ses réponses. Il requête un nœud, que l'utilisateur peut passer en paramètre des différentes commandes. Silkaj est multiplateforme.

Un client lourd, Sakia. Réalisé avec PyQt5 et Python 3, il offre les fonctionnalités de base d'un wallet Duniter, tel que :

Un client web, Cesium. Réalisé avec ionic.js, c'est le client le plus avancé en termes de fonctionnalités utilisateur. Il permet, de base, les fonctions suivantes :

Cesium offre la possibilité d'activer un plugin nommé Césium+. Ce plugin permet d'activer des fonctionnalités supplémentaires qui n'utilisent pas la blockchain mais le serveur Elastic Search Duniter4j. Les fonctionnalités ajoutées par ce plugin sont :

Places de marchés

Afin de permettre à la monnaie de se développer, deux places de marché ont été développées. Chacune apporte ses propres fonctionnalités :

Autres projets

D'autres projets existent ou sont en cours de développement. On peut noter parmi ceux existants :

Du côté des prochains logiciels à venir, on ne va pas s'ennuyer :

Exemple de billet envisagé

Enfin, les développeurs s'intéressent aujourd'hui aux idées du projet FYgg développé par nanocryk. Certains concepts utilisés dans ce framework de chaîne de blocs permettraient de décentraliser davantage Duniter, de fiabiliser et accélérer les données retournée par le réseau aux clients. En parallèle de ces recherches, les développeurs réfléchissent à l'implémentation d'une nouvelle API clients, qui s'appuierait sur GraphQL.

Si vous voulez en découvrir plus, nous vous invitons à vous rendre aux onzième rencontres de la monnaie libre, à Douarnenez, en Bretagne ! Ce sont quatre jours intenses où les développeurs et informaticiens peuvent échanger sur les différents projets tournant autour de cette monnaie, et où les utilisateurs peuvent découvrir de nouveaux usages !