Da dove inizio per imparare Bitcoin?

Regtest, la blockchain locale

Molte persone vorrebbero imparare a utilizzare il protocollo Bitcoin, oppure vorrebbero aumentare la proprio conoscenza e non sanno da dove iniziare.

Noi siamo sempre stati convinti che per capire realmente una qualsiasi tecnologia dobbiamo metterla in pratica.

Abbiamo già scritto una guida per permettere di sincronizzare l’intera blockchain in un dispositivo esterno come Raspberry, ma per prove più “quick and dirty” vi consigliamo di utilizzare la regtest.

 
La sandbox, dove puoi fare le tue prove senza farti male 🙂

Che cosa è la regtest?
Potremo definire la regtest la blockchain locale.
È il punto di partenza per sviluppare applicazioni basate su blockchain e/o per iniziare a studiarla.
Se sei uno sviluppatore questo non ti dovrebbe sorprendere, solitamente abbiamo 4 ambienti durante lo sviluppo di una qualsiasi applicazione, locale, dev, staging, prod.

Quindi possiamo replicare l’ambiente di produzione Bitcoin sul proprio computer, compreso il lavoro sporco del miner.
Stai calmo, i bitcoin che mini non valgono niente!

Ecco come fare.
Scarica l’ultima versione di Bitcoin demon. (ad oggi 0.19.0.1)

$ curl -O https://bitcoin.org/bin/bitcoin-core-0.19.0.1/bitcoin-0.19.0.1-osx64.tar.gz

Per prima cosa verifichiamo che il checksum ottenuto con l’algoritmo SHA256 sul pacchetto tar appena scaricato sia fedele a quello che troviamo all’interno di SHA256SUM.ASC, così da essere sicuri di aver scaricato il pacchetto desiderato.

$ sha256sum --check SHA256SUMS.asc --ignore-missing

risultato:

bitcoin-0.19.0.1-osx64.tar.gz: OK
sha256sum: WARNING: 20 lines are improperly formatted

NB: tutti i file e i comandi sono eseguiti all’interno della stessa cartella.

Scarichiamo anche le relative firme per verificare l’integrità del pacchetto.

Se non sei pratico di PGP, guarda questo articolo!

$ wget https://bitcoincore.org/bin/bitcoin-core-0.19.0.1/SHA256SUMS.asc
$ wget https://bitcoin.org/laanwj-releases.asc
$ gpg --import laanwj-releases.asc
$ gpg --verify SHA256SUMS.asc
gpg: Signature made Sun Nov 24 10:14:42 2019 CETgpg:using RSA key 90C8019E36C2E964gpg: Good signature from "Wladimir J. van der Laan (Bitcoin Core binary release signing key) <laanwj@gmail.com>" [unknown]

Adesso che siamo sicuri di aver scaricato il pacchetto giusto, possiamo estrarlo con il comando

Estraiamo quindi il pacchetto che abbiamo scaricato:

$ tar -xvf bitcoin-0.19.0.1-osx64.tar.gz

e spostare l’eseguibili nel percorso $PATH di default.

$ sudo mkdir -p /usr/local/bin
$ sudo cp bitcoin-0.19.0.1/bin/bitcoin* /usr/local/bin/.

In questo modo potremo richiamare il demone e il client Bitcoin da qualsiasi percorso, così da evitare di inserire il percorso assoluto o relativo dell’eseguibile.

Per verificare che tutto sia corretto, potete lanciare il comando.

$ bitcoind --version
Bitcoin Core version v0.19.0.1

Se volete verificare il percorso del vostro demone potete utilizzare il comando which.

$ which bitcoind
/usr/local/bin/bitcoind

Ok, siamo pronti per lanciare il nostro demone e utilizzare la regtest.
per farlo è sufficiente passare come parametro -regtest.

$ bitcoind -regtest

Otteniamo cosi un pò di output, ovvero il log del nostro nodo.
In un altra finestra del terminale possiamo iniziare ad utilizzarlo tramite il client che abbiamo già spostato precedentemente nel percorso $PATH.

$ bitcoin-cli -regtest getblockcount
0

Come vedete non abbiamo nessun blocco, infatti la blockchain è “vergine”.
Dove viene salvata la blockchain?
Per il sistema operativo OSX la puoi trovare nel percorso:

~/Library/Application Support/Bitcoin/

Per linux e windows, vi rimando alla pagina wiki di riferimento.
https://en.bitcoin.it/wiki/Data_directory.

Adesso con il comando:

$ bitcoin-cli help

Hai la lista di comandi da utilizzare per iniziare a divertirti!

Con questo piccolo tutorial puoi anche seguire il nostro libro Bitcoin dalla teoria alla pratica disponibile sia su Amazon sia sul nostro sito ufficiale corsobitcoin.com.