Guide pour débutants : staker sur Ethereum 2 !


stake

Guide détaillé de A à Z de mise en place d’un validateur sur Ethereum 2.

Devenir un validateur sur Ethereum 2 n’est pas pas quelque chose à prendre à la légère. Vous allez devoir bloquer 32 ETH (ou plus), sans pouvoir les retirer pendant un certain moment, et allez devoir vous assurer que votre validateur continue à être actif sur toute cette période, sans quoi vous perdrez une partie de vos ETH placés.

De grands pouvoirs impliquent de grandes responsabilités

Avant de vous jeter dans le bain, assurez-vous de pouvoir répondre à l’affirmatif à ces questions:

  • Avez-vous 32 ETH ou plus à séquestrer pendant 3 ans ?
  • Pourrez-vous accorder du temps à vos validateurs pendant 3 ans (mettre à jour les logiciels, s’assurer que le validateur fonctionne etc…)
  • Avez-vous un minimum de connaissances en anglais (pour les mises à jour, les débats etc…)
  • Avez-vous accès à un interpreteur de commande (parfois appelé Terminal, ou Console de commande)
  • Avez-vous lu notre poste d’introduction à la preuve d’enjeu ?

Moins de 32 ETH ? Pas de panique !

Si vous n’avez pas 32 ETH, ou que vous ne vous sentez pas de devenir validateurs, vous pourrez toujours rejoindre des « staking pool« .

Prenez cependant le soin de vous renseigner sur les staking pool avant d’y séquestrer vos ETH ! Il y a beaucoup d’arnaques !

Première étape : mettre en place une machine qui servira de validateur.

Deux options s’offrent à vous: vous pouvez utiliser une machine chez vous, ou bien un serveur hébergé ailleurs. Les deux ont leurs avantages et inconvénients : facilité d’accès, stabilité de la connexion à internet, taille du disque dur, confiance en l’hébergeur… je vous laisse faire votre choix. Dans ce guide, je vais utiliser un hébergeur (aucun lien d’affiliation, c’est juste celui que j’utilise personellement), afin de montrer cette étape aussi. Si vous avez déjà un ordinateur chez vous (ou votre serveur est déjà mis en place), vous pouvez procéder à l’étape « Mise en place des logiciels » directement !

Cette partie va vous montrer comment

  • Louer un serveur chez un hébergeur (ici digitalocean)
  • Configurer le pare-feu
  • Configurer les clés d’accès (ssh) et s’y connecter

Louer un serveur

Allez c’est parti ! Rendons-nous chez digitalocean.com (au risque de me répéter, ce guide n’est en aucun cas affilié).

Une fois votre compte créé, vous devriez avoir un message d’accueil vous demandant de renseigner des informations afin de créer votre premier projet. Elles ne sont pas importantes et sont données à titre indicatives, donc ne vous en souciez pas trop.

welcome 2
welcome2 3

Bien, maintenant que notre projet existe, il est temps d’y ajouter une instance (c’est-à-dire un serveur). Cliquez sur « New Droplet » avec le gros signe « + ».

instance

Ensuite choisissez Ubuntu (dernière version).

ubuntu

Ici, nous allons devoir choisir les caractéristiques de notre machine (ou, plutôt, de notre bête de course !). Je recommenderais de choisir l’option à 80$ : 16Gb de RAM et 320 Gb de SSD me semblent être les bonnes caractéristiques. J’ai choisi pour ce tutoriel l’option à 40$, car elle est suffisante pour mes besoins, mais sachez qu’elle sera beaucoup moins résiliente que l’option à 80$. Vu qu’elle est « à la limite de ce qui est demandé », je m’expose à plus de risques de crash, et donc moins de rentabilité car potentiellement moins de moment où mes validateurs sont actifs. Encore une fois, je recommande l’option à 80$.

screenshot 2020 11 19 at 11 11 25

Puis on choisit la région

screenshot 2020 11 19 at 11 12 14

