Actu-crypto

🔒
❌ About FreshRSS
There are new articles available, click to refresh the page.
Before yesterdayYour RSS feeds

Ethereum : Le staking explose suite Ă  la derniĂšre mise Ă  jour !

January 21st 2024 at 17:30
Logo de la blockchain Ethereum

La mise à jour Shapella, également connue sous le nom EIP-4895, facilite les retraits de jalonnement des validateurs sur Ethereum. Désactivée en septembre 2022 lors du passage au proof of stake (PoS), cette fonctionnalité avait été relancée aprÚs sa mise à niveau en avril 2023. Une opération qui a eu un impact positif sur le staking sur Ethereum.

L’article Ethereum : Le staking explose suite à la derniùre mise à jour ! est apparu en premier sur Cointribune.

Ethereum a fusionnĂ© đŸŒ

September 15th 2022 at 09:16

Tout ce qu’il faut savoir sur le Merge, le PoS et les prochaines Ă©tapes.

Mainnet Merge Announcement
Image tirĂ©e de l’annonce officielle du Merge par la fondation, en hommage Ă  la mise Ă  jour du merge « Paris », nommĂ©e ainsi en rĂ©fĂ©rence Ă  EthCC.

English version available here.

TLDR; Ethereum a fusionnĂ© avec succĂšs. Une prouesse technique qui permet au rĂ©seau de fonctionner en Proof-Of-Stake et ainsi rĂ©duire de 99.95% sa consommation d’électricitĂ© et son Ă©mission d’ETH de 90%, tout en rendant le rĂ©seau plus sĂ©curisĂ© et dĂ©centralisĂ©. Nous revenons sur ce qu’est le Merge, son dĂ©roulement, ses bĂ©nĂ©fices et les prochaines Ă©tapes de la feuille de route d’Ethereum.

  • Qu’est-ce que le “Merge”?
  • Comment s’est dĂ©roulĂ© le Merge?
  • Qu’est-ce que le Proof Of Stake (PoS)?
  • Quels avantages du PoS vs PoW?
    • Tableau comparatif de PoW vs PoS
  • Quelles sont les prochaines grandes Ă©tapes d’Ethereum?
  • Appendix
    • EthPoS vs EthPoW
    • Structure de bloc sous PoS (cf thread)
    • Cycle de vie des attestations Ethereum sous PoS
  • FAQs
    • En tant qu’utilisateur, comment cela m’impacte t-il? Que dois-je faire?
    • Comment devenir validateur?
    • Est-ce que le Merge amĂ©liore la scalabilitĂ© d’Ethereum?
  • Ressources

Merci à Philippe Honigman, Bettina Boon Falleur, Jean Zundel, Jimmy Ragosa et Simon Polrot pour la révision.


Qu’est-ce que le “Merge”?

https://ethereum.org/en/upgrades/merge/

Le Merge correspond Ă  la fusion des chaĂźnes d’Ethereum qui s’est opĂ©rĂ©e le 15 septembre 2022.

La blockchain Ethereum comportait Ă  sa crĂ©ation une seule chaĂźne qui fonctionnait Ă  l’aide d’un mĂ©canisme de consensus associĂ© au Proof-of-Work (PoW ou Preuve de Travail). 

En dĂ©cembre 2020, en vue du passage au Proof-Of-Stake (PoS ou Preuve d’Enjeu) anticipĂ© depuis sa crĂ©ation, une autre chaĂźne Ă  Ă©tĂ© lancĂ©e: la “Beacon Chain” (chaine d’accroche, chaĂźne phare, chaĂźne balise) aussi appelĂ©e la « Consensus Layer ». 

Depuis le lancement de la Beacon Chain, deux chaĂźnes tournaient en parallĂšle :

  • La couche d’exĂ©cution (execution layer), oĂč Ă©taient exĂ©cutĂ©es les transactions et stockĂ© l’état historique d’Ethereum. Elle correspond Ă  la partie “⛏ Proof-of-work” sur le schĂ©ma ci-dessus, comprenant « Ethereum State: transactions, apps, contracts, balances »), c’était le mainnet Ethereum.
  • La couche de consensus (consensus layer) ou Beacon chain, Ă©tait la chaĂźne amorcĂ©e par des utilisateurs ayant dĂ©posĂ© leur ETH (sur mainnet) pour devenir validateur. Jusqu’au Merge, ils ne faisaient qu’écouter le mainnet et validaient uniquement l’état de leur propre chaĂźne.

Le Merge marque la fusion de ces deux chaĂźnes et le changement de mĂ©canisme de consensus d’Ethereum avec la fin du PoW et le passage au PoS. Cette fusion entraĂźne plusieurs amĂ©liorations telles que la rĂ©duction de consommation d’énergie de 99.95%, et prĂ©pare le terrain pour les mises Ă  jour Ă  venir de scalabilitĂ© qui deviendront plus faciles Ă  implĂ©menter.

Comment s’est dĂ©roulĂ© le Merge?

La TTD (Terminal Total Difficulty, qui reprĂ©sente schĂ©matiquement la puissance de calcul globale dĂ©ployĂ©e par les mineurs depuis la crĂ©ation d’Ethereum – plus de dĂ©tails dans cet article), dĂ©terminĂ© par les Core Devs le 18 AoĂ»t 2022, a permis d’estimer la chronologie du Merge prĂ©vu entre le 10 et le 20 septembre 2022.

Nous suivions les prévisions du TTD via https://bordel.wtf (en référence à la communauté de hackers tchÚques du Paralelni Polis), mais un grand nombre de trackers étaient disponibles (cf. liste).

