Ethereum

Come fare staking con Ethereum 2.0: la Guida Definitiva a cura di Turbolab.it


Come fare staking con Ethereum 2.0: la Guida Definitiva per configurare tutto e guadagnare interessi (testnet Pyrmont e mainnet, video) (aggiornamento: novembre 2020)

Con Ethereum 2.0 è possibile fare staking, validare le transazioni e guadagnare cifre molto interessanti con pochissimo sforzo. Il bello è che non è più necessario acquistare potenti GPU e spendere centinaia di euro in corrente elettrica: basta invece un tradizionale PC e un po’ di pazienza per configurare tutto quanto nel modo corretto. Ebbene: in questa guida passo per passo vedremo proprio come fare staking con Ethereum 2.0, dapprima sulla testnet Pyrmont e poi sulla mainnet, per guadagnare gli interessi.

Staking Ethereum 2.0: cosa significa, come funziona

La prima versione di Ethereum utilizzava la modalità Proof of work (PoW) per validare le transazioni. Si tratta dello stesso sistema impiegato tutt’oggi da Bitcoin, nel quale gli utenti che decidono di svolgere l’attività di mining competono per l’occasione di validare le transazioni (l’invio di monete da un indirizzo all’altro, ad esempio), scrivere il risultato sulla blockchain e guadagnare la ricompensa prevista per il loro lavoro.

Per svolgere l’attività di mining è necessaria attrezzatura specializzata, generalmente costituita da dispositivi hardware dedicati (ASIC) o, nel caso di Ethereum, molteplici schede video (GPU) di fascia alta, collegate in parallelo fra loro. È quindi necessario un investimento iniziale importante per l’acquisto dell’hardware. Di più: poiché questi apparecchi consumano moltissima energia elettrica, il mining genera profitto solo se il costo dell’elettricità è basso (si impiegano pannelli fotovoltaici con batterie, ad esempio).

Ethereum 2.0 utilizza invece la modalità Proof of stake (PoS), nella quale gli utenti “bloccano” le proprie monete Ethereum (ETH) all’interno di uno smart contract e vengono sorteggiati periodicamente per validare le transazioni. Chi decide di svolgere questa attività viene detto validatore e guadagna le commissioni pagate da chi ha svolto la transazione. Non è dunque più necessario acquistare costosa attrezzatura hardware: basta un normale PC, preferibilmente a basso consumo energetico per ridurre la spesa elettrica e massimizzare i guadagni.

Staking Ethereum 2.0: quanto si guadagna

Tutto bello e interessante ma, in concreto, quanto si guadagna dallo staking di Ethereum? La risposta dipende da molteplici fattori, ma i principali sono il numero complessivo di validatori attivi (meno sono, più si guadagna), il numero delle transazioni (più sono, più si guadagna) e il livello di intasamento del sistema Ethereum (più è intasato, più le commissioni pagate sono alte, più si guadagna).

In rete sono disponibili molti calcolatori che permettono di fare simulazioni, ma il ritorno effettivo varia enormemente, a seconda di parametri appena citati. In linea di massima, comunque, possiamo aspettarci un guadagno compreso fra il 4-10% all’anno. Niente male davvero: per molti di noi che hanno un stipendio medio, significa 2 mensilità in più all’anno!

Attenzione, però: al momento in cui scrivo, la funzionalità del sistema Ethereum che consente di prelevare quanto guadagnato non è ancora pronta. Lo sarà, presumibilmente, a fine 2022. Da quel momento, potremo materialmente incassare anche gli eventuali guadagni degli anni precedenti.

Staking Ethereum 2.0: cosa serve

Chiunque può diventare validatore sulla rete Ethereum: basta disporre dei requisiti e configurare il sistema. In particolare, è necessario:

  1. un PC, fisso o portatile (vedi seguito)
  2. Linux da linea di comando: di seguito riporteremo ogni singolo comando da impartire, ma è comunque indispensabile un minimo di manualità con la linea di comando in ambiente Linux
  3. collegamento a Internet veloce e stabile: una tradizionale ADSL “home” è sufficiente, a patto che non vada giù di frequente. Movimenteremo parecchie decine di gigabyte, quindi è fondamentale che la linea non preveda limitazioni al volume di traffico
  4. alimentazione elettrica stabile: il PC di staking e il router che lo collega ad Internet dovranno rimanere sempre accesi e operativi. Se viviamo in una zona nella quale vi sono frequenti interruzioni, dobbiamo acquistare un gruppo di continuità (UPS) con una batteria ad alta capacità

Gli ultimi due requisiti sono delicati, ma importanti: se infatti il PC di staking sarà offline (spento o scollegato da Internet) al momento in cui viene sorteggiato per validare le transazioni, subiremo una penalità e perderemo qualche decimo di ETH come “multa”.

Staking Ethereum 2.0: testnet e mainnet

