Come trasformare un Raspberry Pi 4 in un nodo eseguendo il flashing della scheda MicroSD
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 image2shasum -a 256 ethonarm_22.04.00.img.zip3# 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 name2sudo fdisk -l34>> 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 image2unzip ethonarm_22.04.00.img.zip3sudo 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: ethereum2Password: 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-beacon2sudo 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 update2sudo apt-get install staking-deposit-cli3cd && 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 keys2lighthouse account validator import --directory=/home/ethereum/validator_keys34# set the reward address5sudo sed -i 's/<ETH_ADDRESS>' /etc/ethereum/lighthouse-validator.conf67# start the validator8sudo 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
- https://ubuntu.com/download/raspberry-pi(opens in a new tab)
- https://wikipedia.org/wiki/Port_forwarding(opens in a new tab)
- https://prometheus.io(opens in a new tab)
- https://grafana.com(opens in a new tab)
- https://forum.armbian.com/topic/5565-zram-vs-swap/(opens in a new tab)
- https://geth.ethereum.org(opens in a new tab)
- https://nethermind.io(opens in a new tab)
- https://www.hyperledger.org/projects/besu(opens in a new tab)
- https://github.com/prysmaticlabs/prysm(opens in a new tab)
- https://lighthouse.sigmaprime.io(opens in a new tab)
- https://ethersphere.github.io/swarm-home(opens in a new tab)
- https://raiden.network(opens in a new tab)
- https://ipfs.io(opens in a new tab)
- https://status.im(opens in a new tab)
- https://vipnode.org(opens in a new tab)
Ultima modifica: @nixorokish(opens in a new tab), 17 aprile 2024