Le TTD à finalement été atteint le 15 septembre 2022 à 8h42:59 au block #15537394

  • Nous avons suivi la “Ethereum Mainnet Merge Viewing Party”  organisĂ© par la fondation Ethereum avec  Bankless, EthStaker, Ethereum Cat Herders, The Daily Gwei et des invitĂ©s comme Superphiz.eth, Pooja Rajan, Tim Beiko, Anthony Sassano, Justin Drake et Vitalik Buterin qui ont rĂ©pondu Ă  des questions rĂ©currentes : pourquoi le Merge, comment se dĂ©roule la fusion, comment amĂ©liorer la diversitĂ© des clients, comment maintenir la dĂ©centralisation etc.
  • Comme Ă  son habitude Jonathan Mann, nous a chantĂ© une chanson Ă©crit pour l’occasion: « Pandas Are Not Known For Running‘
  • Danny Ryan nous a dĂ©taillĂ© les Ă©tapes du merge: un premier block et les attestations qui arrivent, ≈ 32 blocks dans la 1Ăšre epoch, avec 2/3 de participation des validateurs nĂ©cessaires Ă  sa justification. AprĂšs la 2e epoch, les premiers blocks en PoS ont Ă©tĂ© finalisĂ©s et la chaĂźne Ethereum est officiellement passĂ© en PoS.

Si ces termes vous sont Ă©trangers, pas d’inquiĂ©tude, nous les dĂ©taillons dans la suite de l’article.

  • Le premier block en Proof-of-Stake est celui-ci: https://etherscan.io/block/15537394, nous le voyons Ă  la difficultĂ© du bloc qui Ă©quivaut 0, signifiant que le bloc n’a pas Ă©tĂ© minĂ©

Deux mises à jour critiques ont précédé le Merge :

  • La mise Ă  jour « Bellatrix » a prĂ©parĂ© la couche de consensus pour le Merge (en vert sur le schĂ©ma). Elle a notamment permis la mise Ă  jour de la structure des blocs qui a  instaurĂ© les slots de 12 secondes par bloc (post-merge).
    Toute personne faisant tourner un nƓud et/ou un validateur Ethereum a dĂ» mettre Ă  jour son client Ethereum avant le 6 Septembre 2022.
  • “Paris” qui implĂ©mente deux EIPs (Ethereum Improvements Proposals) : 
    • EIP-4399 = introduit un changement de sĂ©mantique de l’opcode DIFFICULTY (qui devient obsolĂšte) Ă  PREVRANDAO. L’utilisation reste la mĂȘme.
    • EIP-3675 = aussi appelĂ© “Merge EIP”: la mise Ă  jour du Merge qui met officiellement fin au PoW 
https://blog.ethereum.org/2022/08/24/mainnet-merge-announcement

Qu’est-ce que le Proof Of Stake (PoS)?

Passons en revue quelques éléments primordiaux du PoS :

Le PoS ou le PoW, le mĂ©canisme anti-Sybil associĂ© au consensus des blockchains, est central Ă  leur fonctionnement : c’est ce qui permet de dĂ©terminer leur Ă©tat, c’est-Ă -dire d’organiser la blockchain en produisant ses blocs, qui contiennent des transactions.

Contrairement au PoW qui fonctionne avec des mineurs, le PoS fait appel Ă  des validateurs pour dĂ©terminer l’état de la blockchain.

Chaque bloc (regroupement de transactions d’utilisateurs) de la blockchain Ethereum est soumis Ă  un groupe de validateurs choisis alĂ©atoirement, qui vĂ©rifient les transactions en les rĂ©-exĂ©cutant, vĂ©rifient leur signature et soumettent au rĂ©seau leur vote (sous forme d’attestations) afin de proposer la validation des blocs. Le temps de validation des blocs sur Ethereum sous PoW Ă©tait de 13/14 secondes. Maintenant, le temps par bloc est dĂ©terminĂ© par « slots » fixes de 12s, 1 bloc par slot, validĂ© par un validateur choisi alĂ©atoirement. Plusieurs slots forment une epoch, une Ă©poque. 2 epochs sont nĂ©cessaires afin que les blocs soient considĂ©rĂ©s comme finaux et irrĂ©versibles.

Les validateurs sont rémunérés pour plusieurs éléments : 
‱ Lorsqu’ils sont choisis alĂ©atoirement pour proposer des blocs
‱ Lorsqu’ils Ă©mettent des attestations, correspondant Ă  un vote du validateur sur ce que reprĂ©sente l’état de la chaĂźne
‱ Via les tips (pourboires) ou frais supplĂ©mentaires payĂ©s par les utilisateurs (instaurĂ©s grĂące Ă  l’EIP-1559)

Le PoS engendre un changement pour les mineurs/validateurs. Il n’y a pas de changement majeur pour les utilisateurs ni pour les dĂ©veloppeurs d’applications, ni mĂȘme d’interruption du rĂ©seau.

Pour en savoir plus sur le mĂ©canisme de consensus de PoS, nous l’avons expliquĂ© en dĂ©tail ici : https://www.ethereum-france.com/le-mecanisme-de-consensus-dethereum-apres-la-fusion/ 

Quels avantages du PoS vs PoW ?

  • 99.95% de consommation d’énergie en moins par rapport au fonctionnement en PoW selon la fondation Ethereum + vĂ©rification par JĂ©rĂŽme de Tychey avec la slide ci dessous:
Slide de Jerome de Tychey sur la consommation d’énergie de Ethereum post-Merge

Plus d’informations via le site de la fondation.

  • Plus dĂ©centralisĂ©: les barriĂšres Ă  l’entrĂ©e pour devenir validateur sont plus faibles. Moins de matĂ©riel informatique est nĂ©cessaire et il n’y a pas d’économie d’échelle Ă  rĂ©aliser sur PoS: les revenus des validateurs sont linĂ©aires (vs Ă©conomies d’échelle des mineurs sur PoW). 

