Débuter avec duniter (Ğ1) puis héberger un nœud

J'avais déjà parlé des cryptomonnaies et je terminais par duniter. Cette dernière est pensée autour d'une philosophie captivante qui correspond davantage à mes valeurs que les autres. Cependant, et je me demande encore pourquoi, je me fourvoyais complètement sur la façon de l'utiliser, c'est pourquoi j'ai envie d'écrire ce petit guide. Entre la version desktop, la version server, le logiciel à utiliser pour échanger des sous, puis les inscriptions à faire alors que je croyais avoir un portefeuille... Bref, il est temps de poser ça à plat comme on dit. :)

Notez que je vais décrire la procédure sous OpenBSD. Avant de vous lancer dans les compilations, vérifiez si un binaire n'existe pas déjà.

1. Avant tout, il faut bien comprendre...
Contrairement aux autres cryptomonnaies, il y a une différence entre le logiciel et la monnaie.
"duniter", c'est le logiciel libre qui permet les transactions.
"Ğ1" est une monnaie disponible via duniter. Il est possible d'utiliser d'autres monnaies, mais c'est cette dernière qui est actuellement la plus utilisée. De plus, c'est libre ! :)
Un troisième logiciel est nécessaire pour échanger de la monnaie. Ce dernier est spécifique à la monnaie utilisée. Ce sera dans l'exemple cesium, mais il en existe d'autres.

Cela peut paraître excessif, mais c'est en réalité toute la force du logiciel libre. Pour résumer :

  • Un démon/protocole : duniter
  • Plusieurs monnaies : on s'intéressera à Ğ1
  • Une interface pour échanger des sous : cesium

2. Échanger des Ğ1
Téléchargez et décompressez l'archive de cesium qui est un logiciel nous permettant d'échanger de la monnaie. Je vous conseille la version "-web" qui ne nécessite qu'un navigateur pour s'en servir.

Décompressez l'archive .zip, puis ouvrez le fichier index.html dans un navigateur (Firefox ;) ).

Je vous conseille de suivre la visite guidée très bien faite pour découvrir cesium.

Lors du premier lancement, on vous propose de créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Cela vous crée un portefeuille. Si vous n'avez pas de compte, créez un compte "membre" pour pouvoir plus tard participer au dividende universel.
Si on ne vous propose rien, cliquez sur le lien "créer un compte"

Notez bien votre mot de passe, récupérez le certificat de révocation (on ne sait jamais), puis cliquez sur "mon compte" à gauche pour noter votre clé publique et modifier les informations vous concernant.

Vous voilà prêts à échanger des Ğ1 en cliquant sur le bouton "Virement" à gauche :

(bon, il faudra en recevoir avant... ;P )

Voir aussi l'excellent tutoriel suivant : http://www.le-sou.org/inscription-tuto/

3. Participer à l'utilisation des Ğ1 en étant un nœud

Vous pouvez héberger un noeud et participer aux calculs nécessaires aux échanges de Ğ1. Je reprends ici les explications pour OpenBSD (oh le fainéant). Tant qu'à faire, je vous propose une méthode pour, autant que possible, séparer les permissions et faire les choses proprement.
Je vais créer un utilisateur "_duniter" dont le seul rôle sera de faire tourner duniter, afin d'éviter de faire tourner le démon en tant que root.
Ensuite on installe node.
On s'identifie comme _duniter, puis on télécharge et compile duniter.

useradd -m -d /var/duniter
pkg_add node
npm install --global yarn
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
su _duniter
cd /var/duniter
ftp -o duniter.tar.gz https://github.com/duniter/duniter/archive/v1.5.9.tar.gz
tar xvzf duniter.tar.gz
mv duniter-* duniter
cd duniter
yarn

On peut maintenant l'utiliser en suivant les recommandations situées ici.

On indique quelle clé utiliser : je me sert de la même clé que pour mon inscription précédente sous cesium par facilité.

./bin/duniter wizard key
? Modify you keypair? (y/N) y   
? Key's salt ********************************************   (clé publique précédente)
? Key's password *************************************************   (mot de passe du compte précédent)

Configurez ensuite le réseau. Dans le doute, laissez par défaut.