Capiamoci: fare staking non è “una passeggiata”. Non è necessaria la laurea in informatica, ma è comunque richiesto un po’ di smanettamento e, per “fare sul serio”, è obbligatorio bloccare un determinato quantitativo di monete ETH. Per questo motivo, sono disponibili due reti:

  1. testnet Pyrmont: è una rete di test, alla quale tutti possono partecipare liberamente e gratuitamente per prendere confidenza con gli strumenti e la configurazione. Non si guadagna nulla, ma si può provare la procedura in tutta sicurezza
  2. mainnet: è la vera rete Ethereum, dove girano le applicazioni e si guadagnano realmente gli interessi per l’attività di staking

Chi desiderasse diventare validatore dovrebbe dapprima configurare tutto sulla testnet Prymont e, una volta acquisita una buona esperienza, passare sulla mainnet.

Ci sono piccole differenze fra le due, soprattutto in termini di hardware necessario. Nella prima parte della guida vedremo dunque come preparare tutto quanto per fare staking in testnet e, successivamente, approfondiremo l’accesso alla mainnet.

Quante monete servono per fare staking con Ethereum

Per diventare validatore sulla mainnet Ethereum è necessario possedere 32 ETH (32.2 ETH, in realtà: i decimali servono per pagare i costi di spostamento delle monete stesse dal wallet allo smart contract). Se già possiedi questo ammontare… buon per te! Puoi “fare sul serio” e guadagnare cifre interessanti. D’altro canto, al momento in cui scrivo, 32 ETH hanno un controvalore superiore agli 11.000 €: una cifra non certo irraggiungibile, ma fuori dalla portata mia e di molti altri “smanettoni”.

Evidenzio inoltre che, fino a fine 2022 circa, queste monete saranno bloccate. In altre parole, non potremo averle indietro prima di quel momento.

Ad ogni modo: prima di pensare alla mainnet è opportuno configurare tutto quanto sulla testnet, dove è tutto gratis e non è necessario spendere nemmeno un centesimo: guadagneremo “soldi senza alcun valore”, ma lo staking su testnet è un’esperienza formativa estremamente interessante.

Vedremo come fare nei prossimi paragrafi.

Fare staking con meno di 32 ETH: gli staking pool

Chi volesse guadagnare dallo staking di Ethereum pur senza possedere 32 ETH reali può rivolgersi agli staking pool: servizi che aggregano le poche monete di molteplici utenti per raggiungere la soglia e fare staking, per poi suddividere proporzionalmente gli interessi ai partecipanti. Ne ho parlato qui:

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - staking ethereum pochi spotlight

Quale PC usare per lo staking di Ethereum (testnet)

Nel sistema Proof of stake, non è necessario che il PC sia “potente”: la validazione delle transazioni richiede infatti pochissima potenza di calcolo

Ci sono però alcune differenze significative fra testnet e mainnet. Per quanto riguarda la testnet, un vecchio notebook è l’ideale, a patto che abbia una CPU a 64 bit e almeno 4 GB di RAM

» Leggi: Come vedere se il PC ha un processore a 64 bit (CPU x64) con Windows 10 o Linux

Nella modalità consigliata di seguito dovremo scaricare l’intera blockchain della rete di test Pyrmont, ma sono comunque pochi gigabyte: la mia configurazione di test occupa meno di 50 GB in totale. È però obbligatorio usare un SSD: come spiegato nella documentazione, i vecchi dischi fissi meccanici sono troppo lenti, e non riescono a tenere il passo.

» Leggi anche: Come installare un SSD sul PC portatile/notebook e sostituire/clonare l’hard disk senza formattare (video-guida definitiva)

Tale PC dovrà essere dedicato allo scopo: non potremo dunque usare il nostro computer personale.

Quale PC usare per lo staking di Ethereum (testnet)

Se mai un giorno riusciremo a passare sulla mainnet e “fare sul serio”, servirà un computer più “carrozzato”.

La CPU non è particolarmente importante: qualsiasi modello dual-core uguale o superiore ad un Intel Core i3 (o equivalente AMD) prodotto negli ultimi 4-5 anni è sufficiente.

Molto più importante è il quantitativo di memoria: per fare staking di Ethereum su mainnet si consigliano almeno 8 GB di RAM. Chi riuscisse ad investire qualcosina e arrivare a 16 GB avrà una tranquillità in più: considerate le cifre in gioco, vale sicuramente la pena di scegliere la dotazione superiore.

La vera criticità è lo spazio su disco: nella modalità ottimale, consigliata di seguito, saremo costretti a scaricare tutto il ramo più recente della blockchain Ethereum, per un ammontare complessivo di circa 500 GB di dati. È dunque già oggi necessario un SSD da almeno 1 TB

Ribadisco che l’uso di un vecchio disco fisso a piatti magnetici è esplicitamente indicato come “non possibile” dalla documentazione ufficiale. Serve proprio un SSD.

Staking Ethereum, passo 1: Installare Ubuntu 20.04

Per prima cosa, dobbiamo installare Linux sul PC dedicato allo staking. Svolgeremo l’installazione e la configurazione dapprima sulla testnet, poi, eventualmente, procederemo a formattare completamente il PC e riconfigurare tutto da zero prima di passare alla mainnet.