Aussi, l’accĂšs aux ressources nĂ©cessaires Ă  la validation (ETH) est accessible Ă  tous, de la mĂȘme maniĂšre, contrairement au matĂ©riel informatique et Ă©lectricitĂ© du PoW.

  • RĂ©duction de l’émission d’ETH de 90% post merge.
    Certains parlent de “Triple Halvening” (en rĂ©fĂ©rence aux Halvings de Bitcoin) car 3 Ă©lĂ©ments entrent dorĂ©navant en jeu :
    • L’émission d’ETH sur le marchĂ© passera de ≈4.5% Ă  ≈0.5%/an, voire moins en fonction de la demande sur le rĂ©seau.
    • EIP-1559 brĂ»le de l’ETH Ă  chaque transaction (depuis le 05 AoĂ»t 2021 / block 12965000), pouvant dĂ©clencher des pĂ©riodes dĂ©flationnistes pour ETH lorsque le rĂ©seau est congestionnĂ©, c’est-Ă -dire lorsqu’il y a plus d’ETH brĂ»lĂ©s qu’émis.
    • Beaucoup d’ETH sont bloquĂ©s pour la validation (≈ 13 650 700 ETH soit ≈ $22 Milliards Ă  ce jour selon https://beaconcha.in/)
https://www.attestant.io/posts/charting-ethereum-issuance/ annoté par Jimmy Ragosa
  • Moins de pression Ă  la vente sur ETH : en plus des ETH stakĂ©s, les validateurs n’ont pas besoin de vendre leur ETH pour faire fonctionner leur(s) validateur(s), contrairement aux mineurs qui vendaient leur ETH pour payer leurs factures d’électricitĂ©.
  • Plus de sĂ©curitĂ© : une attaque pour prendre le contrĂŽle complet du rĂ©seau nĂ©cessiterait de dĂ©tenir plus de 66% de tous les ETH en collatĂ©ral (vs 51% du hashpower sur PoW). Cette attaque devient de plus en plus coĂ»teuse avec le prix de l’ETH. DĂ©tenir des ETH que l’on peut perdre et/ou qui perdraient leur valeur suite Ă  une attaque fournit une double incitation.

Tableau comparatif de PoW vs PoS (Ethereum)

ModĂšles de ConsensusPOW (Pre-merge)POS (Post-merge)
ActeursMineursValidateurs
HardwareMining rigsOrdinateur
RessourceElectricitéETH
RevenusExponentiels (Économie d’échelle)LinĂ©aires
(Incrémental)
Finalité*Probabilistique
≈6min
Explicite
>12.8min
Temps de validation
des blocs
≈13s=12s
ContrĂŽle complet**51% (>Âœ)>66% (>⅔)
Tableau comparatif de PoW vs PoS (Ethereum) par Nathan Sexer

*https://hackmd.io/@prysmaticlabs/finality
**https://medium.com/@Beosin_com/ethereum-pos-and-pow-security-fd52a6153b1e

Quelles sont les prochaines grandes Ă©tapes d’Ethereum ?

La scalabilitĂ© d’Ethereum est au centre des discussions depuis sa crĂ©ation et le prochain challenge des core devs.

Le Merge a d’ailleurs pu ĂȘtre priorisĂ© grĂące Ă  l’émergence des solutions de scaling telles que les Rollups qui ont dĂ©sengorgĂ© la L1 d’Ethereum et permis au Merge d’émerger ( đŸ€­) en prioritĂ©. C’est autour des Rollups que se construit la feuille de route d’Ethereum depuis des annĂ©es ; Vitalik parlait en 2020 de “rollup-centric ethereum roadmap”.  Plus d’informations sur les rollups : https://www.ethereum-france.com/un-guide-incomplet-des-rollups/.

Le Merge reprĂ©sentait une Ă©tape majeure. Par la suite, les core devs vont pouvoir s’attaquer aux prochaines grandes Ă©tapes de la roadmap d’Ethereum, Ă  savoir :

  • The Surge : AmĂ©liore significativement les performances et l’utilisabilitĂ© des rollups grĂące au trĂšs attendu sharding, avec le danksharding qui gagne en traction dans la communautĂ©.
    Attendu pour 2023.
  • The Verge : «Statelessness» grĂące aux Verkle Trees, ce qui permettrait aux noeuds de ne plus stocker l’état en permanence grĂące Ă  des «tĂ©moins».
  • The Purge : Élimine des donnĂ©es historiques et de la dette technique, pour notamment dispenser les nƓuds de stocker l’historique.
  • The Splurge : Apporte beaucoup de fonctionnalitĂ©s Ă  Ethereum, comme l’account abstraction, et bien d’autres.
https://twitter.com/VitalikButerin/status/1466411377107558402?s=20&t=muXSMLsxecRhFqydYowOow

Comme le montre ce schéma (publié par Vitalik en Décembre 2021, pas à jour), le développement des grandes étapes de la roadmap a avancé en parallÚle.
Nous nous attendons à une cadence de mise à jour soutenue dans les mois et années à venir.
Nous suivrons cela de prÚs. 

FAQs

En tant qu’utilisateur, comment cela m’impacte t-il ? Que dois-je faire ?

Rien ! Les applications s’en chargent pour vous. 

Vous aurez les mĂȘmes donnĂ©es, tokens etc. au mĂȘme endroit.
Le modĂšle de pricing de gas reste Ă©galement le mĂȘme, c’est-Ă -dire celui de l’EIP-1559.

Est-ce que le Merge amĂ©liore la scalabilitĂ© d’Ethereum?

Pas immĂ©diatement (mĂȘme si les blocs se valident 1 seconde plus rapidement en moyenne). Le merge apporte cependant des changements critiques aux futures mises Ă  jour de scalabilitĂ© d’Ethereum, notamment le sharding. Les frais de gas et la capacitĂ© d’exĂ©cution des transactions restent les mĂȘmes.

Comment devenir validateur ?

Il existe 3 maniĂšres de participer Ă  la validation d’Ethereum sous PoS, chacun reprĂ©sentant un compromis. La fondation a fait de trĂšs bons guides que nous vous invitons Ă  suivre.

Si l’investissement initial du solo staking de 32 ETH est consĂ©quent, cela reste le moyen le plus trustless et sĂ©curisĂ© pour staker ses ETH.
A noter : ces ETH sont bloquĂ©s jusqu’à ce qu’une nouvelle mise Ă  jour permette de les dĂ©bloquer (la Shanghai upgrade). Les validateurs reçoivent quand mĂȘme une partie de leurs rĂ©compenses sur une adresse mainnet dĂšs maintenant.

Quel avenir pour EthPoW/ETHW?

  • ETHPoW (ou ETHW) est la branche d’Ethereum restĂ©e en PoW.
  • Les acteurs majeurs de l’écosystĂšme dont les stablecoins (USDT ou USDC), protocoles de DeFi/lending (Aave), oracles (Chainlink) et bien d’autres supportent le passage au PoS.
  • La majoritĂ© des services et applications ne supporteront pas ETHPoW : c’est la grande majoritĂ© de ce qui marche aujourd’hui sur Ethereum qui s’écroule du jour au lendemain, Ă  commencer par toute la DeFi. Resteront les donnĂ©es historiques de la blockchain Ethereum et une couche applicative inutilisable.
  • A ceux qui souhaitent profiter de ETHPoW: la meilleure stratĂ©gie est de bien prendre ses prĂ©cautions et probablement de ne rien faire. La majoritĂ© des bĂ©nĂ©fices sera tirĂ©e par des traders, experts en MEV et arbitrage qui travaillent sur le sujet depuis des mois/annĂ©es, dans les blocs suivant le fork. 
  • Si les actifs sont rĂ©pliquĂ©s, ce ne sera pas le cas de leur valeur : on estimait avant le Merge que les tokens ETH de la chaine ETHPoW valaient seulement ≈2% de la valeur des ETH (cf. coinmarketcap). 
  • Rappelons qu’il est probable que la chaĂźne ne perdure pas sur le long terme et qu’elle reste un no mans land rĂ©servĂ©e aux spĂ©culateurs.
  • Selon Tarun Chitra (ici), les supporters de ETHPoW n’auraient pas encore rĂ©ussi Ă  synchroniser de noeud avec leurs changements; qui impliquent entre autres de remplacer les frais de gas brĂ»lĂ©s (cf. EIP-1559) pour se les distribuer Ă  la place, se distribuer les ETH appartenant Ă  la Fondation Ethereum etc.
  • Maintenir ETHPoW actif impliquerait qu’un Ă©cosystĂšme mature de mineurs, de dĂ©veloppeurs d’applications, de clients, d’investisseurs et d’utilisateurs restent actifs sur le rĂ©seau. Ils devront probablement forker Ă  nouveau pour mettre fin Ă  la Difficulty Bomb rendant obsolĂšte le PoW sur Ethereum


Appendice

Structure de bloc sous PoS (cf.  thread)

  • Sous PoS, les blocs Ethereum sont constituĂ©s de 3 parties (cf. ce thread):
  • Administration, contient les informations du bloc: 
    • slot : le numĂ©ro du bloc
    • proposer_index : le validateur qui le propose
    • parent_root : le hash du prĂ©cĂ©dent bloc
    • state_root : le hash d’un Merkle Root qui stocke l’état de la BeaconChain (BeaconState)
    • randao_reveal : un nombre gĂ©nĂ©rĂ© de maniĂšre alĂ©atoire au niveau du protocole, proposĂ© grĂące Ă  plusieurs proposants de bloc d’une Ă©poque.
    • graffiti: du texte de 32-byte (optionnel) soumis par les proposeurs de bloc
    • signature : la signature du validateur qui propose le bloc, qui permet de le responsabiliser : le rĂ©munĂšre s’il se comporte bien, le punit le cas inverse.
  • Consensus: contient les informations nĂ©cessaires pour coordonner et vĂ©rifier le consensus de la blockchain, et implĂ©menter le PoS
  • ExĂ©cution: contient la charge du bloc Ethereum,c’est-Ă -dire toutes les donnĂ©es des transactions contenues dans le bloc. TrĂšs similaire Ă  la structure des blocs Ethereum sous PoW, notamment pour des raisons de compatibilitĂ©. Voyons les quelques changements ci-dessous:
  • difficulty : passe Ă  0, le PoS ne nĂ©cessite pas ce paramĂštre qui correspondait Ă  la puissance de hachage nĂ©cessaire aux mineurs afin de miner le bloc.
  • sha3Uncles et uncles : disparaissent car le PoS ne produit pas naturellement de uncle blocks, ces blocs minĂ©s mais dĂ©passĂ©s par une autre branche.

Cycle de vie des attestations Ethereum sous PoS 

via https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/attestations 

Ressources


Pour suivre Ethereum-France ⬇

The post Ethereum a fusionnĂ© đŸŒ first appeared on Ethereum France.

Guide pour débutants : staker sur Ethereum 2 !

November 24th 2020 at 12:43

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

Table Of Contents
  1. Prérequis et implications
  2. Mise en place de la machine
  3. Louer un serveur
  4. Connexion Ă  la machine
  5. CrĂ©ation d’un utilisateur
  6. SĂ©curisation de la machine
  7. Créer les clés de validateurs
  8. Mise en place des logiciels
  9. Monitoring
  10. Aller plus loin
  11. Appendice

Prérequis et implications

Devenir un validateur sur Ethereum 2 n’est 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 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 Ă  l’eau, 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

Mise en place de la machine

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 !

Je peux perdre mes ETH ?!

Vous vous apprĂȘtez Ă  sĂ©questrer au moins 32 ETH. Mais ĂȘtes-vous sĂ»r de connaĂźtre les risques et les pĂ©nalitĂ©s ? Plus de dĂ©tail dans l’appendice en bas de la page.

Cette partie va vous montrer comment:

  • Louer un serveur chez un hĂ©bergeur (ici netcup.eu)
  • 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 netcup.eu (ce guide n’est en aucun cas affiliĂ© ! C’est simplement l’option que j’utilise personellement).

SĂ©lectionnez « Server », et cherchez l’option VPS 6000 G9.

Quelle offre choisir ?

Ce qui importe, c’est d’ĂȘtre sĂ»r que le serveur tiendra la route en cas de perturbation sur le rĂ©seau. Aujourd’hui, il est recommandĂ© d’avoir au moins 4 CƓurs, 16 GB de RAM, 256Gb de SSD, juste pour faire tourner le Beacon Node (plus d’info sur ce terme plus tard dans le tutoriel) et les validateurs.

Cependant, Ă  ça il faut ajouter l’instance d’ETH1, qui nĂ©cessite elle-mĂȘme 16Gb de RAM et 500 GB de SSD. Et si vous voulez, vous pouvez aussi lancer un slasher, ce qui prend des ressources supplĂ©mentaires.

L’option VPS 6000 est une option avec laquelle vous n’aurez pas de problĂšmes dans les annĂ©es Ă  venir. Elle a largement de quoi faire, et tiendra la route mĂȘme en cas de conditions etrĂȘmes sur le rĂ©seau. L’option VPS 4000 est correcte et devrait ĂȘtre suffisante. L’option VPS 3000 fera pile l’affaire pour le moment, mais il faudra s’attendre Ă  devoir changer de plan d’ici 1 an ou deux. Enfin, si vous ne comptez pas lancer d’instance eth1 (si vous utilisez Infura par exemple), l’option VPS 2000 sera suffisante.

Si pour vous les termes eth1, Infura, beacon node et validateurs sont du charabia, vous pouvez allez lire le « Petit récapitulatif » dan « Mise en place des logiciels ».

Une fois votre offre sĂ©lectionnĂ©e, vous devrez procĂ©der Ă  la crĂ©ation de compte. Retenez bien les informations que vous entrez : une fois la demande effectuĂ©e, vous recevrez un appel de netcup.eu en anglais (ils sont allemands) et ils vous demanderont de bien confirmer : votre nom / prĂ©nom, votre adresse, votre code postale. C’est tout Ă  fait normal (bien que dĂ©routant je vous le concĂšde !).

Une fois ces informations confirmĂ©es par tĂ©lĂ©phone, ils vous enverront vos identifiants de connexion par e-mail : les e-mails sont en allemand et en anglais, donc il faudra scroller jusqu’en bas pour trouver la version anglaise !

Connectons-nous d’abord Ă  notre espace client. Comme Ă©crit dans le mail, le lien est celui-lĂ  : https://www.customercontrolpanel.de . Vos identifiants figurent aussi dans le mail (en orange sur la photo).

La premiĂšre Ă©tape Ă  suivre est de sĂ©curiser notre compte client mettant en place le 2FA : un mĂ©chanisme de sĂ©curitĂ© qui vous demandera d’entrer un code fournit par votre tĂ©lĂ©phone lors de vos prochaines connexions. Pour ce faire, cliquez sur Master Data en bas Ă  gauche.

Là vous pouvez cliquer sur le bouton « Enable two factor authentication ».

N’oubliez pas de sauvegarder votre clĂ© au cas oĂč vous seriez amenĂ© Ă  perder votre tĂ©lĂ©phone

Bien maintenant que votre compte est sĂ©curisĂ©, vous pouvez procĂ©der au rĂšglement. La facture devrait ĂȘtre Ă  peu prĂšs Ă©gale Ă  trois fois le montant mensuel : pas de panique, cela suit une pĂ©riode de facturation trimestrielle.

Une fois le rÚglement effectué, vous devriez recevoir de nouvelles informations par e-mail : un e-mail intitulé « Access data for SCP » et un autre intitulé « Ihr vServer bei netcup ist bereit gestellt.

Access data for SCP

D’abord par mesure de sĂ©curitĂ©, rendez-vous sur le servercontrolpanel (https://www.servercontrolpanel.de/SCP), connectez-vous avec les identifiants contenus dans le mail, et changez votre mot de passe (menu dĂ©roulant en haut Ă  droite, puis Option).

Sur ce paneau de contrĂŽle, vous avez accĂšs Ă  vos machines, et si vous cliquez sur l’une de vos machines, vous aurez un dĂ©tail de l’utilisation de celle-ci.

Les curieux remarqueront que j’ai pris l’option VPS 4000
 c’est pour le testnet !

Vous pouvez maintenant vous connecter Ă  la machine !

Connexion Ă  la machine

Fini la rigolade ! On passe aux choses sérieuses ! 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, qui vous a Ă©tĂ© communiquĂ©e dans le deuxiĂšme e-mail)

ssh root@adresseip

Le mot de passe demandĂ© est celui qui apparaĂźt dans l’email que netcup vous a envoyĂ©. Ensuite, vous devriez avoir un message vous signalant que l’authenticitĂ© de la machine ne peut pas ĂȘtre prouvĂ©e
 c’est normal, tapez « yes » !

Si vous avez une erreur ici, c’est probablement que vous n’avez pas bien copiĂ© la clĂ© grĂące Ă  ssh-copy-id. J’ai utilisĂ© une clĂ© ECDSA et non ed25519, c’est pourquoi votre message d’erreur ne sera pas exactement le mĂȘme


PremiÚre étape
. changer de mot de passe ! Et oui, sécurité, sécurité, sécurité !

Entrez simplement :

passwd

Et choisissez un mot de passe solide (différent des autres mot de passe que vous utilisez habituellement !)

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).