Puis il nous reste deux dernières étapes :

  1. Choisir l’authentication par clé SSH (entouré en rouge sur la photo, il n’y a qu’à suivre les instructions de digitalocean une fois le bouton « New SSH Key » cliqué) : c’est beaucoup plus sécurisé que l’option avec un mot de passe.
  2. Choisir un nom pour votre machine (Choose a hostname) : je recommande de ne pas laisser le nom par défaut mais de vous mettre le votre. Le mien sera « my-first-eth2-validator » 🙂
ssh hostname

Une fois ces choses faites, vous pouvez descendre en bas de la page et finaliser la machine. Vous devriez ensuite apercevoir une page indiquant que votre machine est en cours de création.

loading
Machine en cours de création…

Puis, TADA : votre machine est prête ! A la place du rectangle rouge, vous devriez avoir une suite de chiffres séparés par des points : c’est l’adresse IP de votre machine. Notez-la (ou copiez-la), nous allons en avoir besoin !

activated
Les curieux remarqueront que je n’ai qu’un GB de mémoire et 25Gb de SSD. C’est juste pour le tutoriel 😉

Connexion à la machine

Connectons-nous maintenant à cette machine ! Pour ce faire, nous allons utiliser ssh ! ssh est un programme qui permet de se connecter de façon sécurisée à un serveur. Pour l’utiliser, rien de plus simple : depuis le terminal de votre machine, tapez ceci (en remplaçant « adresseip » par l’adresse IP de votre propre machine)

Vous devriez avoir un message vous signalant que l’authenticité de la machine ne peut pas être prouvée… c’est normal, tapez « yes » !

authenticity
Si vous avez une erreur ici, c’est probablement que vous n’avez pas bien suivi les instructions de digitalocean lors de la création de votre clé SSH. Prenez bien le soin de les relire, et si le problème persiste, faites une recherche du message d’erreur sur Google ! 🙂

Création d’un utilisateur

Nous sommes actuellement connecté en tant que l’utilisateur « root« . C’est en quelque sorte le superman de votre ordinateur : il a tous les droits. C’est une très mauvaise habitude, et un grand risque de sécurité d’être connecté en tant que root, c’est pourquoi nous allons créer un utilisateur !

La commande a entrer est celle-ci (en changeant utilisateur pour le nom d’utilisateur que vous désirez créer).

Suivez les instructions du terminal (soyez sûrs de choisir un mot de passe solide !). Puis, ajoutez cet utilisateur à la liste des « sudoers » : c’est la liste des utilisateurs qui sont autorisés à effectuer des actions en tant qu’administrateur (parfois). Tapez la commande ci-dessous (en remplaçant utilisateur par votre nom d’utilisateur choisi, évidemment).

usermod -aG sudo utilisateur

Puis dernière étape : faire en sorte que l’on puisse se connecter en SSH en tant que cet utilisateur. Nous allons donc copier la liste des clés autorisées par root, et les mettre en tant que clés autorisées pour ce nouvel utilisateur. La commande à taper (en remplaçant utilisateur par le nom d’utilisateur choisi (trois fois au total dans cette commande!)).

rsync --archive --chown=utilisateur:utilisateur ~/.ssh /home/utilisateur

Sécurisation de la machine

La sécurité, c’est important ! C’est pourquoi nous allons procéder à la mise en place de deux mesures de sécurité : le changement de port SSH, et l’installation d’un pare-feu.

Je vais tenter d’expliquer simplement à quoi servent ces deux mesures.

  1. Changer le port SSH : Le port par défaut pour se connecter en SSH sur n’importe quelle machine est le 22. Cela veut dire qu’un hacker essaiera par défaut de vous attaquer par le port 22. En le changeant à un autre port, il sera obligé de deviner quel port vous avez choisi pour essayer de s’y connecter. Cela complique nettement la tâche !
  2. Installer un pare-feu : Par défaut, tous vos ports sont ouverts. Un attaquant peut donc essayer de vous attaquer sur beaucoup de ports différents. Un pare-feu résoud ce problème : il réduits les ports ouverts, et donc rend la surface d’attaque beaucoup plus petite.

Commençons par mettre à jour notre système.. Je ne vais pas détailler ces commandes mais en gros, elles mettent à jour le système et enlèvent les logiciels dont on ne se sert pas 🙂

