Guide d’installation d’un “validation node” ETH 2.0 avec Prysm sur le testnet Pyrmont

DarkCenobyte
19 min readSep 12, 2020

--

(Je n’ai pas encore changé l’image, mais le guide est mis à jour pour le dernier testnet “Pyrmont” et ne concerne désormais plus Medalla qui est abandonné, dans l’ensemble les procédures sont similaires, mais j’ai mis à jour certaines lignes de commandes dont les paramètres ont légèrement évolué)

La révolution ETH 2.0 approche à grands pas, bien que l’on ignore encore si le mainnet arrivera en 2020 ou 2021, l’accumulation d’ETH dans des wallets en vue de participer au staking se fait de plus en plus remarquer.

Que vous ayez déjà 32 ETH, ou que vous soyez en train de les acquérir, il est probablement déjà temps de se poser des questions sur “Comment faire tourner un Validation Node” afin d’être prêt le jour J.

Je vais vous retransmettre à travers ce guide, comment mettre en place votre nœud de validation ETH 2.0 sur le testnet Pyrmont (ou Medalla, mais ce dernier n’est désormais plus supporté officiellement) avec les outils disponible aujourd’hui (le 29/11/2020).

Mises à jour du guide

  • 15/09/2020 :
    - Mise à jour de certaines parties pour refléter les derniers changements de la version Alpha.25 de Prysm.
    - Ajout d’une annexe expliquant comment mettre à jour son nœud de validation.
  • 29/11/2020 :
    - Correction des lignes de commandes pour utiliser la dernière version de Prysm.
    - Remplacement de Medalla par Pyrmont.

Avant-Propos

Il est important de rappeler que ce guide est valide dans un contexte de “test” utilisant un testnet de l’ETH 2.0, je n’assure pas que ce guide sera encore valide au moment de la sortie de la version finale, les outils comme Prysm étant encore en développement.

Le Testnet est destiné à expérimenter, tester et éprouver la fiabilité des logiciels avant l’heure du déploiement dans le mainnet. En participant à ces tests, vous aidez le protocole et les outils à être éprouvé face aux bugs, … Que vous pourriez rencontrer et rapporter aux développeurs de l’outil.

ETH 2.0 apporte des mécanismes inédits pour apporter une sécurité sans compromis tout en tentant de répondre aux problématiques de scalabilité et de décentralisation, à travers un algorithme de “Slashing” qui vise à punir les nodes qui tenterait de manipuler le réseau pour toucher plusieurs fois une récompense ou encore pour pousser le réseau à ce fork en le manipulant.

J’ai pris le choix de présenter Prysm dans ce guide, mais il est important de savoir que vous avez le choix entre au moins 4 clients différents pour exécuter un nœud de validation ETH 2.0, voici la liste des principaux à l’heure actuelle :

  • Prysm
  • Lighthouse
  • Teku
  • Nimbus
  • Lodestar

Les principaux utilisés étant Prysm et Lighthouse, l’ETH 2.0 souhaite pousser à davantage de variété, mais la documentation et la simplicité de Prysm place aujourd’hui ce dernier en position de leader.

Prérequis

Côté logiciel il vous faudra simplement un navigateur internet avec Metamask.

Côté hardware, il faudra :

  • Une machine (local ou VPS ou serveur) pouvant tourner en continu et être connecté à internet
  • Avec un espace de stockage SSD d’au moins 100 Go (pour le testnet, à l’arrivée du mainnet, il faudra idéalement prévoir 800 Go minimum, idéalement 1,6 TB ou 2 TB pour être tranquille à long terme)
  • 8Go de mémoire vive (4Go doit être possible avec de l’espace SWAP, mais ce n’est pas l’idéal, pour le mainnet prévoyez par sécurité un minimum de 16Go)

Dans le cadre de ce guide, la machine où tournera le nœud sera sous Linux avec la distribution Ubuntu 20.04. Mais plusieurs consignes peuvent s’adapter aux autres systèmes, les outils étant multiplateformes.

Conseils en terme de serveur