adduser utilisateur

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

Pour ĂȘtre sĂ»r que cela fonctionne correctement, dĂ©connectez-vous de la machine en tappant :

exit

Puis connectez-vous cette fois-ci en utilisant votre nom d’utilisateur :

ssh utilisateur@adresseip

SĂ©curisation de la machine

La sĂ©curitĂ©, c’est important ! C’est pourquoi nous allons procĂ©der Ă  la mise en place de trois mesures de sĂ©curitĂ© : l’authentification par clĂ©, le changement de port SSH, et l’installation d’un pare-feu.

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

  1. L’authentification par clĂ© : pour vous connecter Ă  votre machine vous avez utilisĂ© un mot de passe. Mais si votre mot de passe se fait hack, ou bien si vous avez choisi un mot de passe trop fragile, un hacker pourra facilement se connecter Ă  votre machine. C’est pourquoi nous allons utiliser l’authentification par clĂ© : vous allez crĂ©er une clĂ© SSH sur votre ordinateur, et c’est grĂące Ă  la prĂ©sence de cette clĂ© (et non le mot de passe) que vous serez autorisĂ© Ă  vous connecter.
  2. 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 !
  3. 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.

Authentification par clé

Nous allons créer votre clé SSH qui vous servira à vous connecter au serveur. Commencez par vous déconnecter de votre serveur (exit). Ensuite, tappez cette commande :