Qualsiasi distribuzione va bene, ma la presente guida prevede l’uso di Ubuntu 20.04: non è l’ultima versione rilasciata, ma si tratta di quella che garantisce il supporto esteso (LTS), con tutti gli aggiornamenti di sicurezza gratuiti fino al 2025 (persino fino al 2030, attivando la sottoscrizione a pagamento) ed è indubbiamente la più indicata per un progetto di questo tipo.

Possiamo scegliere indifferentemente Ubuntu Desktop oppure Ubuntu Server. In entrambi i casi lavoreremo perlopiù da linea di comando, ma l’edizione Desktop è raccomandabile ai meno esperti perché include il familiare ambiente grafico ed il browser web necessario all’attivazione del validatore. L’edizione Server, invece, è totalmente a linea di comando e richiede un passaggio in più.

Per il download e la guida all’installazione di Ubuntu si veda l’approfondimento dedicato:

» Leggi: Video-guida: come installare Ubuntu da chiavetta USB (Linux facile)

Staking Ethereum, passo 2: Avviare il Terminale

Chi abbia scelto Ubuntu Server accede direttamente alla linea di comando, quindi può proseguire.

Chi invece abbia preferito Ubuntu Desktop deve avviare il Terminale tramite la combinazione da tastiera Ctrl+Alt+T. In alternativa, cliccare sul pulsante con i 3×3 punti in basso a sinistra e cercare terminale per lanciare rapidamente l’omonima applicazione

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - linux apri terminale

Leggi ancheCome aprire il terminale di Ubuntu

Staking Ethereum, passo 3: Aggiornamento completo

Subito dopo aver aggiornato Ubuntu, è di importanza vitale applicare tutti gli aggiornamenti seguendo queste indicazioni:

» Leggi: Aggiornare Ubuntu: quali differenze fra apt-get update, apt-get upgrade e apt-get dist-upgrade? Il modo migliore è… zzupdate!

Per chi non voglia approfondire ora questo tema, possiamo riassumere la procedura in due passaggi. Installazione del comando (solo la prima volta):

sudo apt install curl -y && curl -s https://raw.githubusercontent.com/TurboLabIt/zzupdate/master/setup.sh | sudo sh

Applicazione di tutti gli aggiornamenti:

sudo zzupdate

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zzupdate spotlight

Staking Ethereum, passo 4: Accesso SSH (opzionale)

Se abbiamo la possibilità di interagire con il PC dedicato allo staking tramite il mouse, la tastiera e lo schermo fisicamente collegati allo stesso, le cose sono più semplici e possiamo procedere al passo successivo. Per inciso: questa è la modalità più sicura, che raccomando vivamente a tutti coloro che facciano staking con 32 ETH “reali”.

In caso contrario, dovremo accedervi tramite VNC (solo Ubuntu Desktop) o, ancora meglio, SSH. Dobbiamo dunque configurare e usare SSH, come mostrato in quest’altro articolo:

» Leggi: Come usare SSH nel modo più facile possibile: video-guida per Windows 10 e Linux

Considerata l’importanza di mantenere il sistema sicuro, è imperativo disattivare l’accesso SSH via password ed entrare solo tramite chiave. Ho mostrato come svolgere questa importante configurazione qui:

» Leggi: Accedere con PuTTY (SSH) senza password a Linux/Ubuntu/CentOS: guida all’autenticazione con chiave asimmetrica (RSA)

Raccomando a chiunque acceda al PC di staking via SSH di non sottovalutare l’importanza di questa accortezza e svolgere la modifica immediatamente.

Staking Ethereum, passo 5: Diventare root

Le operazioni descritte di seguito richiedono i privilegi di amministratore. Per non impazzire, acquisiamoli immediatamente impartendo il comando sudo -s

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

In caso venisse richiesta la password, digitiamo quella dell’utente corrente.

Ricordiamo di svolgere questa operazione per prima cosa dopo ogni riavvio, chiaramente SOLO inizialmente, mentre stiamo configurando tutto quanto.

Staking Ethereum, passo 6: Installare il nodo Ethereum (Go Ethereum)

Siamo ora pronti ad entrare nel vivo della trattazione. Il primo componente richiesto è il software Go Ethereum, l’implementazione ufficiale in linguaggio Go del protocollo Ethereum. In questo modo, il PC diverrà un nodo della rete Ethereum e potrà comunicare con gli altri.

Iniziamo aggiungendo la fonte ufficiale dell’installazione (presa da qui):

add-apt-repository -y ppa:ethereum/ethereum

Ora installiamo il software vero e proprio:

apt update && apt install geth -y

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Staking Ethereum, passo 7: Creare l’utente per Go Ethereum

Creiamo ora una nuova utenza con privilegi minimi: sarà quella che eseguirà materialmente l’applicazione. Allo scopo, impartiamo i tre comandi seguenti per creare l’utente di nome goeth, la cartella /var/lib/goethereum e concedergli pieno accesso alla stessa:

useradd --no-create-home --shell /bin/false goeth

mkdir -p /var/lib/goethereum

chown -R goeth:goeth /var/lib/goethereum

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Staking Ethereum, passo 8: Eseguire Go Ethereum come servizio

Per eseguire Go Ethereum come servizio dobbiamo creare un file di configurazione. Il modo più facile per raggiungere l’obbiettivo è di scaricare quello già pronto tramite il comando curl. Installiamolo perché non è presente nella dotazione base:

apt update && apt install curl -y

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Ora procediamo ad ottenere il file di configurazione del servizio vero e proprio, differente a seconda che si stia lavorando in testnet oppure su mainnet.

Per la testnet:

curl -o /etc/systemd/system/geth.service https://turbolab.it/scarica/344

cat /etc/systemd/system/geth.service

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Per la mainnet:

curl -o /etc/systemd/system/geth.service https://turbolab.it/scarica/348

cat /etc/systemd/system/geth.service

nota tecnica: la configurazione qui proposta utilizza un WebSocket (argomento --ws) al posto del classico HTTP. Questa è la modalità consigliatami da uno sviluppatore di Nimbus e raccomandata nella documentazione ufficiale.

Staking Ethereum, passo 9: Eseguire automaticamente Go Ethereum all’avvio

Ora che abbiamo preparato il servizio, facciamo in modo che parta automaticamente all’avvio del computer:

systemctl enable geth

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Per sincerarcene, riavviamo il sistema:

reboot

Terminato il riavvio, assicuriamoci di ri-acquisire i privilegi di root (sudo -s), quindi visualizziamo lo stato del servizio:

service geth status

La schermata dovrebbe mostrare il messaggio active (running)

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Battere Q sulla tastiera per uscire.

Nel frattempo, la ventola del PC sarà partita con irruenza: digitiamo top e scopriamo che il colpevole è proprio il servizio geth appena creato, che utilizza la CPU al 100%

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

È una situazione assolutamente normale mentre il nodo si sincronizza con la rete, e potrebbe durare parecchie ore: non so dire esattamente “quante”, perché io ho lasciato il PC a lavorare tutta notte e l’indomani aveva terminato. Per seguire l’avanzamento di questa fase, battiamo Q sulla tastiera per uscire da top e impartiamo quanto segue:

journalctl -f -u geth.service

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Le singole righe riportano un messaggio simile a questo:

Nov 01 17:45:53 eth geth[603]: INFO [11-01|17:45:53.493] Imported new block headers count=2048 elapsed=1.366s number=1419455 hash="0af687…9fe

Fino a quando appaiono nuove righe, va tutto bene: l’operazione sta continuando.

Premere Ctrl+C sulla tastiera per uscire e possiamo continuare con il resto della configurazione.

Non preoccupiamoci di attendere che Go Ethereum abbia finito: la documentazione ufficiale di Nimbus chiarisce che It is safe to run Nimbus and start validating even if Geth hasn't fully synced yet, ovvero è sicuro procedere anche se la sincronizzazione non è ancora terminata.

Staking Ethereum, passo 10: Ottenere ETH da Görli (solo testnet)

Se stai “facendo sul serio” e già possiedi i 32 ETH “veri” che servono per lo staking, puoi passare oltre.

Se invece stai “giocando” con la testnet, devi procurarti 32 ETH “fasulli” dalla rete di test Görli. Allo scopo, passa ad un PC dotato di interfaccia grafica (può essere anche il medesimo PC di staking, se hai scelto Ubuntu Desktop) e installa l’estensione MetaMask per il browser web:

» OttieniMetaMask per Chrome/Edge

» OttieniMetaMask per Firefox

Completata la configurazione iniziale di MetaMask, clicca sul menu a tendina Reti (in alto a destra) e seleziona Rete di test Goerli

i

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604266162

Ora clicca sulla dicitura Account 1 a centro pagina per copiare l’indirizzo del wallet

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604266298

Accedi ora al canale #request-goerli-eth su ethstaker tramite questo link (è necessario registrarsi ed eseguire login a Discord). A questo punto è sufficiente inviare un messaggio nel canale simile a questo:

!goerliEth MioIndirizzoEthereum

Chiaramente, dobbiamo sostituire alla parola MioIndirizzoEthereum il reale indirizzo del wallet, ovvero quello che abbiamo appena copiato

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

In caso il canale su Discord smettesse di funzionare, segnalo come alternativa il sito Goerli Authenticated Faucet. Questa risorsa richiede di inserire un messaggio pubblico sul proprio profilo Twitter o Facebook per ricevere le monete: una meccanica un po’ bislacca (preparatevi a ricevere molti commenti perplessi da parte degli amici) che, personalmente, preferisco evitare.

Attendiamo alcuni minuti (pochi istanti, nel mio caso) e riceveremo l’accredito su MetaMask

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604268213

Wow! Ho appena ricevuto quasi 12.000 €!! Anzi no, sono soldi giocattolo, peccato…

Staking Ethereum, passo 11: Installare eth2.0-deposit-cli

Procediamo installando il tool eth2.0-deposit-cli: uno strumento che genera le chiavi crittografiche di identità (una sorta di “account”) che, successivamente, faremo assurgere al ruolo di “validatore”.

Prima di tutto, installiamo i prerequisiti, ovvero Git per ottenere il codice, l’interprete Python 3 e il relativo gestore di pacchetti PIP:

apt install git python3 python3-pip -y

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Ora cloniamo il repository del tool vero e proprio:

cd $HOME

