Massa Network, la blockchain du peuple ? Tout ce que vous devez savoir sur le futur de la décentralisation

Massa Network se lance sur le testnet, et les plus curieux d’entre vous pourraient bien profiter de l’opportunité pour prendre position sur l’un protocole novateur qui cherche à réinventer l’univers de la blockchain. Si vous êtes un peu perdus face à ces multiples blockchains du Web3 qui disent vouloir révolutionner la data on chain, pas de panique : on vous présente aujourd’hui un détail technique de Massa et de sa vision d’une blockchain « scalable et décentralisée », selon les mots du projet. Alors, partants pour mettre les mains dans le cambouis et lancer votre propre nœud complet Massa sur le testnet ? C’est parti, je vous explique tout.

Cet article n’est pas sponsorisé : il s’inscrit dans mes expérimentations spontanées dans le monde bizarre des testnets de projets blockchain naissants, menées de façon totalement degen.

Massa Network, la blockchain qui n’est pas qu’une blockchain

Massa repose sur une version retravaillée des historiques DAG (Directed Acyclic Graphs) : schématiquement, dans ce type de réseau, toutes les données de changement d’état des smart contracts et des changement de possession des jetons du réseau sont stockées, mais il n’y a à la base pas de blockchain unique à proprement parler. Il s’agit surtout d’une infrastructure novatrice pour stocker la donnée de façon décentralisée, tout en visant une haute efficience et des capacités en terme de transactions par seconde bien supérieures aux blockchains de première génération.

Graphe Orienté Acyclique DAG
Un exemple de graphe orienté acyclique, ou DAG (Wikipédia).

Il n’existe donc pas de blockchain à proprement parler dans un DAG, seulement des nœuds qui permettent aux usagers de valider que les règles locales de la cryptomonnaie émise sur le réseau et de ses contrats intelligents ont été respectées. Chaque transaction est alors un nœud (sommet) du graphe. L’avantage, par rapport à la structure en arbre des blockchains, est qu’il est beaucoup plus rapide de parcourir et de traiter les données. Le problème des plus courts chemins – trouver le chemin le plus court entre deux sommets – est ainsi résolu de façon linéaire.

Massa introduit donc sa variante du DAG, avec une architecture appelée Blockclique, une configuration technique présentée comme une extension du monde classique de la blockchain. Selon le white paper technique du projet détaillant les atouts du protocole, cette architecture permet une création et une validation de multiples blocs en parallèle. Blockclique est donc optimisé de façon à ce que chaque bloc b puisse être soumis au réseau puis validé indépendamment de tous les autres, mais toujours au sein d’une macro-structure prenant la forme de threads τ interdépendants contenant les données compactées et validées des autres blocs.

Pour rappel, un thread désigne normalement le segment d’un processus, ce qui signifie qu’un processus peut avoir plusieurs threads et que ces multiples threads sont contenus dans un processus. Ici, c’est donc approximativement la même chose : chaque thread τ est un segment du processus de validation et de sécurisation du réseau Massa, contenant des blocs qui lui sont propres.

Ainsi, Massa se repose sur une forme de sharding : les transactions contenues dans les blocs créés en parallèle sont toujours compatibles entre elles. Ainsi, un block b inclus dans un thread τ ne peut intégrer qu’un type de transactions : celles avec des entrées (inputs) assignées à ce même thread τ, tandis que les sorties (outputs) peuvent venir de n’importe quel autre thread.

Détail technique du Massa Network

Et c’est là que le mécanisme de DAG prend tout son sens : dans l’organisation classique de la plupart des blockchains modernes, tenter d’imposer une création et une validation des transactions en parallèle pourraient signifier que le réseau verrait ses ressources purement et simplement dégradées. Pour éviter cela, Massa ne repose pas sur un sharding de son réseau de nœuds validateurs, puisque chacun de ces nœuds va produire et vérifier les blocs de chacun des différents threads. Ce sont bien les threads qui sont liés les uns aux autres au sein de Massa.

En résumé, l’architecture Blockclique se targue d’être une sorte de mix entre les blockchains classiques, un DAG résistant aux attaques Sybil et un modèle de consensus totalement novateur : le réseau est bien déployé au final sur un ledger contenant des blocs et des transactions classiques, mais sous une modélisation nouvelle reposant aussi sur un modèle incitatif et des règles de consensus toutes neuves.

Comment faire tourner un node Massa Network

Maintenant que vous êtes au point sur les fondations techniques du Massa Network, et si vous y participiez activement ? En effet, vous pouvez contribuer à la sécurisation du réseau – du moins, dans sa version de test actuelle, en testnet.

Si le projet de Massa vous parle et que vous souhaitez contribuer, n’hésitez pas à vous référer au wiki officiel sur leur site… ou à me suivre, puisque nous allons rapidement et en quelques clics construire ensemble un noeud validateur pour Massa, mais aussi staker quelques jetons testnet pour tester la bête ! Prêts ? C’est parti !

Le Wiki du Massa Network