Sudo et privilèges d’administrateur

Nous avons créé un utilisateur qui n’est pas root car c’est risqué de lancer toutes les commandes en tant qu’administrateur. Cependant, de temps en temps nous avons besoin de lancer des commandes en tant qu’administrateur. La solution : ajouter « sudo » au début de la commande que nous lançons. Il se peut que lancer sudo vous demande votre mot de passe : c’est tout à fait normal !

sudo apt update && sudo apt upgrade
sudo apt dist-upgrade && sudo apt autoremove

Maintenant nous pouvons changer le port SSH. Vous n’avez qu’à choisir un numéro de port entre 1024 et 49151, et vous assurez qu’il ne sort pas en rouge lorsque vous tapez cette commande (en remplaçant NUMERODEPORT par le numéro de port que vous avez choisi) :

sudo ss -tulpn | grep NUMERODEPORT

S’il sort en rouge, c’est qu’il est déjà utilisé par votre ordinateur. Choisissez en un nouveau et recommencez !

Une fois votre port choisi, on met à jour le pare-feu pour accepter les connexions sur ce port :

sudo ufw allow NUMERODEPORT/tcp

Ensuite, mettez à jour votre fichier de configuration SSH. Lancez l’editeur de nexte nano:

sudo nano /etc/ssh/sshd_config

Puis remplacez la ligne « #Port 22 » par « Port NUMERODEPORT » en remplaçant NUMERODEPORT par le numéro que vous avez choisi. Appuyez ensuite sur CTRL+O (la touche contrôle et la touche o en même temps), puis Entrer, puis CTRL+X (la touche contrôle et la touche x en même temps).

Voici un GIF du déroulé de l’opération (avec comme exemple de port 39889).

nano

Maintenant, nous pouvons redémarrer le service SSH. Il suffit d’entrer cette commande :

sudo systemctl restart ssh

Attention, à compter de maintenant, pour vous connecter au serveur, la commande ne sera plus « ssh utilisateur@ip » mais « ssh -p NUMERODEPORT utilisateur @ip ».

Se connecter via l’interface Digital Oceann

Si vous vous retrouvez dans un cas ou vous ne parvenez plus à vous connecter à la machine en SSH, sachez que vous pouvez toujours vous reconnecter en passant par l’interface de digital ocean.

Plus d’information en bas de la page dans l’appendix.

Nous allons maintenant fermer le port 22. Attention, il faut d’abord vous déconnecter du serveur puis vous reconnectez en utilisant le nouveau numéro de port (eh oui, pour l’instant vous êtes toujours sur le port 22!).

Pour se connecter, tapez:

Puis on se reconnecte :

ssh -p NUMERODEPORT utilisateur@ip

Maintenant faisons en sorte de rejeter les connexions par défaut :

Puisque nous allons utiliser Geth et Lighthouse, nous allons ouvrir les ports 30303 et 9000 (respectivement)

sudo ufw allow 30303
sudo ufw allow 9000

Maintenant, en tapant « sudo ufw status verbose« , vous devriez avoir un rendu similaire (mon port choisi pour SSH est le 38998) :

screenshot 2020 11 24 at 11 53 55

Mettons maintenant en marche ces pare-feu :

Et voilà ! Votre machine est désormais installée et sécurisée. Nous pouvons passer à la prochaine étape : créer les clés des validateurs.

Mainnet vs Testnet

Ce guide détail les étapes nécessaires pour la mise en place d’un validateur sur le « mainnet », c’est-à-dire le résau officiel Ethereum 2. Il existe cependant des « testnet », c’est-à-dire des réseaux qui permettent de tester, sans mettre en jeu des « vrais » ETH. Je vous recommande d’aborde d’essayer d’installer et de lancer correctement un validateur sur un testnet. Pour ce faire, il suffit de remplacer « mainnet » par le nom du testnet (au moment de l’écriture, « pyrmont »).

Une fois le validateur ayant été correctement lancé sur le testnet, vous pourrez passer au mainnet !

Rendez-visite à ce site : https://github.com/ethereum/eth2.0-deposit-cli/releases/ et trouvez la version du logiciel pour linux : elle devrait se terminer par « linux-amd64.tar.gz« .