git clone https://github.com/ethereum/eth2.0-deposit-cli.git

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Entriamo nella cartella e lanciamo l’installazione vera e propria:

cd eth2.0-deposit-cli

./deposit.sh install

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Staking Ethereum, passo 12: Creare un account da validatore

Usiamo ora il client appena installato per generare le chiavi. Dobbiamo svolgere passaggi leggermente diversi a seconda che si stia lavorando in testnet oppure su mainnet (questa scelta deve essere la stessa che abbiamo effettuato in precedenza, quando abbiamo attivato il servizio Go Ethereum per lavorare su testnet oppure su mainnet).

Per la testnet:

./deposit.sh new-mnemonic --num_validators 1 --chain pyrmont

Per la mainnet:

./deposit.sh new-mnemonic --num_validators 1 --chain mainnet

Le opzioni indicate sono quelle documentate qui.

Ci viene così chiesto di scegliere la lingua: digitiamo italian.

Subito dopo:

  1. digitiamo la password che deve essere utilizzata per proteggere le chiavi crittografiche – è opportuno scegliere qualcosa di complesso, preferibilmente di almeno 18 caratteri, di cui almeno 5 “speciali” ($, %, & eccetera)
  2. battere Invio
  3. digitare di nuovo la stessa password, per conferma
  4. battere Invio

Questa password va custodita con la massima cura (KeePassBitwarden): ci servirà in seguito

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

A questo punto vengono mostrate le parole di seed, ovvero una serie di parole che potremo utilizzare in seguito per recuperare le nostre monete nel malaugurato caso in cui non riuscissimo più ad accedere al PC (a causa della rottura del disco, ad esempio). Questa frase va trascritta, preferibilmente su un pezzo di carta, e conservata al sicuro. Per essere assolutamente chiari: chiunque riesca ad entrare in possesso di questa serie di parole potrà rubare tutte le vostre monete!

Premere un tasto per continuare.

Saremo così chiamati a ri-digitare le parole appena mostrate, come conferma che le abbiamo annotate correttamente. Alla fine, premiamo Invio

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

La procedura terminerà in automatico generando le chiavi crittografiche

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Sì noti la dicitura Your keys can be found at:: indica il percorso nel quale sono state salvate le chiavi crittografiche (nello screenshot qui sopra, è /root/eth2.0-deposit-cli/validator_keys):

  1. facciamo immediatamente un backup di questa cartella, in modo da poterla ripristinare facilmente in caso di problemi
  2. teniamo a portata di mano questo percorso perché ci servirà fra poco

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Staking Ethereum, passo 13: Installare Nimbus

Installiamo ora Nimbus, un client “leggero” per la rete Ethereum 2.0. Poiché Nimbus deve essere compilato dai sorgenti, ci servono Git per ottenere il codice e il pacchetto Build Essentials di Ubuntu per trasformarlo in codice macchina. Installiamo tutto quanto:

apt install build-essential git libpcre3-dev -y

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Ora cloniamo il repository Git del progetto per ottenere il codice sorgente:

cd $HOME

git clone https://github.com/status-im/nimbus-eth2.git

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Entriamo nella cartella e lanciamo la compilazione:

cd nimbus-eth2

make beacon_node

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

L’operazione richiede parecchio tempo. In particolare, il messaggio Building: Nim compiler e, dopo di lui, molti altri componenti con il prefisso Building: rimarranno fermi sullo schermo per parecchi minuti: è normale, bisogna solo pazientare.

Al termine, spostiamo l’eseguibile generato nella cartella dedicata, di modo che sia poi possibile invocare semplicemente il comando nimbus per usarlo:

mv /$HOME/nimbus-eth2/build/beacon_node /usr/local/bin/nimbus

Infine, non dimentichiamo di eliminare la cartella dei sorgenti: questo manterrà pulito l’ambiente di lavoro ed eviterà confusione in fase di aggiornamento. Allo scopo impartire:

cd $HOME

rm -rf $HOME/nimbus-eth2

Staking Ethereum, passo 14: Creare l’utente per Nimbus

Procediamo creando un utente dedicato all’esecuzione di Nimbus e la relativa cartella per contenere i dati:

useradd --no-create-home --shell /bin/false nimbus

mkdir -p /var/lib/nimbus

chown -R nimbus:nimbus /var/lib/nimbus

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Detta cartella deve avere un predeterminato set di permessi, altrimenti i comandi successivi falliranno. Assegniamoli ora:

chmod u=rwx,g=rx,o= /var/lib/nimbus -R

Staking Ethereum, passo 15: Importare il wallet da validatore in Nimbus

Procediamo importando all’interno di Nimbus la chiave creata poco fa dal comando eth2.0-deposit-cli. Il comando da impartire è il seguente:

nimbus deposits import --data-dir=/var/lib/nimbus /root/eth2.0-deposit-cli/validator_keys

Dovete però avere l’accortezza di sostituire a /root/eth2.0-deposit-cli/validator_keys il percorso nel quale si trova la vostra chiave, cioè quello che vi eravate segnati in precedenza. Ricordate? Era quello vicino alla dicitura Your keys can be found at: che raccomandavo di backuppare e segnarsi perché sarebbe servito fra poco.