ssh-keygen -t ed25519

Ensuite suivez les instructions sur votre console. Une fois terminé, il vous faudra ajouter cette clé à la liste des clés autorisées par votre serveur :

ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisatur@adresseip

Et voilĂ  le travail ! Votre clĂ© apparaĂźt dĂ©sormais parmi les clĂ©s autorisĂ©es sur votre serveur. Cependant, le serveur autorise toujours Ă  se connecter en fournissant le mot de passe de l’utilisateur : nous allons modifierons cela quand nous effectuerons le changement de port SSH.

Changer de port SSH

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, retirent les logiciels dont on ne se sert pas et installent UFW 🙂

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
 sudo apt install -y ufw

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 !

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

sudo nano /etc/ssh/sshd_config

Ici vous aurez 4 lignes Ă  modifier :

  • Remplacer la ligne « Port 22 » par « Port NUMERODEPORT » en remplaçant NUMERODEPORT par le numĂ©ro que vous avez choisi (spĂ©cifie le port utilisĂ© pour SSH).
  • Enlever le « # » devant la ligne « #PubkeyAuthentication yes » (spĂ©cifie que nous acceptons la conneixon par clĂ©).
  • Remplacer la ligne « PasswordAuthentication yes » par « Password authentication no » (spĂ©cifie que nous voulons dĂ©sactiver la connexion par mot de passe).
  • Remplacer la ligne « PermitRootLogin yes » par « PermitRootLogin no » (spĂ©cifie que nous voulons interdire de se connecter en tant que root).

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). C’est la suite Ă  tapper si l’on veut enregistrer un fichier et le fermer avec Nano.

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

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 Netcup.eu

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 de netcup.eu .

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