Voici à quoi elle ressemble au jour de création de ce guide :

binary

Ensuite copiez-en le lien :

copylink

Maintenant, reprenez le terminal et tapez ces commandes (en remplaçant le lien « https:// » par le contenu de votre presse-papier (le lien que vous avez copié lors de l’étape précédente)).

cd ~
curl -LO https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v1.1.0/eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz

Vous venez de télécharger la version compressée du logiciel qui va vous servir à créer les clés de vos validateurs. Pour le décompresser, il vous suffit de taper :

tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
cd eth2deposit-cli-ed5a6d3-linux-amd64

Les noms des fichiers pourraient différer sur votre machine : ici c’est eth2deposit-cli-ed5q6d3 car c’est la version actuelle, mais elle pourrait changer dans le futur. Pour l’afficher, lancez simplement la commande ls.

Vous pouvez maintenant créer vos clés ! Entrez cette commande (en changeant NOMBREDEVALIDATEURS par le nombre de validateurs que vous comptez lancer) :

./deposit new-mnemonic --num_validators NOMBREDEVALIDATEURS --mnemonic_language=english --chain mainnet

Prenez votre temps ! Garder vos secrets au chaud…

Prenez le temps de bien vérifier la commande que vous venez de taper. Avez-vous bien remplacé le NOMBREDEVALIDATEURS par le nombre de validateurs que vous comptez lancer ? Avez vous bien bien écrit « mainnet » ?

Dans cette commande, vous allez devoir noter vos mots de passe. Je vous recommande de les écrire sur un bout de papier, d’en faire une deuxième copie et garder les deux copies dans deux endroits différents.

Personne ne pourra vous sauver si vous oubliez vos mot de passe ou vos mnemonics : c’est donc d’une importance capitale pour vous de vous appliquer pendant cette opération.

Première étape : créer un mot de passe. Choisissez-en un (de préférence au hasard), de bonne qualité, et notez le sur le bout de papier. Ensuite lisez le bout de papier, et tapez-le ici. Soyez sûrs que ce que vous correspond à ce que vous avez noté sur le bout de papier !

deposit 1

Ensuite vous verrez apparaître une liste de mots : c’est ce que l’on appelle votre mnemonic. Notez-le précieusement, en faisant bien attention à l’orthographe des mots (ils sont en anglais, attention aux faux amis!).

screenshot 2020 11 20 at 17 20 24
J’ai bien évidemment pris le soin d’utiliser un autre mnnemonic que celui-ci…

Vous devrez ensuite entrer, dans l’ordre, le mnemonic (suite de mots) que vous venez de noter. Soyez sûrs de taper ce que vous avez écrit sur votre papier !

Si vous tapez la commande ls, vous devriez avoir le même rendu :

screenshot 2020 11 22 at 11 36 18

Dans le dossier validator_keys se trouvent plusieurs fichier : un fichier deposit_data…json, et autant de keystore-m…json que vous avez entré de numéro de validateurs. Le fichier deposit_data est un fichier unique qui contient des informations nécessaires pour pouvoir déposer des ETH pour staker : les fichier keystore-m sont des fichiers représentants vos clés de validateur. Ils seront utilisés par vos VCs !

Vous avez créé vos clé de validateur (ainsi que le fichier de deposit associé, nous y reviendrons plus tard). Maintenant il est temps d’installer les logiciels !

Troisième étape: mettre en place les logiciels nécessaires au staking.
Ces instructions sont écrites pour Ubuntu (Linux). Si vous utilisez une autre machine, il faudra probable,ent adapter quelques commandes !

Petit récapitulatif

Il y a trois logiciels principaux qui vont être exécutés par votre machine:

  • Le client Ethereum 1 : Oui, cela peut paraître étonnant mais la chaîne Ethereum 2 a besoin de connaître l’état de la chaîne Ethereum 1 afin de fonctionner correctement.
  • Le Beacon Node (BN) : C’est le logiciel qui s’occupe de communiquer avec les autres nœuds du réseau, de la gestion de la base de donnée de la chaîne: bref c’est lui qui fait le gros du travail.
  • Le Validator Client (VC) : C’est le fameux « validateur » qui revient à toutes les sauces. C’est un logiciel relativement simple, qui ne s’occupe de faire qu’une seule chose: signer des transactions. Périodiquement, il doit signer des transactions, grâce à sa clé privée (clé qui doit rester secrète, bien cachée sur l’ordinateur). Il demande au BN quels messages il doit signer, s’assure que les informations renvoyées par le BN sont correctes, puis signe le message et le transmet au BN, qui lui le transmettra aux autres nœuds du réseau.

Ce qui est intéressant, c’est que plusieurs VC peuvent se connecter au même BN: en effet, on peut faire tourner des centaines de validateurs, qui se connectent tous au même BN. Un VC ne consomme pas beaucoup (rappelez-vous, c’est le BN qui fait la majorité du travail), en lancer plusieurs sur la même machine permet donc d’augmenter un peu la rentabilité.

Une question devrait vous traverser l’esprit : est-il possible de connecter son VC a un BN sur une autre machine ? La réponse est oui ! Vous pourriez très bien connecter vos VCs au BN d’un ami, ou d’une entreprise, si vous leur faites confiance. Vous n’êtes donc pas OBLIGE de faire tourner un BN, si vous faites confiance à un autre BN. Attention cependant : si le BN dans lequel vous avez confiance se met à mal agir (se déconnecter, être piraté…), vous pourriez en faire les frais ! C’est pourquoi il est recommandé de faire tourner son propre BN.

Le paragraphe précédent s’applique tout aussi bien au nœud Ethereum 1 que vous devez lancer : vous pouvez décider de ne pas en lancer, et de vous remettre à un ami / une entreprise (par exemple Infura). Cependant, comme pour le BN, c’est déconseillé, car on n’est jamais mieux servi que par soi-même !

Les clients

Il y a plusieurs implémentations de clients pour Ethereum 2 : les plus connus sont Lighthouse, Prysm, Teku, et Nimbus. Chaque client a ses spécificités (que ce soit l’équipe derrière, l’histoire, les buts recherchés, le langage utilisé, les caractéristiques techniques, la communauté etc…). Dans cet article, nous allons utiliser l’implémentation Lighthouse, de l’équipe Sigma Prime.

Nous avons deux possibilités pour lancer notre client :

  1. Classique : Nous téléchargeons les code source des clients, nous les compilons (ou téléchargeons directement le binaire), puis nous lançons les logiciels un par un (geth, BN et VC). Cette technique est standarde, fonctionne correctement et permet de personnaliser des paramètres.
  2. Docker-compose : C’est une technique qui repose sur l’utilisation d’un logiciel (docker-compose) qui fera tout ça à notre place. Voyez-ça comme un logiciel qui gère les autres logiciels : nous lui disons simplement « lance-moi une instance de geth, un BN, un VC, et connecte-les ensemble), et tada, le tour est joué !

