Come riutilizzare un vecchio Jetson Nano a 4 GB per minare la crittovaluta Monero a basso consumo energetico. Conviene rispetto al Raspberry?
Chi come noi si diletta nella teoria e nella pratica di utilizzo di sistemi embedded e single board computers (SBC) sta vivendo un periodo triste: prima il blocco dei mercati causa pandemia, poi lo shortage di circuiti elettronici, quindi la irreperibilità di Raspberry PI carrozzati con più di 2 GB a bordo e l’aumento grottesco dei costi dell’energia elettrica ci sta costringendo a rivalutare i nostri standard e a rovistare nei nostri cassetti alla ricerca di qualcosa di alternativo.
Nei miei ho ritrovato tre schede Jetson Nano 4GB (la “prima serie”) con processore ARM Cortex-A57 che avevo acquistato tempo fa per un progetto relativo ad un cluster economico. In uno degli ultimi fine settimana, mi sono trovato libero da impegni e mi sono chiesto se questa schedina fosse anch’essa utilizzabile come strumento per minare crittovalute (Monero) a basso prezzo.
L’idea è nata a seguito dei nostri precedenti articoli al riguardo (riportati in calce), e in sostanza ricalca l’articolo intitolato “Minare Monero su Raspberry PI: come e perché si fa“.
Monero mining on Jetson Nano – Configurazione
Partiamo da una scheda microSD vergine, ed installiamo Ubuntu. La QEngineering ha prodotto una immagine per Nano con Ubuntu 20.04 64 bit dotata di OpenCV, TensorFlow e Pytorch (!) ma anche la versione base Nvidia 18.04 (sempre a 64 bit) funzionerà egregiamente. In entrambi i casi verrà prodotta una scheda microSD contenente il sistema operativo e tutti i driver necessari per lavorare con il nostro Jetson Nano. Come sempre, una volta completata l’installazione occorre lanciare il sistema la prima volta, lasciare che il sistema operativo riconsoca la scheda e prepari lo spazio necessario, quindi rilanciare il sistema ed eseguire l’aggiornamento con i classici comandi:
1 2 3 |
sudo apt update sudo apt upgrade |
dopo aver collegato il Nano alla rete, per allineare la scheda con la versione più aggiornata del software di sistema.
Occorre ora installare e compilare il software per il mining
1 2 3 4 5 6 7 |
sudo apt install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev -y git clone https//github.com/xmrig/xmrig.git cd xmrig cmake . make |
La compilazione procederà da sola, mostrando sulla sinistra il livello percentuale di avanzamento.
E’ arrivato il momento di lanciare l’applicazione con il comando:
1 |
./xmrig -o gulf.moneroocean.stream:10128 -u addressWallet -p Nome_miner |
Ovviamente dovremo aver installato il nostro wallet (come indicato nell’articolo precedente)…
Inseriamo il nostro indirizzo di mining (può essere lo stesso di quello ottenuto nell’articolo precedente) e diamo un nome al nostro miner (ad esempio Nano_4GB_01).
Prestazioni
Passiamo ora alla valutazione dell’efficienza della scheda.
Rispetto al Raspberry PI 2GB testato in precedenza, il Nano ha un processore leggermente meno esoso dal punto di vista energetico, e consuma tra i 10W ed i 15W a pieno regime con 4 cores attivi al 100%. Viste le caratteristiche del PI (circa 40/45 hash al secondo con un processore più efficiente) ci si aspetterebbe un output che si aggira attorno agli 80 Hash al secondo.
E invece no!
A causa della RAM aggiuntiva e della presenza di istruzioni AES specifiche implementate sul SoC, questo mostriciattolo sfiora i 200 Hash al secondo!
Questo significa che anche utilizzando un Raspberry PI da 4GB o più, avremmo comunque un consumo maggiore ed una velocità minore rispetto al Jetson Nano.
Questi sono i “piccoli” vantaggi riscontrati quando si compila per conto proprio codice ottimizzato per un dato processore…
Per gli amanti delle tabelle di numeri, eccone una:
Speed (Hash/s) | Power(W/h) | Efficiency (Hash/W) | |
---|---|---|---|
Raspberry PI 4 2GB 4 cores | 50 | 14 | 3,57 |
Intel Atom N2940 2 cores | 60 | 45 | 1,33 |
Intel Celeron 2 cores | 150 | 60 | 2,5 |
Jetson Nano 4gb 4 cores | 200 | 12,5 | 16 |
Intel G2030 4 cores | 390 | 110 | 3,55 |
Non solo il Jetson Nano è il SoC che consuma di meno nel mining, ma grazie all’ottimizzazione degli algoritmi e l’utilizzo di istruzioni particolari dell’hardware è anche quello che offre un ritorno di investimento (ROI) quadruplo rispetto al secondo classificato!
Ciò non toglie che possiamo creare i nostri cluster di Jetson Nano e iniziare a minare Monero tranquillamente senza timori di perdite d’esercizio. Con Il costo dell’energia elettrica fissato (ad esempio) a 0,45 euro/kWh, ed un consumo mensile di 12W, il Nano consuma mediamente 8,64 KW al mese, pari a 3,89 euro al mese, ma “guadagna” solo 0,13 euro al mese.
Sono tempi duri per i minatori…
…e la GPU?
Ovviamente il nostro Nano è dotato anche di una piccola GPU Maxwell da 128 cores. Possiamo utilizzarla per i nostri scopi “minatori”?
Abbiamo ripreso in mano il codice sorgente del miner, selezionato l’algoritmo kawpow con i programmi xmrig e t-rex per cercare di vedere come si comporta il SoC di fronte ad imprese più ardue, come il mining di Ravencoin (vedi articolo relativo). Il makefile presenta la possibilità di arrivare un paio di switch e abilitare il path di compilazione CUDA, che utilizzi anche il sottosistema GPU parallelo per i calcoli.
Come si evince dalla schermata. i nostri sforzi hanno dato esito positivo, e la compilazione è riuscita. Purtroppo però gli eseguibili non sono partiti come sperato: il sistema CUDA è stato correttamente rilevato, ma il programma è andato in blocco. Forse la blockchain sulla quale minare i Ravencoin è un osso troppo duro per la nostra schedina, o forse l’installazione della distro Ubuntu prevede una preconfigurazione dei sistemi CUDA altrimenti non accessibili… Se riusciremo a sbloccare la potenza CUDA della scheda e trovare un algoritmo che la possa sfruttare senza tuttavia pesare troppo sul piccolo SoC, tornerete a sentirci.
Considerazione finali
Il periodo attuale non depone certamente a favore del mining, sia per gli alti costi energetici che per i bassi valori di ritorno delle crittovalute, ma noi lavoriamo per la gloria. Oggi abbiamo voluto mostrare come sia utile (oltre che dilettevole) configurare e ricompilare il software per adattarlo alle specifiche caratteristiche di un sistema hardware.
Se avete altre idee da proporci, o articoli da sviluppare, noi siamo qui.
Link utili:
- Criptovalute e mining con Raspberry PI, Arduino &co
- Minare Monero su Raspberry PI: come e perché si fa
- Monero mining 2 la vendetta: Smartphone clustering
- Il mining dopo Ethereum 2.0 – L’ipotesi Ravencoin
- Leggere il ticker di un exchange crypto con Python
- Interroghiamo lo stato della blockchain con Python
- Un minicluster Asic per il mining con Raspberry PI
Join our groups on Telegram…