Ci verrà richiesto di inserire la password: dobbiamo digitare quella scelta quando abbiamo lanciato eth2.0-deposit-cli poco sopra. Attenzione: si tratta della password, non delle parole di seed!

Terminata l’operazione, facciamo in modo che tutti i file appena generati diventino proprietà dell’utente Nimbus:

chown nimbus:nimbus /var/lib/nimbus -R

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Staking Ethereum, passo 16: Eseguire Nimbus come servizio

Ora che abbiamo importato le chiavi in Nimbus, possiamo prepararci ad eseguirlo come servizio. Il modo più facile per raggiungere l’obbiettivo è di scaricare il file di servizio per Nimbus già pronto tramite il comando curl. Dovremmo aver già installato curl ad uno dei Passi precedenti, ma assicuriamocene lanciando nuovamente il comando

apt update && apt install curl -y

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Ora procediamo ad ottenere il file di configurazione del servizio vero e proprio, differente a seconda che si stia lavorando in testnet oppure su mainnet – questa scelta deve essere la stessa che abbiamo effettuato in precedenza, quando abbiamo attivato il servizio Go Ethereum per lavorare su testnet oppure su mainnet.

Per la testnet:

curl -o /etc/systemd/system/nimbus.service https://turbolab.it/scarica/347

cat /etc/systemd/system/nimbus.service

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Per la mainnet:

curl -o /etc/systemd/system/nimbus.service https://turbolab.it/scarica/349

cat /etc/systemd/system/nimbus.service

Staking Ethereum, passo 17: Eseguire automaticamente Nimbus all’avvio

Ora che abbiamo preparato il servizio, facciamo in modo che parta automaticamente all’avvio del computer:

systemctl enable nimbus

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Per sincerarcene, riavviamo il sistema:

reboot

Terminato il riavvio, assicuriamoci di ri-acquisire i privilegi di root (sudo -s) quindi visualizziamo lo stato:

service nimbus status

La schermata dovrebbe mostrare il messaggio active (running)

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Battere Q sulla tastiera per uscire.

Anche in questo caso, la ventola del PC potrebbe essere già partita con irruenza: digitiamo top e scopriamo che il colpevole è proprio il servizio nimbus appena creato, che utilizza la CPU al 100%

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

È una situazione assolutamente normale mentre il programma si sincronizza con la rete. Per seguire l’avanzamento di questa fase, battiamo Q sulla tastiera per uscire da top e impartiamo quanto segue:

journalctl -f -u nimbus.service

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Le singole righe riportano un messaggio simile a questo:

Nov 02 09:12:53 eth bash[26396]: INF 2020-11-02 09:12:44.387+00:00 Slot start topics="beacnde" tid=26396 file=beacon_node.nim:457 lastSlot=646862 scheduledSlot=646863 beaconTime=12w5d20h12m36s387ms702us683ns peers=27 head=ca2c9197:5937 headEpoch=185 finalized=6b302d69:5856 finalizedEpoch=183

Fino a quando appaiono nuove righe, va tutto bene: l’operazione sta continuando.

Premi Ctrl+C per uscire.

Staking Ethereum, passo 18: Blindare il server con il firewall

Generalmente, ritengo superfluo l’uso del firewall su Linux. Tuttavia, in questa circostanza, faccio un’eccezione. Attiviamo dunque il firewall e apriamo solo le porte strettamente indispensabili.

Chi interagisca con il PC dedicato allo staking via SSH, e non con la consigliata modalità “tastiera, mouse e schermo collegati direttamente”, deve innanzitutto lasciar passare il traffico SSH:

ufw allow 22/tcp

Per essere assolutamente chiari: il comando appena segnalato NON deve essere impartito da chi utilizzi la tastiera, il mouse e lo schermo collegati direttamente.

In ogni caso, invece dobbiamo aprire le porte di Go Ethereum e Nimbus:

ufw allow 30303,9000/tcp && ufw allow 30303,9000/udp && ufw enable

Visualizziamo poi la situazione aggiornata con ufw status

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Per maggiori informazioni:

» Leggi: Guida rapida a ufw – Come attivare/configurare il firewall su Ubuntu Desktop/Server da linea di comando: aprire le porte, bloccare le connessioni e gli indirizzi IP

Staking Ethereum, passo 19: Aprire le porte sul router

In questo momento, i nostri servizi non stanno funzionando in modo ottimale: dobbiamo infatti fare in modo che le rispettive porte sulle quali accettano le connessioni siano “aperte” sul router. Più precisamente: dobbiamo svolgere il port forwarding dal router verso il PC di staking. Allo scopo, seguiamo questa guida:

» Leggi: Come aprire le porte sul router/modem: la guida definitiva al port forwarding (inoltro delle porte)

Le specifiche porte da aprire sono le seguenti:

  • 30303 TCP
  • 30303 UDP
  • 9000 TCP
  • 9000 UDP

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Dopo aver svolto la configurazione, verifichiamo esplicitamente che sia andata a buon fine tramite Shields Up!:

» Leggi: Come testare se una porta del router/firewall è aperta? guida al Port scan con Shields Up!

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - shields up port open