Pour vous déconnecter, tapez:

exit

Puis reconnectez-vous :

ssh -p numerodeport utilisateur@adresseip

Installation du pare-feu

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

sudo ufw default deny incoming

Acceptons les connections sur notre port SSH choisi :

sudo ufw allow numerodeportssh/tcp

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

sudo ufw allow 30303
 sudo ufw allow 9000

Mettons maintenant en marche ces pare-feu :

sudo ufw enable

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

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.

Créer les clés de 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’abord 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 :

Ensuite copiez-en le lien :

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 ~
 sudo apt install -y curl
 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 ! Gardez 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 ça correspond à ce que vous avez noté sur le bout de papier !

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!).

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 :

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 la suite !

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 !

Mise en place des 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 probablement 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 !

Machine peu performante

Si votre machine est peu performante, une solution pourrait ĂȘtre de ne pas lancer geth et d’utiliser un autre accĂšs Ă  la chaĂźne Eth 1.

Un des services les plus connus est Infura. Un tutoriel est disponible dans l’appendix afin d’en savoir plus. Cependant, comme Ă©crit just au-dessus, il est FORTEMENT recommandĂ© de lancer son propre client Ethereum 1 🙂

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.

Client Ethereum 1

De la mĂȘme maniĂšre que diffĂ©rent clients Ethereum 2 existent, il existe aussi plusieurs implĂ©mentations de client Ethereum 1. Les plus connus sont geth et openethereum (anciennement parity-ethereum). Dans ce tutoriel, j’utiliserai geth et parlerai de geth mais ce qu’il faut comprendre c’est « client Ethereum 1 ».

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 !

Pour installer Docker sur Ubuntu, c’est tout simple :

sudo apt install -y docker.io

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

Si cette commande ne fonctionne pas, c’est probablement que docker n’a pas Ă©tĂ© correctement installĂ©. Dans ce cas, veuillez suivre les instructions d’installations officielles.

Profitons-en pour aussi installer Docker-Compose

sudo apt install -y docker-compose

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 :

cd ~

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 :

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

cd lighthouse-docker

Faites une copie du fichier de configuration :

cp default.env .env

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

nano .env

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. Attention, si vous voulez vous mettre sur le rĂ©seau de test, alors le paramĂštre NETWORK ne sera pas mainnet mais le nom du testnet (par exemple pyrmont).

NETWORK=mainnet
 START_VALIDATOR=YES
 VALIDATOR_COUNT=2
 START_GETH=YES
 ENABLE_METRICS=YES

Bien entendu je vous laisse Ă©diter VALIDATOR_COUNT pour ĂȘtre Ă©gal au nombre de validateurs que vous avez choisi de crĂ©er.

Si vous avez une machine puissante, vous pouvez aussi mettre SLASHER=YES afin de mettre en route un slasher.

Maintenant notre fichier de configuraiton prĂȘt, nous devons importer les validateurs. Pour ce faire, copiez d’abord les clĂ©s de validateurs dans le fichier courant.

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.

Puis initialisez les clés grùce à cette commande :

sudo docker run -it -v $(pwd)/lighthouse-data:/root/.lighthouse -v $(pwd)/validator_keys:/root/validator_keys sigp/lighthouse lighthouse --network mainnet account validator import --directory /root/validator_keys

Nous sommes fin prĂȘts ! Nous allons ouvrir un gestionnaire de fenĂȘtre, afin de conserver notre fenĂȘtre ouverte (plus d’info dans l’encart juste en-dessous).
D’abord installons tmux :

sudo apt install -y tmux

Puis lançons-le !

tmux

Et maintenant, la commande finale :

sudo docker-compose up

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.

En bleu les messages Ă©mis par le BN, en jaune les messages de geth, et ne vert les messages des VC.

