Vai al contenuto principale

Come trasformare un Raspberry Pi 4 in un nodo eseguendo il flashing della scheda MicroSD

clientlivello di esecuzionelivello di consensonodi
Intermedio
EthereumOnArm
Ethereum su ARM(opens in a new tab)
10 giugno 2022
8 minuti letti minute read

Ethereum on Arm Γ¨ un'immagine Linux personalizzata che puΓ² trasformare un Raspberry Pi in un nodo di Ethereum.

Per usare Ethereum on Arm per trasformare un Raspberry Pi in un nodo di Ethereum, si consiglia il seguente hardware:

  • Raspberry 4 (modello B 8 GB), scheda Odroid M1 o Rock 5B (8 GB/16 GB RAM)
  • Scheda MicroSD (almeno 16 GB Classe 10)
  • SSD da minimo 2 TB, disco USB 3.0 o una SSD con un case USB a SATA.
  • Alimentatore
  • Cavo Ethernet
  • Port forwarding (vedi i client per maggiori informazioni)
  • Un case con dissipatore di calore e ventola
  • Tastiera USB, monitor e cavo HDMI (micro-HDMI) (opzionale)

PerchΓ© eseguire Ethereum on ARM?

Le schede ARM sono computer molto convenienti, flessibili e di dimensioni ridotte. Sono una buona scelta per eseguire i nodi di Ethereum perché sono economiche, possono essere configurate in modo che tutte le risorse si concentrino solo sul nodo, il che le rende efficienti, consumano quantità minime di energia e sono fisicamente piccole così da occupare poco spazio in qualsiasi casa. Inoltre è molto facile avviare i nodi perché il flashing della MicroSD del Raspberry Pi può essere eseguito in modo semplice con un'immagine pre-costruita, senza necessità di scaricare o creare software.

Come funziona?

Il flashing della scheda di memoria del Raspberry Pi Γ¨ eseguito con un'immagine pre-costruita che contiene tutto il necessario per eseguire un nodo di Ethereum. Con una scheda su cui Γ¨ stato eseguito il flashing, tutto ciΓ² che l'utente deve fare Γ¨ accendere il Raspberry Pi. Tutti i processi necessari per eseguire il nodo sono avviati automaticamente. Questo funziona perchΓ© la scheda di memoria contiene un sistema operativo (OS) basato su Linux su cui i processi a livello di sistema sono eseguiti automaticamente, trasformando l'unitΓ  in un nodo di Ethereum.

Ethereum non Γ¨ eseguibile usando il popolare OS Linux per Raspberry Pi "Raspbian" poichΓ© questo usa ancora un'architettura a 32 bit che causa agli utenti di Ethereum problemi di memoria, e i client di consenso non supportano i binari a 32 bit. Per superare ciΓ², il team di Ethereum on Arm Γ¨ migrato a un OS a 64 bit nativo chiamato "Armbian".

Le immagini comprendono tutti i passaggi necessari, dalla configurazione dell'ambiente, alla formattazione del disco SSD, dall'installazione ed esecuzione del software Ethereum fino all'avvio della sincronizzazione della blockchain.

Nota sui client di esecuzione e di consenso

L'immagine Ethereum su Arm include l'esecuzione precostruita e client di consenso come servizi. Un nodo Ethereum richiede che entrambi i client siano sincronizzati ed in esecuzione. È necessario solo scaricare e copiare l'immagine e quindi avviare i servizi. L'immagine è precaricata con i seguenti client di esecuzione:

  • Geth
  • Nethermind
  • Besu

e i seguenti clienti di consenso:

  • Lighthouse
  • Nimbus
  • Prysm
  • Teku

È necessario scegliere uno di ciascun gruppo da eseguire - tutti i client di esecuzione sono compatibili con tutti i client di consenso. Se non si seleziona esplicitamente un client, il nodo tornerà ai suoi valori predefiniti - Geth e Lighthouse - e li eseguirà automaticamente quando la scheda è accesa. È necessario aprire la porta 30303 sul router in modo che Geth possa trovare e connettersi ai pari.

Download immagine

L'immagine Raspberry Pi 4 Ethereum Γ¨ un'immagine "plug and play" che installa e imposta automaticamente sia i client di esecuzione che di consenso, configurarli per farli comunicare tra loro e connettersi alla rete Ethereum. Tutto ciΓ² che l'utente deve fare Γ¨ avviarne i processi usando un semplice comando.

