Guide d’installation d’un noeud et miner sur le réseau Grin par Vivien Boucher, étudiant à l’ESGI

16
6849

Vivien Boucher est étudiant en bachelor « blockchain » à l’ESGI, un cursus créé par Eureka Certification, organisme de formation certifié et certifiant sur le sujet depuis 2014. Il est en alternance chez PolkaTulk et travail sur les questions de copyrights via le projet www.scenso.tv. Retrouvez l’actualité de Eureka sur Twitter, ainsi que celle de l’ESGI, découvrez les grandes conférences organisées par Eureka sur YouTube. Pour vous former à la « blockchain », contactez l’équipe pédagogique de Eureka ou bien directement l’administration de l’ESGI.

Le 2 août 2016, sur les heures de 4h30 du matin, un anonyme utilisant le surnom de Tom Elvis Jedusor partageait avec la communauté de recherche Bitcoin, un document intitulé « MimbleWimble ». MimbleWimble n’est pas seulement qu’une référence à Harry Potter, mais une approche nouvelle par rapport à celle de Bitcoin. Le fichier texte propose une architecture différente basée sur des échanges de valeurs via les Confidential Transaction et une scalabilité de l’historique de transaction.

MimbleWimmble pourrait voir le jour sur Bitcoin via un soft-fork, ainsi que sous forme de sidechain. Mais il peut également être implémenté comme une chain à part entière. C’est vers là fin de l’année 2016, qu’un certain utilisateur, Ignotus Peverell (encore une référence à Harry Potter), partageait à la communauté son implémentation de MimbleWimble appelé « Grin » via Github.

L’expérimentation du réseau Grin a été lancé le 15 janvier 2019, et la nouvelle à de quoi être excitante, puisque, depuis lors, il est possible de participer à la sécurité du réseau tout en minant.

 

Disclaimer et pré-requis

Grin est un réseau expérimental, n’y investissez uniquement ce que vous pouvez vous permettre de perdre.

Il vous faudra posséder une carte graphique avec RAM supérieure à 6GO (Oui c’est énorme) avec les pilotes Nvidia/AMD à jour !

Je vous conseille de consulter la liste des matériels conseillés en fonction de l’algorithme de consensus Cukoo Cycle ici.

Grin

Comment créer un noeud sur le réseau Grin ?

Si vous êtes sur linux il vous suffit de télécharger l’application Grin disponible sur le dépôt git des devs ici. (Linux testé avec Ubuntu 18.04 et la version 1.0.0 de GRIN).

Vous pouvez également compiler les applications fournies dans ce tuto en vous reportant à la doc dans le dépôt git pour plus de sécurité.

L’application Grin vous permet de gérer votre wallet et de faire tourner un noeud sur le réseau P2P Grin pour participer à la sécurisation du réseau et à la validation des transactions sur le réseau (mining).

Une fois téléchargée, placez l’archive dans un nouveau dossier, disons :
/home/0tp/grin

Décompresser l’archive : tar -zxvf
grin-v1.0.0-479973573-linux-amd64.tgz

Puis lancer l’application avec : ./grin

Grin

Une fois l’application lancée il faut attendre quelques minutes que la blockchain soit synchronisée sur votre machine. Et voilà nous disposons désormais d’un noeud sur le réseau P2P Grin !

Vous pouvez modifier les éléments concernant la configuration de votre noeud (serveur) dans le fichier “grin-server.toml” se situant dans le répertoire : /home/0tp/.grin/main

N’oubliez pas 1. de faire un backup des fichiers de configuration 2. de lire la documentation et de vous référer au github officiel.

 

Comment créer un wallet/portefeuille Grin ?

Toujours dans notre dossier grin où nous avons désormais notre noeud qui tourne, nous allons créer un wallet où seront versés nos précieux Grin si nous avons le ticket (graph) gagnant !

Pour initialiser le wallet : ./grin wallet init

Maintenant, il vous est demandé un mot de passe, il permet de chiffrer votre portefeuille sur votre machine. N’oubliez pas de conserver bien au chaud votre mot de passe ! Une fois saisie, une seed de 24 mots vous est fournie, il faudra également l’écrire sur un support physique ou la sauvegarde pour ne pas la perdre ! Il vous permettra de récupérer votre portefeuille en cas de perte du mot de passe ou si votre disque dur venait à rendre l’âme.