Si vous êtes à la recherche d’un serveur qui vous permettra de faire tourner un nœud ETH 2.0, je vous recommande de jeter un œil du côté de ce lien :
https://www.serverhunter.com/?search=FI7-CJG-8ZE

ServerHunter est un service de comparateur de VPS et serveurs dédiés, ce lien devrait vous fournir un filtrage de ce qui me semble fiable afin de déterminer de quoi faire tourner un node sur le testnet. (Pour un usage sur le mainnet je vous suggère de privilégier au moins 400 Go de SSD), ServerHunter dispose également d’un Discord sur lequel vous pourrez suivre des disponibilités de certains serveurs comme les Kimsufi d’OVH étant plus souvent “Out of stock” que disponible (mais dont certains modèles redeviennent disponibles régulièrement pour quelques minutes…).

Il est également utile de se renseigner sur les hébergeurs et leurs services. Tous ne sont pas aussi réactifs, et tous n’ont pas les mêmes services. Aussi, les VPS ont un avantage supplémentaire en terme de flexibilité, qui permet chez certains hébergeurs d’augmenter facilement leur espace disque (attention cependant, la facture mensuelle peut également vite augmenter dans ces conditions, il vaut mieux privilégier une offre avec un bon espace disque SSD de départ). Vous pouvez également regardé du côté des hébergeurs allemands comme Hetzner (réputé mais plus couteux), Contabo (prix imbattable sur le SSD, mais les performances ne sont pas toujours là sur ce point) ou Netcup.eu (mais attention à leurs conditions, un VPS vous engage pour 6 mois, et il est préférable d’utiliser leurs root-server (engagement d’un mois d’avance) pour une tâche qui pourrait devenir gourmande en CPU).

Enfin, il est important d’avoir un serveur sécurisé, ceci sortant un peu du cadre de ce guide, je rappellerais simplement qu’il est important de garder ses machines à jour, d’utiliser un pare-feu (comme ufw sous Ubuntu), et en cas d’usage du SSH, de ne pas garder le port par défaut et de privilégier les connexions à l’aide de clef SSH et non de mot de passe.

Installer la blockchain ETH1 Goerli avec Geth

Afin de fonctionner, le nœud de la blockchain ETH 2.0 des testnets ont besoin d’un nœud de la blockchain ETH1 du testnet Goerli. Puisque cette dernière va prendre un certain temps à s’installer, nous allons commencer par elle, nous pourrons continuer la suite pendant sa synchronisation.

Taper donc les commandes suivantes afin d’ouvrir les ports 30303 en tcp et udp (ports utilisé par Geth) et installer la commande “geth” :

sudo ufw allow 30303/tcp
sudo ufw allow 30303/udp
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

Je vous recommande également d’installer “screen” afin de facilement pouvoir laisser tourner en plan les services de votre testnet :

sudo apt-get install screen

Configurer des services systemd sera préférable pour une installation à long terme ou pour le mainnet, ces derniers permettant de relancer automatiquement en cas de crash un service, ou de les lancer automatiquement au démarrage, mais screen est une solution pratique pour mettre en place une infrastructure de test et consulter rapidement le bon déroulement de chaque outil.

Taper ensuite la commande :

screen -S geth

Puis ensuite:

geth --goerli --datadir="$HOME/Goerli"

Ceci créera automatiquement un dossier Goerli dans votre répertoire utilisateur et commencera à synchroniser la blockchain ETH1 en utilisant le testnet “goerli”.

Afin de laisser cette blockchain se synchroniser tout en passant à l’étape suivante, faite la combinaison clavier suivante :

Appuyé en même temps sur les touches CTRL et A , relâché puis appuyé sur la touche D.

Ceci est un raccourci propre à screen, qui va alors détacher le terminal affiché, puis laisser son contenu tourner en arrière plan. Vous pourrez facilement contrôler vos processus en arrière plan à l’aide des commandes suivantes et en ressortir avec le même raccourcis clavier que précédemment :

screen -ls # Pour afficher les screens détaché
screen -r geth # Pour vous rattacher à un screen

Installer la blockchain ETH2.0 Pyrmont

La Blockchain de l’ETH 2.0 aussi appelé “beacon-chain” est un composant de Prysm, au côté du validateur et de l’optionnel slasher.

