Mining criptovaluta su Raspberry Pi
Le Criptovalute non sono una novità, esistono dal 2013. L’anno scorso Elon Musk (CEO di Tesla e SpaceX) ha dato il suo endorsement (sostegno) a una di queste monete virtuali (il Dogecoin) e l’interesse per questo “mondo” è ritornato.
Le Fiat
Iniziamo dalla moneta tradizionale (euro,dollaro etc.) chiamata in gergo finanziario “Fiat”, ogni volta che avviene uno scambio con delle banconote, la banconota in sé non ha nessun valore intrinseco, sono le persone che effettuando questo scambio creano un valore, noi forniamo il valore alla banconota assegnandogliene uno (es. 5 euro per un biglietto di una mostra). Quando avviene uno scambio importante, per cui entrambe le parti riconoscono questo valore, c’è una terza parte (le banche centrali) che certifica e regola la valuta sovrana.
Nel 2008 è nato il protocollo bitcoin creato da un anonimo (o da più), sotto lo pseudonimo di Satoshi Nakamoto. L’obbiettivo era di rompere questo schema e permettere alle persone di scambiarsi denaro, scavalcando le banche centrali in maniera completamente decentralizzata. Per certificare le transazioni viene utilizzata la tecnologia (che funziona tramite crittografia) chiamata “Blockchain”.
Che Cos’è una Blockchain
Un registro centralizzato è un registro dove tutte le informazioni risiedono su un singolo “nodo”. Per nodo s’intende un luogo o un ente che ne garantisce l’attendibilità (es. il censimento di uno Stato è un registro pubblico centralizzato dato che appartiene allo Stato ed è certificato da quest’ultimo).
Un registro decentralizzato, nel nostro caso la Blockchain (letteralmente = catena di blocchi), è un registro pubblico consultabile, immutabile e quasi impossibile da contraffarre. In questo tipo di registro, le transazioni vengono scritte in un blocco, dove vengono trasmesse e conservate nel singolo nodo (che si crea con la transazione stessa). Essendo quindi pubblico, tutti possono vedere cosa c’è dentro? Se parliamo di Bitcoin, la risposta è SI.
La “chiave pubblica” di un portafoglio è quella che serve a inviare il denaro da un portafoglio ad un altro. Il portafoglio non è altro che un codice alfanumerico. Se si è ha conoscenza di una chiave pubblica, attraverso la ricerca di essa su internet si possono vedere i movimenti effettuati da quel wallet. In questo modo si vedranno esclusivamente i movimenti e non i dati del proprietario, in tal senso le transazioni con i bitcoin sono “anonime”. Esistono diverse tipologie di blockchain, a seconda dell’uso che se ne vuole fare.
Miners
Le informazioni sulle transazioni vengono pubblicizzate sulla rete Bitcoin e inserite su nodi Bitcoin che sono da verificare. Una volta verificati, verranno inserite in una “pool” (piscina). Questa “pool” o “memory pool” funge da sala d’attesa. Queste piccole transazioni rimarranno in attesa della possibilità di essere scritte nella blockchain e scolpite per sempre in essa. In attesa di cosa? sono in attesa dei “miners”. Il ruolo del “minatore” è quello di raccogliere queste transazioni e metterle all’interno di un nodo, quindi di scriverle nella blockchain. Il programma usato per “minare” deve risolvere dei puzzle crittografici. Quando il “miner” riesce a risolvere i successivi puzzle di hash crittografici e ad essere il primo e quindi il più veloce (non c’è un unico miners a risolverlo, ma diversi miners tentano di fare la stessa identica cosa), veniamo “ricompensati per i nostri sforzi”, ottenendo l’onore di aggiungere la transizione al blocco successivo della blockchain.
Cominciamo
Come accennato poco sopra, tante altre persone “competono” per risolvere lo stesso puzzle crittografico. È una situazione matematica molto complessa. Come la risolviamo?. Innanzitutto bisogna essere il più veloce ad arrivare alla soluzione. Ed è esattamente per questo che il Raspberry PI NON può essere usato per minare Bitcoin o Ethereum (altra cryptocoin) o una qualsiasi di queste tipologie di criptovalute. Questo infatti non ha sufficiente potenza di calcolo rispetto ad altre macchine costruite specificatamente per farlo.
Più minatori ci sono, più la difficoltà per la risoluzione del puzzle crittografico aumenterà. Quindi la difficoltà nel risolverlo aumenterà in base a quanti miners proveranno a risolverlo (Bitcoin e Ethereum sono le più popolari e c’è un bel gruppo di gente la fuori che ci prova… e di certo non usa un raspberry pi ma macchine con potenze di calcolo mostruose e grosse quantita di GPU). I miners creati specificatamente per questo usano anche macchine chiamate Asic, computer e dispositivi specializzati che sono costruiti esclusivamente per estrarre Bitcoin. Lo fanno più velocemente di chiunque altro (vi invito a vedere quanto costano!). Esistono datacenter pieni di questi mostri di calcolo.
Monero
Ora Arriviamo a Monero (un altra cryptocoin) e cerchiamo di capire perché nel nostro caso è meglio rispetto al Bitcoin o Ethereum. A Monero non vanno a genio le Asic. “Pensa” che siano un male per la blockchain e in effetti lo sono dato che vanno contro l’etica d’origine della blockchain. Centralizzare il controllo della valuta è il problema che si sta creando, visto la quantità di asic e di persone che riempiono i loro datacenter con essi. È come se un’azienda o una persona iniziasse ad ottenere maggiore controllo su ciò che viene aggiunto alla blockchain e aggiungesse più blocchi rispetto chiunque altro.
Quando si estrae un Bitcoin, si usa l’algoritmo SHA 256. Monero ha il proprio, chiamato random X e all’interno di questo algoritmo c’è un sistema di prevenzione a discapito delle Asic, rendendo non più così conveniente minarlo con quest’ultime. L’obiettivo di Monero è quello di permettere a chiunque di minare. Anche a qualcosa di più piccolo, come un Raspberry PI. La loro blockchain è più decentralizzata, più persone hanno la possibilità di scrivere un blocco.
Il processo di risoluzione che coinvolge i nostri computer nel “gareggiare” per risolvere questi puzzle, viene chiamato “proof of work”. Ci sarebbe ancora tanto d’approfondire ma direi di arrivare al nocciolo (per info maggiori scrivetemi nei commenti)
Crypto mine su raspberry PI e configurazione
Ora vi mostro una tipica configurazione del raspberry. Usiamo il Raspberry PI iOS, ma la versione 64 bit. Raspberry PI iOS 64 bit Scaricate lo zip file dalla cartella più recente: Vi rimando all’articolo su cui dovete applicare delle piccole modifiche: durante la scelta della sistema operativo scorrete la lista fino alla voce “Use Custom” e selezionate l’immagine contenuta nella cartella precedentemente scaricata.
scegliete lo storage selezionando la sd card (assicuratevi come sempre che sia vuota)
prima di scrivere sulla vostra sd card Premete CTRL+Shift+X e apparirà un piccolo menu
configurate la password del vostro utente pi e poco sotto configurate il wi-fi
dopo aver trovato l’ip del vostro dispositivo autenticatevi in ssh con le credenziali definite precedentemente
e cominciamo a trasformare il nostro affarino in un miner
aggiorniamo i repository con il seguente comando:
1
sudo apt update
e andiamo ad installare dei pacchetti che necessitiamo per l’opera:
1
sudo apt install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev -y
una volta terminato, useremo git per clonare il loro repository:
1
git clone https://github.com/xmrig/xmrig.git
muoviamoci all’interno della directory:
1
cd xmrig
creiamo una nuova directory:
1
mkdir build
e ci spostiamo al suo interno:
1
cd build
ora installaremo il programma direttamente dalla fonte, il comando da eseguire è il seguente:
1
cmake ..
una volta terminato eseguiamo:
1
make
e saremo pronti per cominciare a minare, ma non abbiamo ancora terminato, dobbiamo predisporre il nostro portafoglio.
c’è configurata nel codice di xmrig un livello predefinito di donazione dell’1% (1 minuto su 100 minuti) può essere aumentata tramite l’opzione donate-level o disabilitata nel config.json. Quindi se NON cambiate quell’opzione starete donando quel 1% durante il mining, a vostra scelta quindi.
Il wallet
Estrarre/minare Monero, significa che guadagneremo delle coin (l’XMR). Dobbiamo essere in grado di ricevere la criptovaluta. creiamo il nostro wallet, per questo esempio ne farò uno veloce, ma ci sono diversi metodi per avere/creare un wallet (in locale in una macchina come andremo a fare ora o al sicuro sul web) Monero GUI Wallet installiamo la versione 64 bit di Windows, una volta installata andremo a selezionare la seguente opzione dopo aver lanciato il programma
può essere cambiato in qualsiasi momento.
vi ricordo che quando procedere a configurare il wallet, di tenere al sicuro (magari scritte su qualche foglio) le frasi che vi usciranno:
è il modo in cui ogni crypto wallet viene backuppato, nel restore del nostro portafoglio ci verranno chieste le seguenti paroline.
una volta terminato il processo nella voce “Account” uscirà il nostro codice/indirizzo del wallet.
Iniziamo il Mining
ora siamo pronti per minare:
1
./xmrig -o [indirizzo di un mining pool] -u [specificare indirizzo del tuo wallet] -p [una label del tuo raspberry pi]
necessitiamo di configurare un indirizzo di mining pool perchè con il nostro Pi da solo risulterà difficile essere premiati, dobbiamo entrare in una “squadra” e per farlo dobbiamo cercare dei mining pool e competere/minare insieme
verificate sempre ogni “requisito” prima di entrare in una qualsiasi mining pool, è possibile che la maggiorparte hanno anche delle percentuali di Fee (onorario) sul vostro mining.
Vi consiglio di dare uno sguardo a questo mining pool da qui è possibile anche verificare i propri dispositivi “miners” tramite il codice alfanumerico del vostro wallet se aderite a quest’ultimo.
Questo è cio che visualizzerete una volta in esecuzione, se premerete il tasto H della vostra tastiera visualizzerete l’hashrate, la vostra “velocità” nel risolvere i puzzle crittografici:
nell’immagine vedremo che per ogni core di cpu (il raspberry ne ha 4) corrisponderà un hashrate per secondo con un totale di 44.16
con il tasto S possiamo vedere se siamo riusciti ad avere qualche risultato e avere una share sul mining (quindi siamo riusciti a risolvere uno di questi puzzle e la nostra mining pool a scritto un blocco nella chain), la riuscita dipenderà ovviamente da diversi fattori, questo è quello che vedrete se riuscirete nell’impresa:
con C vedremo le informazioni della mining pool compreso di difficoltà, algoritmo in uso e tempo di connessione:
Conviene?
Facciamo subito il punto su questo, è redditizio eseguire il raspberry PI come miner e fare soldi? La risposta breve è no, non proprio, perché bisogna tenere conto dei costi dell’elettricità e di quanto in realtà stai guadagnando dal mining.
Secondo alcuni calcolatori di mining, si perde all’circa un centesimo al giorno durante il mining (ovviamente i costi dell’elettricità variano anche dal paese in cui ci si trova). Quindi, se lo scopo è di diventare ricco, uhm, scordatelo. Ma se hai intenzione di divertirti e affacciarti al mondo delle criptovalute e hai uno di questi aggieggini in giro e non sai cosa farci (molto difficile anche questo) e vuoi guadagnare un po di criptovaluta, solo passivamente anche, provaci.