I link diretti sono i seguenti:

Il servizio deve riportare, per entrambe le porte, la dicitura OPEN!.

Staking Ethereum, passo 20: Copiare il file deposit_data

Dobbiamo ora caricare sul sito di Ethereum il file dal nome simile a deposit_data-*.json creato poco fa dal programma eth2.0-deposit-cli. Ricordate? Si trova nella cartella delle chiavi, ovvero quella indicataci dal testo Your keys can be found at: che raccomandavo di backuppare e segnarsi perché sarebbe servita. Nel mio caso, detto file si trova nella cartella /root/eth2.0-deposit-cli/validator_keys.

Ebbene: deposit_data-*.json contiene la chiave pubbllica associata al validatore: come tale, non è un’informazione riservata e può essere trasferita anche su canali insicuri. Traduco: se anche qualcuno ce la rubasse, non se ne farebbe niente.

Se il PC dedicato allo staking che stiamo configurando è dotato di un browser web (stiamo usando Ubuntu Desktop, ad esempio) possiamo lavorare direttamente da lì. Limitiamoci a copiare il file nella “Home” del nostro utente non-root, poi lo prenderemo da lì:

cp /root/eth2.0-deposit-cli/validator_keys/deposit_data* /home/$(logname)

Possiamo proseguire al Passo successivo.

Se invece stiamo usando Ubuntu Server, non abbiamo a disposizione un browser web (no, amici esperti: Lynx non è una soluzione pratica!). Dobbiamo dunque copiare questo file su un PC “normale”. Se abbiamo accesso al PC dedicato allo staking tramite mouse, tastiera e schermo fisicamente collegati allo stesso, valutiamo di portare a termine il trasferimento usando una chiavetta USB.

Se invece stiamo operando tramite SSH, usiamo il comando SCP:

  1. se il PC dal quale operiamo usa Windows: » Leggi: Guida: upload e download via SSH
  2. se il PC dal quale operiamo usa Linux: » Leggi: Guida SFTP/SCP, con esempi

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - pscp winscp spotlight

Lo scopo ultimo, lo ripeto, è riuscire a portare questo file su un PC dotato di browser web.

Staking Ethereum, passo 21: caricare il file deposit_data

Procediamo aprendo il browser web da un PC che abbia la possibilità di accedere al file deposit_data-*.json appena trattato. Ora colleghiamoci a uno di questi due siti, a seconda che si stia lavorando in testnet oppure su mainnet (questa scelta deve essere la stessa che abbiamo effettuato in precedenza, quando abbiamo attivato il servizio Go Ethereum per lavorare su testnet oppure su mainnet):

  1. per la testnetpyrmont.launchpad.ethereum.org
  2. per la mainnetlaunchpad.ethereum.org

Dalla pagina iniziale, cliccare sul pulsante colorato GET STARTED, quindi leggere le varie informazioni preliminari cliccando i vari tasti ACCEPT oppure CONTINUE in fondo ad ogni pagina

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Arrivati alla pagina di selezione del client, selezioniamo Geth (Go Ethereum): non credo che sia rilevante, ma meglio stare sul sicuro..

Avanziamo di nuovo e scegliamo Nimbus.

Dalla pagina Generate Key Pairs, immettiamo 1 nel campo dedicato al numero dei validatori, poi scorriamo fino a fondo pagina e avanziamo di nuovo

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Finalmente, alla pagina Upload Deposit File, dobbiamo caricare la nostra chiave privata, ovvero il file dal nome simile a deposit_data-*.json di cui parlavamo sopra

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Terminato l’upload, avanziamo ancora.

Staking Ethereum, passo 22: Trasferire i fondi

Dalla pagina di selezione del wallet, clicchiamo sull’icona che rappresenta il nostro wallet. Per questa guida abbiamo usato MetaMask, quindi clicchiamo sulla volpe. Si aprirà così l’interfaccia dell’estensione

[in caso conservassimo i nostri ETH su un wallet differente, è necessario consultare i link proposti in pagina per capire come procedere]

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604274650

Autorizziamo la connessione e potremo proseguire.

Arrivati alla pagina di riepilogo, spuntiamo tutte le caselle per confermare che sappiamo quello che stiamo facendo e avanziamo

Dalla pagina di selezione del wallet, clicchiamo sull’icona che rappresenta il nostro wallet. Per questa guida abbiamo usato MetaMask, quindi clicchiamo sulla volpe. Si aprirà così l’interfaccia dell’estensione

[in caso conservassimo i nostri ETH su un wallet differente, è necessario consultare i link proposti in pagina per capire come procedere]

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604274650

Autorizziamo la connessione e potremo proseguire.

Arrivati alla pagina di riepilogo, spuntiamo tutte le caselle per confermare che sappiamo quello che stiamo facendo e avanziamo

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604274941

Infine, clicchiamo sul grande pulsante colorato per aprire di nuovo l’interfaccia di MetaMask e confermare definitivamente l’invio delle monete

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604275147

L’operazione è terminata.

Staking Ethereum, passo 23: Verificare lo stato di approvazione dell’account validatore