Si vous souhaitez simplement tester le déploiement automatisé d’un nœud Massa en un clic, parce que la flemme vous écrase ou parce que le staking ne vous intéresse pas, vous pouvez télécharger directement l’exécutable correspondant à votre système d’exploitation sur le wiki précédemment évoqué.

Si vous êtes plutôt du genre à mettre les mains dans le cambouis, suivez-moi, et allons-y gaiement !

Installer les pré-requis pour lancer un node Massa Network

La documentation technique du projet précise qu’il vous faudra préférentiellement un ordinateur doté de 4 cœurs et de 8 GB de RAM pour faire tourner un nœud. Pour les besoins de ce test, j’ai procédé à la compilation d’un node testnet Massa sur un Apple mini M1.

Pour commencer, ouvrez une fenêtre de terminal, et commençons à installer les différents outils qui nous seront utiles. Commencez par entrer la commande suivante pour installer les utilitaires liés au langage de programmation Rust et donc nous allons avoir besoin :

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

Il vous faudra confirmer le choix numéro 1 (pour une installation classique) lorsque cela vous sera demandé, et voilà : votre terminal va télécharger et installer le compilateur Rustup et son gestionnaire de paquets Cargo.

Téléchargement du compilateur Rustup et de Cargo

Ensuite, dites à votre terminal de se placer avec les bons droits, dans le bon répertoire :

source $HOME/.cargo/env
Installation de Rustc

Installez de la même manière nigthly :

rustup toolchain install nightly
Installation de Nightly

Imposez son choix par défaut une fois qu’il est installé :

rustup default nightly

Vérifiez la version de Rust qui fonctionne maintenant sur votre ordinateur :

rustc --version
Vérification de la version de Rustc

Et téléchargez le répertoire Github du Testnet du projet Massa avec la commande suivante :

git clone --branch testnet https://github.com/massalabs/massa.git
Récupération du client Massa depuis Github

Faire tourner un nœud Massa Network

Maintenant que vous avez récupéré et installé tout ce dont vous aviez besoin pour vous lancer dans la construction de votre node Massa, il ne reste plus qu’à passer aux choses sérieuses !

Démarrez votre node à proprement parler, en allant d’abord vous placer dans le répertoire ad hoc avec la commande suivante :

cd massa/massa-node/

Puis lancez le node, en tapant :

cargo run
Compilation et lancement du node Massa

Laissez le terminal compiler et démarrer le node : il vous affichera un successful bootstrap quand tout sera opérationnel.

Ensuite, ouvrez un nouveau terminal, que nous allons dédier au fonctionnement du client Massa à proprement parler. Il peut être nécessaire de ré-entrer les commandes précédentes dans ce nouveau terminal pour commencer :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup toolchain install nightly
rustup default nightly

Placez-vous ensuite dans le répertoire du client Massa, à l’aide de la commande suivante :

cd massa/massa-client/

Puis compilez le client et lancez-le :

cargo run --release
Compilation et lancement du client Massa

Laissez le temps au temps, et votre terminal compiler et démarrer le client Massa.

Lancement effectif du client Massa

Une fois que c’est fait… C’est parti !

Comment profiter du Massa Network

Nous allons maintenant créer un premier wallet pour interagir avec le réseau Massa, puis nous lancer dans le staking pour sécuriser le réseau.

Comment créer un wallet pour le Massa Network

Pour créer votre premier wallet Massa en ligne de commande, rien de compliqué : utilisez la commande suivante.

wallet_generate_private_key

Vous obtiendrez une message standard une fois que votre paire clé privée/clé publique et votre adresse de réception auront été générées.

Generated 27af8PhcKN73YWoi73ubKj1m7ETRaepTcrdADhp76PARf7xaAD address and added it to the wallet

Vérifiez l’adresse de réception et toutes les informations sensibles de votre wallet avec la commande suivante :

wallet_info
Récupération des infos du wallet créer avec la commande wallet_info

Et vous voilà fin prêts pour stocker vos premiers MAS, la cryptomonnaie du réseau Massa !

Comment récupérer des MAS sur le testnet

Pour pouvoir récupérer gratuitement des MAS, rendez-vous dans le groupe Discord officiel du projet Massa, en suivant l’invitation officielle.

Validez ensuite votre accès au Discord dans le canal de bienvenue pour avoir accès aux autres canaux du groupe.

Les différents canaux du Discord de Massa Network

Rendez-vous dans l’onglet testnet faucet et demandez des MAS en fournissant votre adresse Massa :

Récupération de jetons MAS en donnant une adresse Massa

Vérifiez ensuite sur le testnet la bonne réception des fonds, avec l’explorer testnet Massa :

Vérification de la réception des jetons MAS dans un explorer de blockchain Massa

Vous voilà prêts pour vous lancer dans le staking à proprement parler, et contribuer à la sécurisation du réseau Massa !

Comment faire du staking sur Massa avec votre node

Dans l’univers crypto de Massa, il vous faudra au moins 100 MAS pour commencer à staker sur votre nœud testnet. 100 MAS sont appelés un « roll ».

