Tutoriel - Création d'un noeud sur le réseau Massa

Tutoriel - Création d'un noeud sur le réseau Massa

Nous verrons dans ce tutoriel comment créer et mettre en ligne votre premier noeud sur le réseau Massa. Pas de panique on vous explique tout de A à Z !

Avant propos

Ce document a été écrit par Yacine Bouqsi en collaboration avec cryptodin. Vous pouvez retrouvez Yacine sur les réseaux :

L’adresse bitcoin pour ceux qui souhaite faire un don : 3JgCxYttLXtxdAXvSXUK1ahr1XKau6aoPB

Pour des dons en ETH/USDT (ou autre ERC-20) : 0x5EE29196B09C0962997c1be4Fd5018BBD642D18e

Introduction au sujet de Massa Labs

Massa a pour objectif de devenir la blockchain la plus décentralisée au monde, sans pour autant délaisser la sécurité et les performances de son réseau. En effet, Massa est entièrement gérée par la communauté et peut accueillir plusieurs milliers d’utilisateurs (nœuds) qui souhaitent participer à son bon fonctionnement. D’autant plus que vous n’avez pas besoin de déléguer un certain nombre de tokens pour faire partie de cet écosystème, ce dernier est accessible à tous et gratuitement. Il vous suffit d’avoir un simple ordinateur ainsi qu’une connexion Internet fiable et le tour joué.

Mais ce n’est pas tout, Massa est également une blockchain dite “hyper scalable”, grâce à son système de “multithreaded graph” (détaillé plus bas) qui est capable de supporter 10 000 transactions par seconde, tout en garantissant un niveau de sécurité exemplaire. Ce qui est bien plus performant que le réseau Bitcoin ou encore Ethereum (bien qu’ils restent les leaders du marché).

L’intérêt de faire tourner un node ?

Certaines blockchains utilisent la validation de preuve de participation (PoS) pour sécuriser le réseau et valider les transactions incluses dans chaque bloc. Ainsi, les participants à la preuve de participation (Proof of Stake) font tourner un nœud sur le réseau pour valider les transactions et créer des blocs et, en échange de l'exécution de ce travail, gagner des récompenses de bloc. Actuellement en faisant tourner un nœud dans le réseau de Massa Labs durant cette période de testnet, vous avez la possibilité de gagner des récompenses qui seront distribués au lancement du mainnet.

Le coût actuel de fonctionnement + le temps estimé du paramétrage

Pour mettre en ligne notre nœud, il faudra débourser entre 6 et 30€ par mois selon la configuration du VPS. Le temps de l’installation de l’environnement et la mise en ligne du nœud est d’une heure maximum.

Configuration requise

La philosophie de Massa est d'être le plus décentralisé possible. Pour atteindre cet objectif, Massa vise à avoir des exigences matérielles faibles afin que de nombreuses personnes puissent exécuter des nœuds. En ce moment, 4 cœurs et 8 Go de RAM devraient suffire pour exécuter un nœud. À mesure que le nombre de transaction augmente, il se peut que cela ne soit plus suffisant. En fin de compte, Massa prévoit que la mainnet requiert un ordinateur de bureau avec 8 cœurs, 16 Go de RAM et 1 To de disque.

Le choix d’un VPS, pourquoi ?

Vous pouvez utiliser un VPS pour exécuter un nœud. Les avantages de VPS sont qu'ils ont une haute disponibilité et sont faciles à configurer. Les inconvénients sont que les nodes tournant sur un VPS peuvent conduire à une centralisation si beaucoup de nodes s'exécutent chez le même fournisseur (par exemple, AWS).

On prendra pour cette démonstration un VPS de chez Contabo.

Une fois votre commande pris en compte, vous devriez recevoir vos codes d’accès assez rapidement.

Sans plus attendre, commençons l’installation.

Installation d’un client SSH‍

Nous allons utiliser MobaXterm comme client SSH. Vous pouvez le télécharger à cette adresse.

On crée une nouvelle session en cliquant en haut à gauche sur Session.

On sélectionne ensuite SSH toujours en haut à gauche.

Vous entrez l’IP de votre VPS ainsi que le nom d’utilisateur « root » dans la partie Remote Host et Specify Username.

Vous pouvez cliquer sur Ok.

Après cela on vous demandera de tapez votre mot de passe. Si vous voyez que rien ne s’affiche à l’écran lors de la saisie c’est normal car la saisie est masquée.

Vous voilà dans votre serveur.


On procède ensuite aux mises à jour des paquets et à l’installation de RUST.

On tape la commande :

sudo apt update && sudo apt upgrade –y

On installe les librairies requises avec la commande suivante :

sudo apt install pkg-config curl git build-essential libssl-dev

On installe RUST :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

On configure après l’installation de RUST le PATH :

source $HOME/.cargo/env

Puis l’installation de nightly :

rustup toolchain install nightly

On met nightly par défaut :

rustup default nightly

Vous avez désormais la configuration nécessaire pour commencer le paramétrage de votre node !

Installation du node

On exécute ces deux commandes une par une :

cd $HOME
git clone --branch testnet https://gitlab.com/massalabs/massa.git

Nous venons d’installer les packages requis et de cloner le repo Massa. Passons à la mise en route du node. Mais avant cela nous allons procéder à la mise à jour du node.

Pour cela, aller au répertoire massa/ en faisant :

cd massa

Et tapez les commandes suivantes :

git stash
git checkout testnet
git pull

Ensuite allons changer de répertoire pour aller à /massa/massa-node en faisant :

cd massa/massa-node/ si vous êtes à la racine sinon cd massa-node si vous êtes déjà dans le répertoire massa