J’ai personellement opté pour l’utilisation de docker-compose : ça rend la tâche très simple à utiliser, installer, et mettre à jour.

Docker et Docker-Compose

Afin de nous faciliter la tâche, nous allons utiliser un logiciel qui s’occupera de lancer les autres logiciels à notre place. Je vous présente : Docker !

Nous allons premièrement devoir installer Docker (plus d’information avec les instructions officielles):

Assurons-nous d’abord qu’il n’y a aucune vieille version qui serait restée coincée sur notre machine :

sudo apt-get remove docker docker-engine docker.io containerd runc

Ensuite assurons-nous que les packets nécessaires à l’installation de Docker sont présents :

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Maintenant ajoutons la clé GPG officielle de Docker :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Puis assurons-nous que nous utilisons la version « stable » de Docker :

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Nous pouvons ENFIN installer Docker !

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

Et profitons-en pour aussi installer Docker-Compose

sudo apt install -y docker-compose

Assurons-nous que Docker a bien été installé en lançant cette commande en la comparant au screenshot en-dessous.

sudo docker run hello-world
screenshot 2020 11 22 at 11 06 25

Maintenant que nous avons installé le logiciel docker-compose, il ne nous reste plus qu’à lui dire ce que nous voulons lui faire faire (lancer geth, un BN et un VC). Ca tombe bien : l’équipe de lighthouse a un dossier avec tout de déjà préparé !