Scarica l'immagine di Raspberry Pi da Ethereum on Arm(opens in a new tab) e verifica l'hash SHA256:

1# From directory containing the downloaded image
2shasum -a 256 ethonarm_22.04.00.img.zip
3# Hash should output: fb497e8f8a7388b62d6e1efbc406b9558bee7ef46ec7e53083630029c117444f

Nota che le immagini per le schede Rock 5B e Odroid M1 sono disponibili alla pagina di download(opens in a new tab) di Ethereum-su-Arm.

Flashing della MicroSD

La scheda MicroSD che sarà usata per il Raspberry Pi dovrebbe innanzitutto essere inserita in un computer desktop o portatile, così da eseguirne la copia. Poi, i seguenti comandi del terminale eseguiranno la copia dell'immagine scaricata sulla scheda SD:

1# check the MicroSD card name
2sudo fdisk -l
3
4>> sdxxx

È davvero importante inserire il nome corretto, perché il prossimo comando include dd, che cancella completamente i contenuti esistenti della scheda prima di caricarvi l'immagine. Per continuare, naviga fino alla cartella contenente l'immagine compressa:

1# unzip and flash image
2unzip ethonarm_22.04.00.img.zip
3sudo dd bs=1M if=ethonarm_22.04.00.img of=/dev/<sdxx> conv=fdatasync status=progress

Dopo aver eseguito la copia, la scheda puΓ² essere inserita nel Raspberry Pi.

Avviare il nodo

Con la scheda SD inserita nel Raspberry Pi, connetti il cavo Ethernet e la SSD, poi accendilo. Il sistema operativo si avvierΓ  e avvierΓ  automaticamente l'esecuzione delle attivitΓ  preconfigurate che trasformeranno il Raspberry Pi in un nodo Ethereum, compresa l'installazione e la creazione del software client. CiΓ² richiederΓ  probabilmente da 10 a 15 minuti.

Una volta che tutto Γ¨ installato e configurato, accedi al dispositivo tramite una connessione ssh o usando il terminale direttamente se alla scheda sono collegati uno schermo e una tastiera. Usa l'account ethereum per accedere, in quanto ha i permessi necessari per avviare il nodo.

1User: ethereum
2Password: ethereum

Il client di esecuzione predefinito, Geth, verrà avviato automaticamente. È possibile confermarlo controllando i registri utilizzando il seguente comando terminale:

1sudo journalctl -u geth -f

Il client di consenso deve essere avviato esplicitamente. Per fare questo, prima aprire la porta 9000 sul router in modo che Lighthouse possa trovare e connettersi ai pari. Quindi abilitare e avviare il servizio lighthouse:

1sudo systemctl enable lighthouse-beacon
2sudo systemctl start lighthouse-beacon

Controllare il client utilizzando i registri:

1sudo journalctl -u lighthouse-beacon

Si noti che il client di consenso si sincronizzerΓ  in pochi minuti perchΓ© utilizza la sincronizzazione dei checkpoint. Il client di esecuzione richiederΓ  piΓΉ tempo, potenzialmente diverse ore, e si avvierΓ  quando il client di consenso avrΓ  giΓ  terminato la sincronizzazione (questo perchΓ© il client di esecuzione ha bisogno di un obiettivo per la sincronizzazione fornito dal client di consenso).

Con i servizi Geth e Lighthouse in esecuzione e sincronizzati, il tuo Raspberry Pi è ora un nodo Ethereum! È più comune interagire con la rete Ethereum utilizzando la console Javascript di Geth, che può essere collegata al client Geth sulla porta 8545. È anche possibile inviare comandi formattati come oggetti JSON utilizzando uno strumento di richiesta come Curl. Maggiori informazioni nella documentazione di Geth(opens in a new tab).

Geth Γ¨ preconfigurato per segnalare le metriche a un pannello Grafana che puΓ² essere visualizzato nel browser. Gli utenti piΓΉ avanzati potrebbero voler utilizzare questa funzione per monitorare lo stato di salute del loro nodo accedendo a ipaddress:3000 con nome utente: admin e passwd: ethereum.

Validatori