Si ces logs ne vous conviennent pas et vous voulez isoler seulement les logs du BN ou du VC, tappez :

sudo docker container ls --format '{{.Names}}'

Vous devriez avoir cela en sorite (peut-ĂȘtre deux lignes en plus si vous avez dĂ©jĂ  lancĂ© grafana / prometheus).

Pour suivre seulement les logs du validateurs par exemple :

sudo docker logs lighthouse-docker_validator_client_1 --follow

Et pour suivre le BN :

sudo docker logs lighthouse-docker_beacon_node_1

Ces commandes est lançable mĂȘme si vous n’ĂȘtes pas dans tmux, et vous pouvez les quitter Ă  tout moment en appuyant sur CTRL+c .

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 :

tmux a

Si vous voulez arrĂȘter complĂštement les logiciels : appuyez sur CTRL+c, puis entrez :

sudo docker-compose down

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

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

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

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 utilisateur@adresseip: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).

Maintenant vous devriez pouvoir uploader le fichier deposit_data :

Et vous devriez voir cet Ă©cran ! (si vous ne vous ĂȘtes pas trompĂ©s de rĂ©seau !)

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)

Obtenir du gETH

Si vous vous apprĂȘtez Ă  faire un dĂ©pĂŽt sur un testnet, la monnaie utilisĂ©e n’est pas l’ETH mais le gETH (görli-ETH). Il peut s’obtenir via des faucets, ou en rejoignant le Discord d’EthStaker.

Attention : je suis ici sur pyrmont.launchpad.ethereum.org car j’ai fait ce tutoriel sur le testnet de pyrmont. Si vous voulez dĂ©poser sur le mainnet, il faut ĂȘtre sĂ»r dĂȘtre sur launchpad.ethereum.org !

Une fois Metamask installĂ©, soyez sĂ»rs d’ĂȘtre sur la bonne chaĂźne : Ethereum Mainnet pour un dĂ©pĂŽt sur le mainnet, et Goerli pour un dĂ©pĂŽt sur un testnet.

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.

DĂ©pĂŽt sur le testnet Pyrmont

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

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

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 d’info sur ce procĂ©dĂ©.

Monitoring

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

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

Puis cliquez sur le bouton Import

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

Puis cliquez sur Load et Import et
 tada !!

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

Aller plus loin

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

Pour se renseigner sur le protocole en général il y a bien entendu :
– La spĂ©cification officielle : https://github.com/ethereum/eth2.0-specs
– Cet article que j’ai particuliĂšrement apprĂ©ciĂ© : https://ethos.dev/beacon-chain/
– Les spĂ©cifications commentĂ©es de Vitalik et de Ben Edgington

Appendice

Détails sur les pénalités

Base de données des Slashings

Une des rĂšgles du rĂ©seau est qu’un validateur ne doit jamais publier deux messages conflictuels pour un mĂȘme block. Pour ĂȘtre sĂ»r qu’il ne publie jamais de messages conflictuels, un validateur tient Ă  jour une base de donnĂ©e de tous les messages qu’il a envoyĂ©. Cette base de donnĂ©e (souvent appellĂ©e slashing protection database, et situĂ©e dans ~/lighthouse-docker/lighthouse-data) est TRES importante, car si vous la perdez, votre validateur pourrait bien publier deux messages conflictuels et se faire pĂ©naliser !

Il est donc recommandĂ© d’en faire une sauvegarde rĂ©guliĂšrement ! Et si vous la perdez, il est recommandĂ© d’attendre plusieurs heures avant de relancer votre validateur, afin de rĂ©duire les chances qu’il produise des messages conflictuels.

Il y a deux grosses catégories de pénalités que vous pourriez encourir :

  1. Slashing : une grosse partie de vos ETH sont retirĂ©s instantanĂ©ment, et votre validateur se fait exclure (il ne peut plus staker). Cela pourrait se produire si vous lancez deux fois le mĂȘme validateur, ou si vous utillisez une version malicieuse d’un client. Cela pourrait aussi se produire dans le cas ou vous perdez votre base de donnĂ©e de protection (voir l’encart juste au-desus).
  2. Leaking : C’est le fait d’avoir une « fuite » d’ETH dĂ» Ă  une absence. Si votre validateur n’est pas en ligne, il subit des pertes. Ces pertes sont proportionelles au nombre de validateurs qui sont hors-ligne en mĂȘme temps que vous. Si vous ĂȘtes tout seul, les pĂ©nalitĂ©s sont minimes (de l’ordre de 0.3% par semaine, ce qui vous laisse LARGEMENT le temps de revenir en ligne), mais si la moitiĂ© du rĂ©seau en hors-ligne en mĂȘme temps, alors les pĂ©nalitĂ©s augmentent trĂšs rapidement. Il y a donc un risque Ă  avoir votre machine chez un hĂ©bergeur type AWS ou netcup.eu : s’ils tombent en panne, vous ne serez pas le seul Ă  ĂȘtre hors-ligne et encourerez donc des peines plus Ă©levĂ©es


Se connecter via l’interface de Netcup.eu

Rendez-vous sur le servercontrolpanel et cliquez sur votre machine. Ensuite cliquez sur la « Console » en haut Ă  droite de l’écran (entourĂ© en rouge sur la photo).

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. Si vous n’avez pas encore d’utilisateur, utilisez les identifiants de root.

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
)

Infura et autres ETH1 endpoints

Si votre machine est peu performante, une solution possible est d’utiliser un « fournisseur » d’accĂšs Ă  ETH1 plutĂŽt que de faire tourner votre propre instance de geth. C’est plus risquĂ© (car vous devez faire confiance Ă  votre fournisseur plutĂŽt que de lancer un client par vous-mĂȘme), mais cela devrait rĂ©duire les ressouces utilisĂ©es par votre machine.

Infura

Je vais ici donner un exemple de mise en place avec Infura. Si vous avez dĂ©jĂ  votre fournisseur d’accĂšs Ă  Ethereum 1, vous pouvez passer cette Ă©tape.