L’attivazione del validatore non è istantanea, ma si svolge in due fasi:

  1. elaborazione del deposito da parte della rete Ethereum 2.0
  2. effettiva attivazione del validatore – il sistema prevede un limite massimo di 900 nuovi validatori al giorno, approvati tramite una coda “chi prima chiede, prima viene approvato”

Per controllare a che punto siamo, iniziamo aprendo uno di questi due siti:

  1. per la testnetpyrmont.beaconcha.in
  2. per la mainnetbeaconcha.in

A questo punto:

  1. aprire MetaMask (o il nostro wallet dal quale abbiamo depositato gli ETH)
  2. copiare di nuovo l’indirizzo del wallet, come fatto in precedenza
  3. tornare al sito pyrmont.beaconcha.in oppure beaconcha.in (quello aperto un attimo fa)
  4. cliccare sulla lente d’ingrandimento in alto a destra
  5. incollare l’indirizzo del wallet
  6. cliccare sulla voce subito sotto alla sezione Validators

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604275815

Si aprirà così un pannello informativo. Per il momento, limitiamoci ad aggiungere questa pagina ai Preferiti del browser web: riporta infatti informazioni utili, che serviranno molto spesso

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604276140

Staking Ethereum, passo 24: Attendere l’attivazione del validatore

Se sei arrivato fino a qui: COMPLIMENTI! Il validatore è configurato correttamente, anche se non ancora attivato. Per verificare quando questo accade, teniamo d’occhio l’indirizzo pubblico del nostro wallet usando la pagina che abbiamo aggiunto ai Preferiti un attimo fa.

Prestiamo attenzione alla scheda Overview, sezione Status. In un primo momento, riporterà la dicitura Deposited: significa che il deposito è stato ricevuto, ma non è ancora stato elaborato dalla rete Ethereum 2.0

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video) - zShotVM_1604276140

In pagina si legge che questa situazione dovrebbe durare almeno 12 ore. Ma, in una mia prova precedente con la vecchia testnet Medalla, erano stati necessari addirittura 3 giorni di attesa. Insomma: bisogna solo pazientare.

Non appena il deposito verrà processato, inizierà la seconda fase di attivazione e la dicitura Status cambierà in Pending. Da qui dobbiamo attendere (ancora!) che il nostro validatore venga materialmente attivato

Come fare staking Ethereum 2.0: Guida Definitiva configurare tutto guadagnare interessi (testnet Pyrmont mainnet, video)

Questa fase richiede alcuni giorni (!!). La sezione Estimated Activation presente in pagina ci fornisce una stima del tempo rimanente: in una mia prova precedente con la vecchia testnet Medalla, erano stati necessari altri 12 giorni.

Niente paura: si tratta solo di pazientare perché è tutto automatico. No, non c’è un operatore comunale con un timbro che esamina le richieste ad una ad una: è tutto gestito via software!

Staking Ethereum, passo 25: Monitorare la rendita

Una volta che il validatore è finalmente attivo, non dobbiamo fare altro se non mantenere acceso il PC di staking e assicurandoci che non si spenga a causa di interruzioni dell’energia elettrica o perda il collegamento ad Internet troppo a lungo. Quando questo si verifica, riceviamo infatti una “multa” dalla rete Ethereum 2.0 e perdiamo qualche decimo di Ethereum…. che si recupera rimanendo online.

Per il resto, possiamo usare la solita pagina aggiunta i Preferiti per tenere d’occhio i nostri guadagni e la rendita complessiva dell’operazione.

Il mio validatore su testnet Pyrmont è disponibile qui per confronto e visualizzazione di una configurazione completa e approvata.

Addendum: Mantenere aggiornato il sistema

L’ho già detto ma lo ripeto: mantenere in sicurezza il PC di staking è di importanza critica. Questo implica che dovremo periodicamente installare tutti gli aggiornamenti: una volta al mese come minimo, ma “settimanalmente” sarebbe ancora meglio.

Il comando zzupdate torna sicuramente utile allo scopo, poiché aggiorna il sistema operativo e i pacchetti installati tramite apt, compreso Go Ethereum.

Nimbus, invece, deve essere aggiornato manualmente. È importante farlo: uno degli sviluppatori mi ha esplicitamente invitato a ricordarlo! Allo scopo, basta ripetere i comandi indicati al precedente Passo 13: Installare Nimbus e riavviare il PC al termine.

Conclusioni, fonti e riferimenti

In questa lunga guida abbiamo visto come fare staking con Ethereum 2.0. La procedura è sicuramente un po’ articolata, ma è una buona occasione per tutti gli smanettoni di provare in prima persona come funziona la validazione Proof of stake su Ethereum e, per i possessori di 32 ETH, di guadagnare interessi molto succulenti sulle proprie monete.

Questo articolo è frutto della mia esperienza diretta con la sola testnet, poiché non possiedo un numero di ETH sufficienti a passare sulla “vera” mainnet. Ogni feedback da chiunque si cimenti è dunque particolarmente benvenuto.

Per preparare la guida ho consultato le seguenti fonti:

 

IL PRESENTE ARTICOLO, A CURA DI TURBOLAB.IT

 

 
Resta aggiornato con la Newsletter Settimanale