Un validatore puΓ² anche essere aggiunto facoltativamente al client di consenso. Il software validatore consente al nodo di partecipare attivamente al consenso e fornisce alla rete sicurezza criptoeconomica. Per questo lavoro in ETH si viene ricompensati. Per poter eseguire un validatore, devi prima avere accesso a 32 ETH, che devono essere depositati nel contratto di deposito. Questo Γ¨ un impegno a lungo termine - non Γ¨ ancora possibile ritirare questi ETH!. Questo deposito puΓ² essere eseguito seguendo la guida passo-passo sul Launchpad(opens in a new tab). Fallo su un computer desktop/portatile, ma non generare chiavi - questo puoi farlo direttamente sul Raspberry Pi.

Apri un terminale sul Raspberry Pi ed esegui il seguente comando per generare le chiavi di deposito:

1sudo apt-get update
2sudo apt-get install staking-deposit-cli
3cd && deposit new-mnemonic --num_validators 1

Mantieni al sicuro la frase mnemonica! Il suddetto comando ha generato due file nel keystore del nodo: le chiavi del validatore e un file dei dati di deposito. I dati di deposito devono essere caricati nel launchpad, quindi devono esser copiati dal Raspberry Pi nel PC/portatile. Questo si puΓ² fare usando una connessione ssh o qualsiasi altro metodo copia/incolla.

Una volta che il file dei dati di deposito Γ¨ disponibile sul computer che esegue il launchpad, puΓ² essere selezionato e trascinato sul + nella schermata del launchpad. Segui le istruzioni sullo schermo per inviare una transazione al contratto di deposito.

Tornando al Raspberry Pi, puΓ² essere avviato un validatore. CiΓ² richiede l'importazione delle chiavi del validatore, l'impostazione dell'indirizzo per incassare le ricompense e successivamente l'avvio del processo pre-configurato del validatore. Gli esempi seguenti sono per Lighthouse, le istruzioni per gli altri client di consenso sono disponibili nella documentazione di Ethereum su Arm(opens in a new tab):

1# import the validator keys
2lighthouse account validator import --directory=/home/ethereum/validator_keys
3
4# set the reward address
5sudo sed -i 's/<ETH_ADDRESS>' /etc/ethereum/lighthouse-validator.conf
6
7# start the validator
8sudo systemctl start lighthouse-validator

Congratulazioni, hai ora un nodo di Ethereum completo e un validatore in esecuzione su un Raspberry Pi!

Maggiori dettagli

Questa pagina ha fornito una panoramica di come configurare un nodo Geth-Lighthouse e validatore utilizzando Raspberry Pi. Istruzioni piΓΉ dettagliate sono disponibili sul sito web Ethereum-su-Arm(opens in a new tab).

Ogni feedback Γ¨ benvenuto

Sappiamo che Raspberry Pi ha un'enorme base di utenti che potrebbe avere un impatto molto positivo sulla salute della rete di Ethereum. Sei pregato di approfondire i dettagli in questo tutorial, provare a eseguirlo su altre reti di prova, dare un'occhiata al GitHub di Ethereum su Arm, fornire feedback, creare ticket e richieste di pull e aiutare a far progredire la tecnologia e la documentazione!

Riferimenti

  1. https://ubuntu.com/download/raspberry-pi(opens in a new tab)
  2. https://wikipedia.org/wiki/Port_forwarding(opens in a new tab)
  3. https://prometheus.io(opens in a new tab)
  4. https://grafana.com(opens in a new tab)
  5. https://forum.armbian.com/topic/5565-zram-vs-swap/(opens in a new tab)
  6. https://geth.ethereum.org(opens in a new tab)
  7. https://nethermind.io(opens in a new tab)
  8. https://www.hyperledger.org/projects/besu(opens in a new tab)
  9. https://github.com/prysmaticlabs/prysm(opens in a new tab)
  10. https://lighthouse.sigmaprime.io(opens in a new tab)
  11. https://ethersphere.github.io/swarm-home(opens in a new tab)
  12. https://raiden.network(opens in a new tab)
  13. https://ipfs.io(opens in a new tab)
  14. https://status.im(opens in a new tab)
  15. https://vipnode.org(opens in a new tab)

Ultima modifica: @nixorokish(opens in a new tab), 17 aprile 2024

Questo tutorial Γ¨ stato utile?