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.
Table des matières
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.
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.
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 !
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.
Ensuite, dites à votre terminal de se placer avec les bons droits, dans le bon répertoire :
source $HOME/.cargo/env
Installez de la même manière nigthly :
rustup toolchain install 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
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
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
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
Laissez le temps au temps, et votre terminal compiler et démarrer le 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
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.
Rendez-vous dans l’onglet testnet faucet et demandez des MAS en fournissant votre adresse Massa :
Vérifiez ensuite sur le testnet la bonne réception des fonds, avec l’explorer testnet 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
Il faudra ensuite patienter un petit peu, le temps que la transaction (appelée l’opération) soit validée :
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>
Et maintenant, il ne restera plus qu’à attendre : votre roll ne sera en effet pas immédiatement actif.
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.
Vous pourrez suivre vos récompenses testnet à l’aide de l’explorer dédié ou de la commande wallet_info
, comme d’habitude.
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 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 !