Pour l’installer, il suffit de taper les commandes suivantes, encore une fois j’ouvrirais les ports requis dans un premier temps :

sudo ufw allow 13000/tcp
sudo ufw allow 12000/udp
sudo apt-get install -y curl
cd
mkdir prysm && cd prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh

Nous allons de nouveau utiliser screen, avec la commande suivante :

screen -S prysm-beacon

Puis lancer les commandes suivantes afin de commencer à synchroniser la blockchain de Pyrmont:

PUBLIC_SERVER_IP="$(curl -s v4.ident.me)"
./prysm.sh beacon-chain --pyrmont --http-web3provider=$HOME/Goerli/geth.ipc --p2p-host-ip=$PUBLIC_SERVER_IP --accept-terms-of-use

Puis enfin de refaire le raccourcis clavier pour détacher screen (CTRL+A, puis D)

La blockchain Pyrmont va attendre que notre blockchain ETH1 précédemment lancé atteigne un certain block, où commence à apparaitre des entrées utiles pour son fonctionnement puis commencera automatiquement son travail à partir de là.

Pendant ce temps nous allons pouvoir nous consacrer à la partie suivante.

Récupérer 32 GöETH (ETH du testnet Goerli)

Il va maintenant falloir obtenir 32 ETH sur le testnet ETH1 Goerli, pour cela, rien de compliqué et c’est bien entendu gratuit.
Afin d’éviter toute confusion, je vous recommande d’utiliser Metamask et de créer une nouvelle adresse ETH dédié à un usage sur le testnet Goerli.

Ensuite, il vous suffit d’utiliser une des options suivantes :

A- Le Faucet authentifié

Le Goerli Authenticated Faucet, vous demandera de poster un Tweet sur Twitter ou un message public sur Facebook, contenant l’adresse ETH précédemment crée.

Mettre le lien public vers votre message sur les réseaux sociaux dans le champ de ce lien et choisir de recevoir 35 ETH vous permettra de recevoir 35 ETH sur le réseau Testnet Goerli.

B- Le bot du Discord officiel de l’équipe derrière Prysm

Il vous suffit de posséder un compte Discord, afin de rejoindre le serveur avec l’invitation ci-dessus.

Puis de vous rendre dans le channel “#🤑-request-goerli-eth” dédié à cet usage et d’envoyer le message suivant :

!send 0x0000000000000000000000000000000000000000

En remplaçant “0x0000000000000000000000000000000000000000” par l’adresse que nous venons de créer.
Le bot vous enverra alors la somme de 33 ETH (de quoi faire un nœud et couvrir sans problème les gas fees de la transaction en plus), ainsi qu’un lien vous permettant de suivre la transaction.

Au bout de quelques minutes, la transaction sera effective et vous pourrez utiliser vos 32 ETH dans l’étape suivante.

Utiliser un “Launchpad” de test officiel pour faire la transaction de 32 ETH

Maintenant que vous disposez de vos 32 ETH sur Metamask, nous allons utiliser le “Launchpad” Pyrmont officiel fait par la fondation Ethereum, afin de faciliter la participation au testnet en toute sécurité :

Des protections sont présentes en utilisant cet outil pour vous éviter de faire la pire des erreurs possibles : utiliser vos vrai ETH du mainnet au lieu des ETH du testnet Goerli dans la transaction. Ainsi en suivant cet outil, vous ne pourrez qu’utiliser le réseau du testnet Goerli afin d’effectuer la transaction.

De plus, l’outil vous fournira de quoi obtenir une clé sécurisée sur votre serveur que vous pourrez facilement importer avec Prysm (mais également compatible avec Lighthouse, …)

Une fois sur le lien, cliquez sur “GET STARTED”, puis cliquez sur le bouton “Continue” ou “I Accept” aux différentes étapes qui vous expliquent les principes de l’ETH 2.0, du testnet et vous mettent en garde sur l’aspect expérimental du projet à l’heure actuelle.

Une fois sur la page suivante, choisissez “1 Validators”, puis “Linux”.