Pour connaître le solde de votre compte, ouvrir un nouveau terminal et entrer :
./grin wallet info

Grin

Désormais nous avons : Un noeud Grin qui est synchronisé avec le réseau, un portefeuille connecté à votre noeud sur le réseau Grin, il ne nous reste plus qu’à nous mettre au travail pour tenter de récolter quelques précieux Grin.

 

Comment récupérer un portefeuille à partir d’une phrase de récupération (SEED) ?

Avant toute chose, n’oubliez pas que l’informatique n’est pas une science exacte et que du jour au lendemain votre système ou votre matériel peut tomber en panne, et si vous n’avez pas sauvegardé votre précieuse SEED vous pouvez dire adieu à vos jetons Grin !

C’est bien beau de sauvegarder notre portefeuille mais avant de le remplir il vaut s’assurer que nous serons en capacité de le restaurer en cas de force majeur.

Pour réimporter votre wallet a partir d’un nouveau pc il vous faudra re-télécharger l’application grin puis réaliser les étapes suivantes :
./grin wallet init

Nous créons un portefeuille (que nous jetterons plus tard, cette opération ne sert qu’à créer les fichiers de configuration qui servent à la configuration du portefeuille). Ensuite nous allons utiliser la commande : ./grin wallet recover

L’application vous signale qu’une seed existe déjà et qu’elle va être renommée, ensuite elle va restaurer votre portefeuille à partir de la SEED, puis vous demander un mot de passe pour chiffrer la SEED en local sur votre ordinateur.

Grin

Un petit « ./grin wallet info » et notre portefeuille est de retour !

Grin

 

Et maintenant, comment miner du Grin ?

Le mining est une grande loterie se déroulant toutes les 60 secondes (elle recommence à chaque nouveau bloc), où chacun des mineurs tente de résoudre une énigme cryptographique. Celui qui apportera la meilleure réponse se verra récompenser de 50 Grin (récompense de bloc) ainsi que les frais de transaction ayant transités sur le réseau au moment de la validation du bloc. Vous pouvez choisir d’y participer seul ou en groupe, les contraintes étant les suivantes :

Si vous choisissez de miner tout seul, vous aurez très peu de chance de trouver le résultat mais vous empochez l’intégralité de la récompense.

Au contraire si vous choisissez de miner en pool, votre récompense sera partagée entre tous les membres de la pool au prorata du nombre de solutions proposées dans le temps imparti.

 

Comment configurer mon mineur Grin (SOLO ou POOL) ?

Pour miner sur Grin il faut télécharger l’application de mining fournie par l’équipe de développement à l’adresse suivante.

Encore une fois, placez l’archive dans un nouveau dossier, disons : /home/0tp/grin-miner

Décompresser l’archive : tar -zxvf
grin-miner-v1.0.1-480546870-linux-amd64.tgz

Nous obtenons 3 fichiers :
grin-miner : notre application de mining ;
grin-miner.toml : le fichier de configuration ;
plugins : dossier qui contient les différents plugins correspondants aux différentes configurations possibles.

Dans un premier temps le fichier qui nous intéresse est le fichier de configuration du mineur : grin-miner.toml

Ouvrir le fichier et décommenter les lignes en fonction de votre carte graphique. Pour Nvidia c’est à partir de la ligne ligne 104.

[[mining.miner_plugin_config]]
plugin_name = "cuckaroo_cuda_29"
[mining.miner_plugin_config.parameters]
device = 0
cpuload = 1
ntrims = 176
genablocks = 4096
genatpb = 128
genbtpb = 128
trimtpb = 512
tailtpb = 1024
recoverblocks = 1024
recovertpb = 1024

Et pour ceux qui possèdent du matériel Amd, on décommente à partir de la ligne 127.

[[mining.miner_plugin_config]]
plugin_name = "ocl_cuckaroo"
[mining.miner_plugin_config.parameters]
platform = 1
device = 0

Vous pouvez également choisir de miner avec votre processeur, mais l’algorithme de minage est nettement plus performant avec le matériel graphique. Pour le processeur : n’hésitez pas à jouer avec le nombre de threads, si l’application crash c’est que vous avez surement été trop gourmand lors de vos choix de configuration et qu’il faut modifier les valeurs à la baisse ! Donc pour activer le mining avec votre processeur, il suffira de décommenter la ligne 79.

[[mining.miner_plugin_config]]
plugin_name = "cuckaroo_cpu_compat_29"
[mining.miner_plugin_config.parameters]
nthreads = 4

