Replica gli esempi del Libro Bitcoin in Action con Docker!

Salve a tutti,

abbiamo deciso di istituire un repository dedicato per semplificare l’utilizzo degli esempi presenti nei nostri due libri, “Bitcoin dalla Teoria alla Pratica” e “Bitcoin in Action”. A tale scopo, faremo uso di Docker!

Ma cosa è Docker?

Docker è una piattaforma open source che facilita la creazione, distribuzione e gestione di applicazioni all’interno di container. I container Docker sono ambienti virtuali isolati che contengono tutto ciò che serve per eseguire un’applicazione, compreso il codice, le librerie e le dipendenze.

Abbiamo sviluppato un’immagine Docker che racchiude tutti gli elementi necessari, dalla versione attuale del nodo (24.0) alla verifica dell’integrità del pacchetto, fino al nostro fidato debugger btcdeb!

Potete trovare l’immagine creata e le istruzioni dettagliate su come interagire con gli esempi del libro all’indirizzo specificato.

E ora, all’azione!

Il primo passo è installare Docker sul vostro computer.

Successivamente, clonate i repository necessari.


In Action!

Per prima cosa, è necessario installare Docker sul proprio computer.

Successivamente, cloniamo i repository necessari.

git clone https://github.com/bitcoin-dalla-teoria-alla-pratica/Docker-bitcoin.git --depth 1
cd Docker-bitcoin

Quindi procediamo con il clonare gli esempi dei libri.

git clone https://github.com/bitcoin-dalla-teoria-alla-pratica/errata-corrige-e-sorgente-esempi.git --depth 1 &&
git clone https://github.com/bitcoin-dalla-teoria-alla-pratica/Bitcoin-in-action-book.git --depth 1

A questo punto, non ci resta che avviare Docker con:

docker-compose up

Il comando docker-compose up viene utilizzato per avviare i container specificati nel file di configurazione docker-compose.yml.

Una volta avviato il container, controlliamo tutti i log per assicurarci che il nodo stia utilizzando la rete regtest. Come? Se vediamo che sta scaricando blocchi dalla rete, significa che qualcosa è andato storto!

Apriamo quindi un altro terminale e digitiamo:

docker ps

Questo comando restituirà tutti i container in esecuzione, il che è di vitale importanza perché dobbiamo “entrare” all’interno del container ed eseguire gli esempi del libro.

Ecco il risultato ottenuto utilizzando docker ps:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f693d16b1961 docker-bitcoin-bitcoin-in-action "/entrypoint.sh" 2 hours ago Up 2 hours 0.0.0.0:18443-18444->18443-18444/tcp docker-bitcoin-bitcoin-in-action-1

Entriamo quindi dentro il container:

docker exec -it docker-bitcoin-bitcoin-in-action-1 zsh

Immaginiamo di voler eseguire l’esempio del Capitolo 3.

cd Bitcoin-in-action-book
cd "Capitolo 3"
cd "P2SH - P2PK"
./main.sh

Se vogliamo eseguire l’esempio utilizzando il debug, sarà sufficiente passare il parametro DEBUG

./main.sh DEBUG

E btcdeb sarà attivato!

Bitcoin dalla teoria alla pratica – Bitcoin in Action