A chaque thread, des adresses Massa sont sélectionnés aléatoirement pour créer des blocs, selon le nombre de rolls qu’elles possèdent. Chaque roll peut donc être acheté et revendu contre des MAS.

Mais comment acheter des rolls pour participer au staking sur Massa, et récolter des récompenses ? Voyons cela ensemble !

Acheter des rolls

Comme vous allez le découvrir, acheter des rolls sur Massa est en définitive assez simple. Vérifiez l’adresse de votre wallet, dans la fenêtre du client Massa, avec la commande :

wallet_info

Et ensuite,

buy_rolls <votre_adresse> <nombre_de_rolls_à_acheter> <frais>

blabla, ce qui donnera pour nous, en ne payant aucun frais et en achetant un roll :

buy_rolls 27af8PhcKN73YWoi73ubKj1m7ETRaepTcrdADhp76PARf7xaAD 1 0
Achat d'un roll en ligne de commande sur Massa Network

Il faudra ensuite patienter un petit peu, le temps que la transaction (appelée l’opération) soit validée :

Vérification de l'achat d'un roll sur Massa

Et maintenant que vous avez reçu votre premier roll, en avant vers le staking de MAS !

Staker des Rolls

Pour pouvoir staker votre roll, il va vous falloir donner l’instruction au client Massa d’autoriser vos clés privées à participer au staking, en l’inscrivant sur la whitelist du projet. Récupérez le détail de vos clés privées rattachées à votre wallet Massa en tapant la commande de suivi du wallet :

wallet_info

Puis utilisez la commande suivante en ajoutant votre propre clé privée :

node_add_staking_private_keys  <votre_clé_privée>
Ajout de l'autorisation du staking avec les clés privées du wallet Massa

Et maintenant, il ne restera plus qu’à attendre : votre roll ne sera en effet pas immédiatement actif.

Attente de la validation du roll acheté sur Massa

Il ne sera intégré au staking de Massa qu’après une période de latence de 3 cycles de 128 périodes, où chaque période correspond à 32 blocs (soit à 16 secondes). En résumé, votre staking sera effectif après à peu près 1 heure et 40 minutes.

Le roll est validé sur Massa Network

Vous pourrez suivre vos récompenses testnet à l’aide de l’explorer dédié ou de la commande wallet_info, comme d’habitude.

Vérification des premières récompenses de staking sur le réseau Massa

Vendre des Rolls

Dans l’hypothèse où vous souhaiteriez récupérer vos rendements, ou tout simplement arrêter de staker vos MAS, vous pouvez le faire avec la commande inverse sell_rolls, sous la même forme :

sell_rolls <votre_adresse> <nombre_de_rolls> <frais>

Confirmer votre participation au Testnet Staking Reward Program

Comme souvent avec les programmes blockchain en testnet, le projet souhaite inciter les développeurs et les curieux à se lancer et à aider le réseau : si vous participez au testnet de Massa, vous pourrez ainsi concourir pour une récompense en jetons MAS réels, lorsque le réseau se lancera réellement en mainnet dans le courant de l’année 2022. Pensez simplement à bien valider votre participation à ce programme appelé le testnet staking reward program.

Pour ce faire, rendez-vous dans le canal testnet-rewards dans le Discord du projet, et postez un message quelconque.

Un message du MassaBot pour vous inscrire au programme d'incitation de Massa

Un bot Massa vous écrira avec quelques instructions personnalisées : il vous faudra utiliser une commande spécifique dans votre terminal dédié au client Massa.

node_testnet_rewards_program_ownership_proof votre_adresse_de_staking (votre numéro d'identification Discord)

Le terminal vous renverra une commande complexe qu’il suffira de copier-coller au robot Massa pour finaliser votre inscription… et qui sait, peut-être gagner de véritables MAS lors du lancement du mainnet, en remerciement pour vos efforts !

Mettre à jour votre node et votre client Massa

Pour mettre à jour votre installation, rien de compliqué : vérifiez que Rust et ses outils sont à jour, ainsi que la branche testnet du projet Massa depuis Github, à l’aide des commandes suivantes :

rustup default nightly
rustup update
cd massa/
git stash
git remote set-url origin https://github.com/massalabs/massa.git
git checkout testnet
git pull

Voici donc venir Massa et son projet de blockchain réinventée, scalable et vérifiable par tout un chacun. Son modèle économique reste naturellement à éprouver, puisque son produit ne se teste pour l’instant qu’en testnet, mais nul doute que les curieux à l’aise techniquement percevront sans mal les horizons novateurs offerts par cette architecture solide et originale.

Vous voilà désormais un peu mieux armé pour vous lancer et aider Massa à décentraliser la façon dont les flux de données circulent dans notre cryptosphère blockchainisée, aux mains de monopoles parfois bien éloignés des idéaux des débuts. Pour participer à la riposte, rendez-vous sur le Telegram de Massa Network !

Grégory Mohet-Guittard

Je fais des trucs au JDC depuis 2018. En ce moment, souvent en podcast et la tête dans le nuage.