Rendez-vous ensuite sur le lien suivant :
https://github.com/ethereum/eth2.0-deposit-cli/releases/

Cliquez sur “Assets” sous la dernière version (la plus haute de la liste), puis faite un clic droit sur le fichier se terminant en “-linux-amd64.tar.gz” et “Copier l’adresse du lien”.
Vous obtiendrez une URL comme celle-ci :
https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v0.2.1/eth2deposit-cli-v0.2.1-linux-amd64.tar.gz

Retourner sur votre serveur, puis tapez les commandes suivantes (en remplaçant l’URL ci-dessus, par l’URL que vous avez précédemment copiée après wget et en remplaçant eth2deposit-cli-v0.2.1-linux-amd64.tar.gz par le nom du fichier téléchargé) :

cd
wget https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v0.2.1/eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
tar xvf eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
rm eth2deposit-cli-v0.2.1-linux-amd64.tar.gz
mv eth2deposit-cli-* eth2.0-deposit-cli
cd eth2.0-deposit-cli
./deposit --num_validators 1 --chain pyrmont

Le serveur va dans un premier temps vous demander un mot de passe pour sécuriser un fichier qui servira de clé privée pour votre node (vous devez conserver ce mot de passe, il servira également pour une étape ultérieure).
Le serveur va ensuite vous afficher une seed mnemonic à conserver (le script vous demandera de la recopier juste après).

Vous trouverez alors dans un dossier “validator_keys” créer juste à côté, contenant 2 fichiers contenant les clés propres à votre nœud de validation et définissant le smart contrat à faire sur ETH1 pour utiliser vos 32 ETH.

Il va vous falloir récupérer l’un des 2 fichiers dans votre ordinateur principal, ou en copier le contenu dans un nouveau fichier en local, afin de le glisser dans votre navigateur dans une étape du launchpad, il s’agit de celui dont le nom respecte la convention : “deposit_data-[timestamp].json” , si vous avez accès aux fichiers depuis votre ordinateur, n’hésitez pas à aller le récupérer directement, sinon, utiliser les commandes suivantes :

cat ./validator_keys/deposit_data-*.json

Votre terminal affichera alors le contenu de ce fichier et il ne vous reste plus qu’à le copier, puis le coller dans un nouveau fichier au format .json sous votre ordinateur à l’aide d’un éditeur texte.

Dans votre navigateur, coché la case “I am keeping my keys safe and have written down my mnemonic phrase.”, puis cliquez sur “Continue”.

Vous arriverez sur la page que j’ai précédemment évoquée où vous devez transmettre le fichier json que nous venons de récupérer.

Il vous suffit de faire glisser le fichier .json en question dans la zone central, puis de cliquer sur “Continue”.

Sur la page suivante, vous aurez le choix entre 3 wallets compatibles, choisissez donc Metamask, votre Metamask va automatiquement se réveiller et demander à être déverrouillé si ce n’était pas le cas.

Une fois déverrouillé, si vous n’êtes pas sur le testnet, une sécurité va vous demander de changer de réseau et d’utiliser le Göerli Testnet :

Message d’avertissement en cas d’utilisation du mauvais réseau

Pour changer, il vous suffit de sélectionner en haut de la popup de Metamask le réseau à utiliser.

Une fois sur le bon réseau, avec votre compte contenant au moins 32 ETH sélectionné, vous serez en mesure de cliquer sur “Continue”.

Une fois sur la page suivante, un résumé vous avertira une dernière fois avant de vous laisser procéder à la transaction.

Cochez donc toutes les cases, puis cliquez sur “Continue” encore une fois.

Sur cette dernière page, vous pouvez cliquer sur le bouton “Initiate The Transaction”, MetaMask va alors immédiatement vous proposer d’effectuer une transaction sur le testnet pour consommer vos 32 ETH (ainsi que quelques poussières d’ETH de plus pour les frais du réseau).

Cliquez sur “Confirm” dans la popup de MetaMask.

Patientez quelques instants que la transaction soit validée, et… Félicitations, vous venez de remplir le smart contrat de votre Validation Node ETH 2.0 !

Vous pouvez maintenant passer à la dernière partie obligatoire au fonctionnement de votre nœud.