Assurons-nous d’abord d’être dans le bon répertoire :

Puis téléchargeons le dossier de configuration

git clone https://github.com/sigp/lighthouse-docker/

La commande ls (qui liste les fichier du répertoire) devrait ressembler à cela maintenant :

screenshot 2020 11 22 at 11 45 36

Allez maintenant éditer le fichier de configuration. Déplacez-vous dans le bon répertoire :

Faites une copie du fichier de configuration :

Et allez éditer le fichier de configuration : (n’oubliez pas, pour quitter c’est CTRL+O, Enter, CTRL+X)

Voici la liste des paramètres à éditer. Si le paramètre n’apparaît pas dans cette liste, c’est qu’il doit être laissé à sa valeur par défaut.

TESTNET=mainnet
START_VALIDATOR=YES
IMPORT_LAUNCHPAD_KEYSTORES=YES
LAUNCHPAD_KEYSTORE_PASSWD=MonSuperMdp1234
VALIDATOR_COUNT=2
ENABLE_METRICS=YES

Bien entendu je vous laisse éditer LAUNCHPAD_KEYSTORE_PASSWD avec le mot de passe choisit lors de la création de vos clés (il devrait être sur votre bout de papier !), et VALIDATOR_COUNT avec le nombre de validateurs que vous avez choisi de créer.

Maintenant nous avons spécifié que nous voulions importer les clés (IMPORT_LAUNCHPAD_KEYSTORES-YES), donc nous devons copier les clés pour qu’elles soient présentes dans ce répertoire. Voici la commande :

cp -r ../eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys/ .

Bien entendu il se peut que le nom de votre dossier varie : comme précisé au-dessus le mien est eth2deposit-cli-ed5a6d3-linux-amd64 mais je vous laisse adapter la commande à votre machine.

Nous sommes fin prêts ! Nous allons ouvrir un gestionnaire de fenêtre, afin de conserver notre fenêtre ouverte. Lancez :

Et maintenant, la commande finale :

Et voilà ! Vous devriez voir plein de messages fuser dans tous les sens. Ces messages sont des « logs », c’est-à-dire des messages qui décrivent le statut des différents logiciels (rappelez-vous, geth, BN et VC) qui tournent.

screenshot 2020 11 23 at 09 27 25
En bleu les messages émis par le BN, en jaune les messages de geth, et ne vert les messages des VC.

tmux

Nous avons lancé les logiciels à l’aide d’un gestionnaire de fenêtre (appelé tmux). Il permet aux logiciels de continuer à tourner en tâche de fond. Pour vous détacher de cette fenêtre et la laisser tourner en tâche de fond, il vous suffit d’appuyer sur CTRL+b puis la lettre d.

A chaque fois que vous voudrez retrouver vos logiciels (pour les arrêter, ou les mettre à jour etc), il suffira de tapper tmux a. Vous pourrez donc faire des aller-retours jusqu’à vos logiciels grâce à ce gestionnaire de fenêtre.

Vous pouvez quitter cet écran en appuyant sur CTRL+b puis d. Cela « détache » l’écran tmux et vous renvoie vers l’écran de départ. Les logiciels continuer donc de tourner en tâche de fond. Pour retourner sur l’écran de tmux, tappez :

Si vous voulez arrêter complètement les logiciels : appuyez sur CTRL+c, puis entrez :

Mettre à jour

En tant que validateur sur le réseau, vous avez comme devoir de tenir vos logiciels à jour. Un tutoriel sur comment le faire est disponible dans l’appendix, en bas de la page 🙂

Maintenant que nous avons nos logiciels qui tournent, il ne nous reste plus qu’une étape : effectuer le(s) dépôt(s) d’ETH sur le réseau ! Rendez-vous sur le site officiel : https://launchpad.ethereum.org/overview (vous pouvez préfixer le nom du testnet désiré, par exemple : https://pyrmont.launchpad.ethereum.org/overview pour le testnet de pyrmont).