Rendez-vous sur le site infura.io et créez un nouveau compte.

Une fois votre compte crĂ©Ă©, cliquer sur l’onglet Ethereum dans la barre de gauche.

CrĂ©ez ensuite un nouveau projet en cliquant sur « Create New Project » (il se peut que l’interface soit diffĂ©rente si c’est votre premier projet)

Ensuite cliquez sur votre projet et allez dans l’onglet Settings.

En bas de la page vous trouverez les informations qui nous intĂ©ressent : le menu dĂ©roulant vous permet de choisir le rĂ©seau (mainnet pour le rĂ©seau officiel, Görli pour les testnets). Puis vous pouvez copier l’URL (entourĂ© en rouge) qui vous servira dans l’étape suivante.

Modifications Ă  apporter

GrĂące Ă  docker-compose, cette modification est un rĂ©el jeu d’enfant : il n’y a que deux lignes Ă  modifier !

nano .env

Ensuite les deux lignes Ă  modifier sont : START_GETH qui doit ĂȘtre vide, et VOTING_ETH1_NODES qui doit ĂȘtre mis Ă  l’URL du fournisseur d’accĂšs Ă  ETH1 (celui que vous avez copiĂ© si vous avez suivi le tutoriel Infura).

START_GETH=
 VOTING_ETH1_NODES=urldufournisseur

Les autres paramÚtres sont à laisser comme dans décrit plus haut dans le guide.

Et voilà le travail ! Maintenant lorsque vous lancerez vos logiciels (sudo docker-compose up), vous passerez par votre fournisseur plutÎt que par geth ! Vous pouvez donc supprimer le dossier geth maintenant pour libérer de la place sur votre machine :

sudo rm -rf ~/lighthouse-docker/geth-data

Migrer vos validateurs

La migration de validateurs d’un serveur Ă  un autre est une opĂ©ration facile mais qui nĂ©cessite une attention particuliĂšre. Le dossier important Ă  copier se trouve dans lighthouse-data/mainnet/validators (ou /testnet/ si sur testnet).

Attention, cette migration ne sert que si vous changez de machine mais comptez utiliser le meme client (Lighthouse). En attendant l’EIP-3076, changer de client n’est PAS recommandĂ©.

De plus nous copierons aussi le dossier secret afin d’éviter de devoir importer les validateurs de nouveau.

Ok premiĂšre Ă©tape : s’assurer que nos validateurs sont Ă©teints. Pour ça :

tmux a

Puis CTRL+c et ensuite

sudo docker-compose down

Sont-ils vraiment Ă©teints ?

Pour vous assurer que vos validateurs sont Ă©teints, vous pouvez entrer la commande sudo docker container ls --format {{.Names}} et vĂ©rifier que rien la sortie de cette commande est vide (ou au moins qu’elle ne contient pas « validator_client ».

Nous allons devoir autoriser la connexion en tant que root. Oui c’est une mauvaise pratique, et nous ne le ferons que temporairement, car les fichiers qui se trouvent dans validators appartiennent à root.

Pour ce faire, il faut aller éditer le fichier /etc/ssh/sshd_config et changer la ligne « PermitRootLogin no » en « PermitRootLogin yes« . Pour que cette modification ait lieu, il faut ensuite redémarrer le service ssh : sudo systemctl restart ssh.

Maintenant vous pouvez vous déconnecter de la machine (exit), et vous déplacer dans le dossier Validateurs que nous avions créé précédemment.

cd ~/validateurs

De lĂ  il ne nous reste plus qu’à copier le dossiers validators ainsi que les dossiers secrets et wallets (les derniers ne sont pas nĂ©cessaires mais ils son pratiques). Bien sĂ»r il vous faut remplacer numerodeportssh, utilisateur, et adresseip (et mainnet si vous utilisez un testnet).

scp -r -P numerodeportssh root@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/validators .
scp -r -P numerodeportssh root@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/secrets .
scp -r -P numerodeportssh root@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/wallets .

Une fois cette opération effectuée, vous pouvez retourner sur le serveur et retirer le login en tant que root (PermitRootLogin).

Maintenant il faut faire le chemin inverse : c’est Ă  dire envoyer vos dossiers validators et secrets sur votre nouvelle machine, dans le bon rĂ©pertoire. Je pars du principe ici que la nouvelle machine est dĂ©jĂ  crĂ©e, et que vous avez dĂ©jĂ  clonĂ© les repo lighthouse-docker (que vous avez suivi ce tuto quoi !). Assurez-vous aussi que PermitRootLogin est mis sur yes. La manipulation est simple :

scp -r -P numerodeportssh validators root@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/validators
scp -r -P numerodeportssh wallets utilisateur@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/wallets
scp -r -P numerodeportssh secrets utilisateur@adresseip:/home/utilisateur/lighthouse-docker/lighthouse-data/mainnet/secrets

Enfin nous allons copier le dossier validator_keys afin qu’il soit sur notre serveur aussi :

scp -r -P numerodeport ~/validateurs/validator_keys utilisateur@adresseip:lighthouse-docker/validator_keys

Et voilà ! Le tour est joué ! Vous pouvez commencer à valider sur cette nouvelle machine ! Assurez-vous de bien avoir remis PermitRootLogin no, et assurez-vous de bien avoir éteint votre ancienne machine !

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

tmux a

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

sudo docker-compose down

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 origin stable && sudo docker-compose pull
 cd ~/lighthouse-docker && git checkout . && git pull && sudo docker-compose pull

Maintenant il faut retourner Ă  l’étape de crĂ©ation du fichier .env (en haut de cette page !), puis vous pourrez relancer les logiciels : d’abord tmux, puis sudo docker-compose up, puis CTRL+b, puis d, ensuite cd ~/lighthouse-metrics, puis sudo docker-compose up -d !

The post Guide pour débutants : staker sur Ethereum 2 ! first appeared on Ethereum France.
❌