Lancer le Validation Node

Retournons à notre ligne de commande, nous allons importer dans un premier temps les clés de validation, puis nous lancerons enfin le node.

Tapez les commandes suivantes :

cd ~/prysm
./prysm.sh validator accounts-v2 import --keys-dir=$HOME/eth2.0-deposit-cli/validator_keys --pyrmont

Il va vous être demandé de rentrer un mot de passe à deux reprises pour le wallet local de votre nœud, ce dernier est soumis à certaines contraintes de difficultés (besoin de caractères spéciaux, …), puis finalement de rentrer le mot de passe que vous aviez choisis au moment de la génération des clés à l’étape du LaunchPad (juste avant d’obtenir la seed mnémonique de votre validation).

Prysm va alors convertir les clés nécessaires à votre nœud dans son propre format.

Puis maintenant nous allons ouvrir un nouveau screen :

screen -S prysm-validation

Puis enchainer avec la commande suivante (vous pouvez remplacez “VOTRE-TAG” avec un message de votre choix si vous voulez “graver” un message dans la blockchain au passage des actions de votre validateur, sinon vous pouvez retirer toute la partie “--graffiti …” de la commande) :

./prysm.sh validator --graffiti "VOTRE-TAG" --pyrmont --accept-terms-of-use

Le script devrait vous redemander le mot de passe de votre wallet (celui entré deux fois lors de l’import des clés), puis démarrer votre validation node.

Vous pouvez désormais détacher ce screen encore une fois avec le raccourcis clavier CTRL+A puis D.

Lancer le Slasher (optionnel)

Une des innovations de l’ETH 2.0 est la présence d’un mécanisme de punition, permettant de protéger le réseau des attaques tout en ayant un impact dissuasif (un testnet orienté sécurité existe pour les challengers voulant contribuer et non nuire au réseau).

En résumé, le réseau à besoin de se protéger des attaques provoquant des forks comme la connu attaque des 51%. Si avec le Bitcoins et les cryptomonnaies reposants sur un algorithme de PoW (Proof-of-Works) il s’agit d’obtenir une quantité extrême de puissance de calcule, avec le PoS la difficulté est tout autre, il s’agit de contrer des individus qui posséderaient la majorité des nœuds car étant les plus riches (ou les plus centralisés) de mentir pour provoquer un fork et aussi d’empêcher des nœuds malveillant de valider ce fork comme étant légitime.

Ainsi apparait le “Slasher”, ce service de Prysm peut fonctionner en parallèle de votre nœud et s’assurer de l’absence de tricheur. S’il repère un node validant un fork ou se comportant d’une façon qui semble montrer une volonté de tricher avec la blockchain (comme validant des transactions en conflits ou validant plusieurs transactions différentes dans une même “epoch” (une période d’environ 6,4 minutes)), il va réagir afin de le faire punir. La punition pouvant être proportionnel à la digression, le pire des cas étant la perte des 32 ETH du node malveillant et son éjection du réseau (de quoi dissuader un attaquant à la valeur actuelle de l’ETH).

Bien entendu, l’activation du Slasher est encouragé par des récompenses supplémentaires en cas de protection du réseau face à une attaque.

Pour activer le Slasher, c’est très simple, commencez par ouvrir un nouveau screen :

screen -S prysm-slasher

Puis taper les commandes suivantes :

cd ~/prysm
./prysm.sh slasher --pyrmont --accept-terms-of-use

Le Slasher va alors s’activer et vous pouvez détacher son screen avec le raccourcis clavier CTRL+A puis D.

Obtenir un joli dashboard consultable dans votre navigateur pour suivre l’état du nœud (optionnel)

Maintenant que votre validation node est entièrement lancé et qu’il ne vous reste plus qu’à attendre son activation (qui peut prendre plusieurs jours, à l’heure actuelle l’activation du mien est prévu à un epoch qui arrivera dans environ 12 jours), vous pouvez en attendant ajouter à votre installation un magnifique Dashboard à l’aide du duo Prometheus et Grafana, similaire à ceci :

Mon dashboard monitorant mon nœud de validation et mon serveur