Lisez attentivement les 10 étapes (un récapitulatif ne fais jamais de mal), et vous devriez arriver sur cette page:

Vous pouvez choisir les logiciels que l’on utilise : geth, puis Lighthouse

screenshot 2020 11 22 at 22 39 14
screenshot 2020 11 22 at 22 39 23

Maintenant indiquez le nombre de validateurs que vous voulez lancer (dans mon cas, 2)

screenshot 2020 11 22 at 22 39 49 1

Puis cochez la case qui certifie que vous avez copié vos mnemoniques et votre mot de passe, et cliquez sur Continue.

screenshot 2020 11 22 at 22 50 23

Sur la page suivante, vous allez uploader votre fichier deposit_data dont on a parlé à tout à l’heure. Mais comment faire ? Le fichier se trouve sur mon serveur, pas du mon ordinateur ! Pas de panique ! J’ai la solution : scp !

scp est un programme qui permet de copier des fichiers depuis un serveur vers votre ordinateur (ou dans l’autre sens) de façon sécurisé.

D’abord créons un dossier pour stocker nos fichiers :

cd ~
mkdir Validateurs
cd Validateurs

Sur votre terminal, déconnectez-vous de votre machine (tapez exit), puis entrez simplement (en remplacant, comme d’habitude…) :

scp -r -P NUMERODEPORT NOMDUTILISATEUR@ADDRESSEIP:lighthouse-docker/validator_keys .

Et voilà le travail ! Vous devriez maintenant pouvoir cliquer sur le gros bouton + présent sur la page, et aller chercher le fichier deposit_data qui se trouve dans le dossier Validateurs, dans votre répertoire d’utilisateur (home directory).

screenshot 2020 11 22 at 22 50 43

Maintenant vous devriez pouvoir uploader le fichier deposit_data :

screenshot 2020 11 23 at 13 31 03

Et vous devriez voir cet écran ! (si vous ne vous êtes pas trompés de réseau !)

screenshot 2020 11 23 at 13 31 13

Maintenant il faut faire le dépôt. Je vous laisse suivre le tutoriel d’installation de Metamask (vous pouvez y connecter votre Ledger si jamais c’est cela que vous utilisez)

screenshot 2020 11 23 at 13 31 26

Vous n’avez plus qu’à lancer la transaction… et tada ! Votre dépôt aura été effectué ! Vous pouvez désormais suivre l’état de vos validateurs : dans metamask, cliquez sur la transaction que vous venez d’effectuer.

screenshot 2020 11 23 at 13 52 31
Dépôt sur le testnet Pyrmont

Puis cliquez sur la flèche qui vous mènera à l’explorateur de block :

screenshot 2020 11 23 at 13 52 41 1

Et ici vous pouvez voir les clés publique associées ! Vous pouvez consulter l’état de votre validateur en cliquant dessus.

screenshot 2020 11 23 at 13 55 25

Ici nous utilisons le site beaconscan. Un autre explorateur connu est beaconcha.in. Dans cette photo, mon dépôt n’a pas encore été inclus : en effet, une votre dépôt effectué, il faut du temps afin qu’il soit « inclus » et que votre validateur apparaisse dans la liste « officielle » des validateurs. Plus sur ce procédé.

screenshot 2020 11 23 at 13 56 40

Cette partie est optionelle : il s’agit de mettre en place un système de monitoring (afin de garder un oeil sur sa machine !). Nous allons utiliser Grafana et Prometheus : Prometheus va se charger de récupérer des données de nos logiciels (mémoire utilisée etc), et Grafana se chargera de les afficher.

Encore une fois, docker va nous sauver ! Nous allons cloner le repo lighthouse-metrics qui a déjà tout de préparé pour nous :

cd ~
git clone https://github.com/sigp/lighthouse-metrics
cd lighthouse-metrics

Maintenant nous allons devoir éditer un fichier de configuration :

Dedans, cherchez la ligne qui contient « ; http« , et modifier comme sur le screen suivant :

screenshot 2020 11 24 at 12 09 15