On lance la commande pour exécuter le node :

RUST_BACKTRACE=full cargo run --release |& tee logs.txt

Une fois l’installation faite vous devriez obtenir comme résultat quelque chose comme :

"Connected to node xxxxxxxxx"

"Connection closed with node xxxx"

"Connected to node xxxxxxxxx"

Nous venons de lancer le node, attaquons-nous au client !


Ouvrir dans un nouvel onglet une connexion à votre serveur (en double cliquant sur l’IP de votre serveur en haut à gauche sur MobaXterm).

On tape les commandes suivantes pour rejoindre le client :

cd $HOME
cd massa/massa-client/

On lance le client :

cargo run --release

Voici le résultat :

On sort du client pour créer notre wallet !

Pour quitter le client on tape la commande suivante dans le client Massa :

exit

On est donc dans notre répertoire massa-client.

On crée notre wallet en tapant la commande :

cargo run -- --wallet wallet.dat

Une fois le wallet crée on retourne au client Massa :

cargo run --release

Vous aurez ensuite accès à votre client Massa avec un wallet généré.

On génère une clé privée et on l’ajoute à notre wallet :

wallet_generate_private_key
TIP: pour gérer vos mots de passe, je vous conseille le logiciel KeePassXC

Commande utile dans le client Massa :

wallet_info

(permet d’avoir les informations liés à votre wallet : adresse, clé privée…)

Nous venons de créer notre wallet et de générer une clé privée. Nous allons maintenant procéder à la demande du faucet.

Demande du faucet sur Discord

Rendez-vous sur le Discord de Massa Labs ici : https://discord.gg/uxzTtDbBHT. Faite la vérification de votre compte. Allez sur le channel #testnet-faucet et envoyez l’adresse de votre wallet.

Vous devriez recevoir 100 MAS

Tapez wallet_info afin de vérifier.

Si vous avez 100 dans Candidate Balance alors c’est bon ! Nous allons passer au staking. Pour staker, vous aurez besoin d’un roll. Vous pouvez acheter un roll pour 100 MAS.

Toujours dans votre client Massa, voici la commande pour acheter un roll :

buy_rolls **************************** 1 0

Remplacer les étoiles (*****) par votre adresse.

Vous avez votre roll, maintenant il faut le mettre en staking.

Pour cela, tapez la commande :

node_add_staking_private_keys ********

Remplacez les étoiles par votre clé privée (private key)

Un temps d’attente de 1h45 environ est nécessaire pour que votre roll passe en active_roll.

Ne fermez rien en attendant !

Faisons router notre nod

Les nodes du réseau Massa doivent établir des connexions entre eux pour communiquer, propager des blocs et des opérations, et maintenir un consensus et se synchroniser tous ensemble.

Pour que le nœud A établisse une connexion vers le nœud B, le nœud B doit être routable. Cela signifie que le nœud B a une adresse IP publique qui peut être atteint depuis le nœud A et que les ports TCP 31244 et TCP 31245 sont ouverts sur nœud B et que la connexion entrante sur ces ports est autorisée par pare-feu sur le nœud B. Une fois une telle connexion établie, la communication via cette connexion est bidirectionnelle.

Chez Massa, les nodes ne sont pas routables par défaut et nécessitent une opération manuelle pour les rendre routable.

Voyons cela.

À la racine de votre serveur, tapez la commande :

ufw allow 31244 && ufw allow 31245

Puis aller au répertoire massa/massa-node/config pour créer/modifier le fichier config.toml.

cd massa/massa-node/config

Pour le créer, voici la commande :

nano config.toml

Le contenu de ce fichier doit être :

[network]
routable_ip = "AAA.BBB.CCC.DDD"

Remplacez les lettres par votre adresse IP public. Pour connaitre votre IP utilisez ce site.‍

Pour sauvegarder faite CTRL+S et pour quitter CTRL+X.

Effectuez une vérification à l’aide de ce site.

Votre node devrait être routable !

S’enregistrer pour le programme de Reward de Massa Labs

Pour rappel, le score maximum est atteint lors de l'exécution du node à la maison ou avec un fournisseur qui n'est pas utilisé pour exécuter d'autres nœuds Massa. Dans notre cas et pour simplifier l'installation de votre côté, nous avons opter pour un VPS. Vous n'aurez donc pas le nombre de points maximum sauf si vous hébergé votre node chez vous. Un détail sur le scoring est détaillé ici.

Nous allons nous rendre sur le channel #testnet-rewards du Discord de Massa Labs.

Réagissez comme indiqué au message de SF.

Vous allez recevoir un message privé de MassaBot.

Il vous suffit donc de copier/coller la commande indiqué dans votre client Massa en remplaçant your_staking_address par votre l’adresse de votre wallet.

Le client Massa vous renverra un message de ce type

SWwgdm91cyBzdWZmaXQgZG9uYyBkZSBjb3BpZXIvY29sbGVyIGxhIGNvbW1hbmRlIGluZGlxdcOpIGRhbnMgdm90cmUgY2xpZW50IE1hc3NhIHJlbXBsYcOnYW50IHlvdXJfc3Rha2luZ19hZGRyZXNzIHBhciB2b3RyZSBs4oCZYRyZXNzZSBkZSB2b3RyZSB3YWxsZXQu

Vous devez copier le message que le client vous renvoie et le coller dans la discussion avec MassaBot. Cela aura pour effet de lié votre compte Discord avec votre adresse et ainsi que votre Node ID. Envoyez ensuite votre adresse IP au Massabot afin qu’il valide la routabilité de son côté.

C’est tout bon !

Félicitation et à bientôt sur le Réseau Massa.