Pour cela, rien de compliqué, il vous suffit de suivre les instructions suivantes :

  1. Rendez-vous sur le lien suivant : https://prometheus.io/download/
  2. Choisissez votre système d’exploitation (Linux) puis son architecture (amd64 dans la majorité des cas)
  3. Faites un clic-droit sur “prometheus-2.21.0.linux-amd64.tar.gz” (ou version plus récente si disponible), puis “Copier l’adresse du lien”.
  4. Puis tapez les commandes suivantes sur votre serveur (remplacer l’URL du lien et le nom du fichier si différent) :
cd
wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz
tar xvf prometheus-2.21.0.linux-amd64.tar.gz
rm prometheus-2.21.0.linux-amd64.tar.gz
mv prometheus-* prometheus
cd prometheus
echo "global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- job_name: 'validator'
static_configs:
- targets: ['localhost:8081']
- job_name: 'beacon node'
static_configs:
- targets: ['localhost:8080']
- job_name: 'slasher'
static_configs:
- targets: ['localhost:8082']" > ./prometheus.yml

Enfin, lancez un screen :

screen -S prometheus

Puis lancez le logiciel :

./prometheus

Vous pouvez ensuite détacher le screen avec CTRL+A puis D.

Maintenant, il faut lancer une nouvelle série de commande afin d’installer Grafana et le rendre fonctionnel (si votre nœud est présent sur votre ordinateur principal, n’ouvrez pas le port en sautant la première ligne, à moins de vouloir le rendre accessible à l’extérieur) :

sudo ufw allow 3000/tcp
sudo apt-get install -y adduser libfontconfig1 apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service

Puis à l’aide de votre navigateur, rendez-vous directement sur l’adresse IP de votre machine (ou localhost si vous hébergez votre nœud sur votre machine), en précisant à la fin “:3000” (port par défaut de Grafana), par exemple : http://127.0.0.1:3000 .

Vous serez accueillit par une interface de connexion :

les identifiants par défaut sont :

username: admin
password: admin

Il vous sera demandé de mettre un nouveau mot de passe immédiatement après votre première connexion afin de sécuriser l’accès à votre dashboard.

Je vous recommanderais également de changer votre username par défaut, pour celà, cliquez sur l’icône en bas à gauche juste au-dessus du “?”, puis sur “Preferences” dans le menu déroulant à côté.

Remplacez alors votre username par quelque chose de moins évident que “admin”, puis remplacez également l’email par défaut, puis cliquez sur “Save”. À votre prochaine connexion vous pourrez utiliser cet identifiant avec votre mot de passe au lieu de “admin”.

Rendez-vous maintenant dans le menu Configuration (cf. image à gauche), puis cliquez sur “Data Sources”.

Cliquez sur le bouton “Add data source”, puis choisissez “Prometheus”.

Laissez les options par défaut, inscrivez simplement dans le champ “URL” l’adresse : “http://localhost:9090” puis assurez-vous que le champ “Access” est réglé sur “Server (default)”.

Finalement, cliquez sur “Save & Test” en bas à gauche.

Cliquez ensuite sur le “+” dans le menu en haut à gauche, puis sur “Import” dans son menu déroulant.

Copier le contenu du JSON accessible à cette adresse : https://docs.prylabs.network/assets/grafana-dashboards/small_amount_validators.json

Puis collez-le dans le champ texte “Import via panel json”, puis cliquez sur “Load”.

Vous serez en mesure d’adapter et personnaliser davantage votre dashboard (en supprimant par exemple les messages d’annonces de la version), pour arriver à un résultat similaire à la capture d’écran plus haut dans ce guide.

Et voilà !

Vous êtes finalement arrivé à la fin de ce guide ! Et vous participez au test du réseau de l’ETH 2.0 .

Il ne vous reste plus qu’à attendre que votre nœud soit entièrement activé.

Annexe : Mettre à jour Prysm

Le testnet étant une phase de développement et d’expérience, des mises à jour peuvent arriver régulièrement et fixer des erreurs (ou en faire apparaitre de nouvelles), il est donc utile de suivre les informations, le Discord officiel de Prysmatic Labs, voir le compte Github officiel afin d’être mis au courant des nouvelles release.