Pour les SOLO mineur la configuration réseau par défaut suffit (mis à part si vous avez modifié le port d’écoute de votre noeud, dans ce cas il vous faudra éditer les ports dans ce fichier de configuration pour les faire correspondre avec vos précédentes modifications).

Maintenant il faut dire à notre portefeuille de se connecter à notre serveur (noeud) :

./grin wallet listen

Cette commande dit à notre wallet d’écouter le noeud pour recevoir des transactions entrantes si l’on venait à trouver un bloc pour que le réseau nous verse la récompense.

Pour les mineurs en POOL il faut éditer les lignes suivantes toujours dans le même fichier (exemple de configuration pour la pool grinmint.com).

stratum_server_addr = "eu-west-stratum.grinmint.com:4416"
stratum_server_login = "monemail@gmail.fr/nomdumineur"
stratum_server_password = "monmotdepasse"
stratum_server_tls_enabled = true

 

Pour les Solo & Pool mineur

Enregistrer les modifications et fermer le fichier.

Pour finir nous lançons enfin le mineur :

./grin-miner

Grin

Si vous avez correctement suivis les étapes et laissé vos différents services ouverts dans d’autres terminaux vous devriez obtenir un résultat similaire au miens.

 

Pour les mineurs en POOL

Vous pourrez consulter vos statistiques sur le site de votre pool, par exemple sur grinmint.com :

Grin

Concernant l’interface ne vous faites pas de soucis, l’on retrouve les mêmes informations d’une POOL à l’autre.

1. Current Hashrate : Votre puissance de calcul actuelle.
2. Immature balance : Vos gains potentiels, la pool attend que le réseau ait validé plusieurs blocs afin de confirmer vos gains.
3. Average Hashrate : Une moyenne de votre puissance de calcul
4. Unpaid balance : Votre balance disponible sur la pool.
5. Active worker : Le nombre d’instances de mining lancées (1 mineur = 1 worker).
6. Shares : Les / sont des séparateurs de colonne, dans la colonne de gauche les réponses valides envoyées à la POOL, ensuite les réponses validées par la pool, puis en dernier les réponses rejetées par la POOL. Il arrive que les réponses envoyées à la pool soient corrompues, soit parce que vous avez trop tardé à l’envoyer et qu’à sa réception l’énigme cryptographique ait déjà été résolue, ou il est également possible que votre matériel instable (suite à un overclocking) ait envoyé une mauvaise réponse.

Félicitation, désormais vous participez activement à la décentralisation et la sécurisation du réseau Grin ! Si vous arrivez à trouver un bloc, votre wallet ou celui de votre pool sera crédité de 50 Grins.

Pour les utilisateurs de Windows 7 & 10 vous serez obligés de passer par une POOL, l’application Grin ne disposant pas encore de version Windows.

Concernant la gestion de votre portefeuille, je ne peux que vous recommander d’installer une machine virtuelle sur Linux (Debian ou Ubuntu) et de gérer votre compte depuis cette machine en vous reportant à la partie précédente de ce tutoriel.

Téléchargez l’application GrinGoldMiner.

Décompressez l’archive, puis exécutez le fichier GrinGoldMinerCLI.exe (si votre antivirus commence à s’affoler ajoutez une exception sur le dossier contenant l’executable).

Une interface va se lancer, il vous suffit de suivre les étapes pour configurer le mineur. Concernant grinmint.com cette configuration fait office d’inscription au site.

Grin

Si vous avez besoin de changer un paramètre, il vous suffit d’éditer le fichier config.xml contenu dans le même répertoire que GrinGoldMinerCLI.exe.

Pour lancer le mineur, relancez GrinGoldMinerCLI.exe.

Grin

Si vous avez correctement suivi les étapes vous devriez obtenir un résultat similaire aux miens.


 

Sources

https://github.com/mimblewimble/grin
https://github.com/mimblewimble/docs
https://github.com/mimblewimble/docs/wiki/how-to-mine-grin
https://github.com/mimblewimble/docs/wiki/How-to-use-the-Grin-wallet
https://github.com/mimblewimble/grin-miner

Mineur Windows :
https://github.com/mozkomor/GrinGoldMiner/releases

Pools (testées) :
https://grinmint.com/pages/index.html
https://grinmint.com/pages/help.html

Pool (non testée) :
https://mwgrinpool.com/login