./bin/duniter wizard network
? IPv4 interface trunk0 192.168.1.64  (interface réseau à utiliser)
? IPv6 interface None
? Port 10901
? Remote IPv4 Enter new one
? Remote IPv4 109.190.193.124 (ici, c'est votre [IP publique|http://ipecho.net])
? Remote port 10901
? Does this server has a DNS name? n (répondez "y" si vous voulez héberger le noeud sur un serveur disponible avec un nom de domaine)

Enfin, lancez la synchronisation :

./bin/duniter sync g1.duniter.org 443

Vous pouvez maintenant lancer duniter et participer aux calculs :

./bin/duniter direct_start

ou pour qu'il tourne en arrière plan :

./bin/duniter start

Si vous faîtes tourner ce noeud sur un serveur, veillez à bien ouvrir les ports 10901. De plus, créer un CNAME pour un nom de domaine dédié à duniter sera sans doute pratique.

Afin d'avoir un service à lancer au démarrage sous OpenBSD, vous pouvez créer le fichier /etc/rc.d/duniter_daemon pour gérer le démon avec rcctl.

#!/bin/sh
#
# $OpenBSD: duniter.rc,v 1.0 2017/11/08 17:58:46 Thuban$

daemon="/var/duniter/duniter/bin/duniter"
daemon_user="_duniter"

. /etc/rc.d/rc.subr

rc_start() {
        ${rcexec} "${daemon} ${daemon_flags} start"
}

rc_stop() {
        ${rcexec} "${daemon} ${daemon_flags} stop"
}


pexp="node: duniter.*"
rc_reload=NO

rc_cmd $1

La suite, c'est comme n'importe quel service sous OpenBSD :

  • Activer le service : "rcctl enable duniter_daemon"
  • Démarrer le noeud : "rcctl start duniter_daemon"
  • Arrêter le noeud : "rcctl stop duniter_daemon"

Pour avoir des infos sur duniter, vous pouvez lancer :

su -l _duniter -c "/var/duniter/duniter/bin/duniter logs"

N'est-ce point merveilleux ? :

2017-11-09T19:00:19+01:00 - info: Pulling blocks from the network...
2017-11-09T19:00:22+01:00 - info: Block resolution: 0 potential blocks after current#67928...
2017-11-09T19:00:22+01:00 - info: Will pull blocks from the network in 0 min 20 sec
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✔ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: POST Peer LFoG1wupku#67905
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✘ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - error:  httpCode=400, ucode=2023, message=Peer document already known
2017-11-09T19:00:26+01:00 - warn: Could not reach duniter.fiat-tux.fr:10901
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:27+01:00 - info: ✘ PEER LFoG1wup

Voir aussi la documentation d'installation

Vous pouvez activer l'interface web ainsi.

./bin/duniter plug duniter-ui@1.4.x 
sed -i "s/duniter\\//..\\/..\\/..\\/..\\//g" node_modules/duniter-ui/server/controller/webmin.js

Cependant, j'ai tenté de modifier le fichier /etc/rc.d/duniter_daemon pour mettre "webstart" au lieu de "start", mais il ne semble pas trouver le module duniter-ui dans ce cas, donc ça ne fonctionne pas. Une histoire de chemin d'accès je suppose :/
Mais vous pouvez toujours lancer le noeud duniter et son interface web après vous être connecté avec le compte _duniter.
Si vous avez activé l'interface web, au lieu d'ouvrir et rediriger des ports sur votre serveur, créez un tunnel ssh ainsi à partir de votre ordinateur de bureau :

ssh -L 9999:127.0.0.1:9220 utilisateur@votreserveur.com

Ensuite, sur votre ordinateur, ouvrez un navigateur à l'adresse http://localhost:9999 pour voir l'interface de duniter :

Une fois le serveur configuré, je vous conseille de désactiver les connexions vers le compte _duniter

# usermod -s /sbin/nologin _duniter

Conclusion
Plus je m'y intéresse, plus je trouve cette alternative intéressante. Le seul, (mais vraiment le seul) point sur lequel je m'interroge, c'est le côté public de toutes les transactions. Je n'ai pas envie de savoir ce que vous achetez, ni de publier publiquement à qui je donne des sous. Par contre, côté vitesse de calcul, rendement énergétique et toute la théorie du Dividende Universel, je suis conquis. Et vous? :)

Vus : 225
Publié par Thuban : 198