La mise à jour est extrêmement simple aujourd’hui pour le cas du logiciel Prysm, il vous suffit d’effectuer les actions suivantes :

Connectez-vous au screen de la beacon-chain avec la commande suivante :

screen -R prysm-beacon

Appuyez une fois brièvement sur CTRL+C, ce qui aura pour effet de demander au logiciel de s’arrêter, attendez qu’il s’arrête proprement et vous laisse la main pour continuer.

Ensuite, relancez simplement la même commande que celle qui avait servi à le lancer précédemment, c’est-à-dire :

PUBLIC_SERVER_IP="$(curl -s v4.ident.me)"
./prysm.sh beacon-chain --http-web3provider=$HOME/Goerli/geth.ipc --p2p-host-ip=$PUBLIC_SERVER_IP

Astuce : Dans le screen, vous devriez pouvoir appuyer une fois sur la flèche haute de votre clavier dans le terminal pour afficher la dernière commande lancée, ce qui correspondra à chaque fois dans ce contexte au lancement du composant de prysm correspondant.

Puis détachez le screen avec CTRL+A puis D.

Ensuite, il ne vous reste plus qu’à effectuer la même manipulation pour le screen “prysm-validator” et si vous l’utilisiez le screen “prysm-slasher”, chacun avec leurs commandes respectives définis plus haut dans ce guide (en notant que dans le cas du validator, il se sera probablement éteint de lui-même au moment de l’extinction du prysm-beacon et le relancer demandera à nouveau le mot de passe comme à son premier lancement, le slasher quant à lui aura probablement besoin d’être éteint comme le prysm-beacon avant d’être mis à jour).

À chaque fois, le script ./prysm.sh vérifiera si une mise à jour est disponible et re-téléchargera les composants à jour en cas de besoins.

Annexe : Le status “DEPOSITED”

EDIT: À partir de la mise à jour Alpha.25, le “status 8” est désormais correctement détecté et appelé “DEPOSITED”. J’ai édité cette annexe en conséquence.

Au cours de mon utilisation, j’ai remarqué dans mon dashboard que mon nœud de validation renvoyait le status “DEPOSITED”, il s’affiche lorsque notre nœud est en attente de son activation, pour consulter l’état de votre nœud si vous rencontrez ce status, prenez la pubkey afficher sur votre dashboard (il s’agit d’une version “raccourcis”, pour mon cas : “0xa77be455”), puis rendez-vous sur le lien suivant :

Coller votre clé publique raccouris dans le champ prévu à cet effet et le site vous renverra la liste des correspondances dans sa blockchain (un validator et une adresse eth1), cliquez sur le “Validator”.

Vous verrez alors le status exact de votre nœud et probablement “Awaiting Activation”, le nombre de validateurs dans la file d’attente, sa balance d’ETH, ainsi qu’une estimation de son Epoch d’action :

Annexe : Des idées en cas de saturation de l’espace disque

Si la crainte du manque d’espace disque ce fait sentir, il peut y avoir plusieurs pistes de solutions :

  • Séparation de l’infrastructure en plusieurs serveurs/vps (ceci nécessitera d’implémenter potentiellement quelques sécurités en plus afin de permettre la communication entre les deux, mais il est envisageable par exemple d’héberger dans différents environnement la blockchain d’ETH1 et la beacon-chain d’ETH2.0)
  • Utilisation de LVM ou ZFS pour combiner plusieurs disques facilement et placer les blockchains dans un volume logique plus gros et extensible plus facilement.
  • Utiliser un VPS avec un volume extensible facilement (par exemple des instances AWS, …)

Liens utiles et sources

Ce guide est inspiré principalement des documentations anglophones officielles de Prysmatic Labs et de l’Ethereum Foundation, ainsi que de ma propre expérience dans la mise en place de mon nœud de validation sur le testnet.

--

--

DarkCenobyte
DarkCenobyte

Written by DarkCenobyte

French AWS cloud architect, NodeJS developper and also crypto-enthusiast.

Responses (1)