N’oubliez pas, pour quitter c’est CTRL+o, puis Enter puis CTRL+x .

Ensuite, nous allons lancer grafana et prometheus grâce à la commande… docker-compose ! Notez l’utilisation de -d, qui permet de le lancer en tâche de fond.

sudo docker-compose up -d

Maintenant nous pouvons passer à la dernière étape : visualiser les données ! Déconnectez-vous du serveur (tappez exit), et tappez la commande suivante (en remplacant, comme d’habitude):

ssh -p NUMERODEPORT -L 127.0.0.1:3000:127.0.0.1:3000 utillisateur@adresseip

Et maintenant, sur votre navigateur, tapez cette URL : localhost:3000 ! Vous devriez arriver sur un panneau de configuration ! Le nom d’utilisateur est admin et le mot de passe changeme. Ensuite, vous devrez cliquer sur le bouton Manage

image 11

Puis cliquez sur le bouton Import

image 1 4

Maintenant vous devez visiter cette page et en copier le contenu, et le coller le contenu dans la box « Import panel via JSON »

image 3 3

Puis cliquez sur Load et Import et… tada !!

image 4 3

C’est un panneau de monitoring global, il vous est bien sûr possible de modifier et l’adapter à vore convenance !

Des améliorations sont toujours possibles ! Vous pourriez créer des services qui se relancent automatiquement, avoir un système de sauvegarde, avoir un meilleur système de logging… cependant ce guide n’est là que pour couvrir les bases. Il ne faut vraiment pas hésiter à aller chercher de l’aide et poser des questions, voici donc quelques recommandations de site / communautés qui pourraient vous intéresser :

https://reddit.com/r/ethstaker/ : Le subreddit d’une communauté de staker (je vous recommande de rejoindre le Discord, c’est un des meilleurs endroits pour poser des questions)
https://reddit.com/r/ethereum : Le subreddit officiel d’Ethereum
https://lighthouse-book.sigmaprime.io/ : La documentation officielle de Lighthouse
https://docs.prylabs.network/docs/getting-started/ : La documentation officielle de Prysm
https://docs.teku.consensys.net/en/latest/ : La documentation officielle de Teku
https://status-im.github.io/nimbus-eth2/ : La documentation officielle de Nimbus

Se connecter via l’interface de Digital Ocean

Rendez-vous sur le site de DigitalOcean et cliquez sur votre droplet. Ensuite cliquez sur le bouton « Console » en haut à droite de l’écran (entouré en rouge sur la photo).

screenshot 2020 11 23 at 16 05 31 2

Une fenêtre pop-up devrait s’ouvrir (si elle ne s’ouvre pas vérifiez les paramètres de votre navigateur). Ici, il vous suffit de vous connecter en entrant d’abord le nom d’utilisateur, puis le mot de passe de votre utilisateur.

screenshot 2020 11 23 at 16 05 50

Cela vous donne accès à un shell classique : à vous de résoudre les problèmes afin de pouvoir vous reconnecter depuis votre interprêteur ! (Probablement un problème de port SSH / pare-feu…)

Mettre à jour les logiciels

Eh oui, en tant que validateur sur le réseau, il vous faudra vous assurer d’être à jour !

D’abord éteindre grafana et prometheus :

cd ~/lighthouse-metrics
sudo docker-compose down

Puis éteindre le BN, geth et les VC en attachant tmux

Puis en l’interrompant (CTRL+c), puis en le stoppant :

Quittez votre session tmux en appuyant sur CTRL+d.

Maintenant vous pouvez mettre à jour les paquets :

sudo apt update && sudo apt upgrade

Puis mettre à jour les logiciels :

cd ~/lighthouse-metrics && git checkout . && git pull
cd ~/lighthouse-docker && git pull

Puis vous pouvez les relancer !

D’abord tmux, puis sudo docker-compose up, puis CTRL+b, puis d, ensuite cd ~/lighthouse-metrics , puis modifier le fichier grafana.ini, puis sudo docker-compose up -d !



Retrouver l’article original de Scott Piriou ici: Lien Source

https://blockblog.fr/guide-pour-debutants-staker-sur-ethereum-2/

Commentaires