Utilizzare gli esempi dei libri con Docker

Bitcoin In Action
3 min readMay 12, 2023

--

Ciao a tutti,
abbiamo pensato di creare un repository per facilitare gli esempi che troviamo nei due nostri libri, Bicoin dalla teoria alla pratica e Bitcoin in Action. Per questo andremo ad utilizzare Docker!

Il nostro Repository https://github.com/bitcoin-dalla-teoria-alla-pratica/Docker-bitcoin

Che cosa è Docker?

Docker è una piattaforma open source per la creazione, distribuzione e gestione di applicazioni in container. I container Docker sono degli ambienti virtuali isolati che includono tutto il necessario per eseguire un’applicazione, tra cui il codice, le librerie e le dipendenze.

Abbiamo quindi creato un’immagine docker che contiene tutto quello necessario, dall’installazione del nodo (ad oggi versione 24.0) la verifica dell’integrità del pacchetto e il nostro caro debugger btcdeb!

A questo indirizzo è possibile verificare come è stata creata l’immagine che andremo ad utilizzare e le istruzioni necessarie per interagire con gli esempi del libro.

In Action!

Per prima cosa sarà necessario installare Docker nel 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

Cloniamo quindi 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 in un file di configurazione docker-compose.yml.

Appena avviato il container leggeremo tutti i log, assicurarsi che il nodo stia utilizzando la rete regtest! Come? se vedere che sta scaricando dei blocchi dalla rete significa che qualcosa è andato storto!

Apriamo quindi un altro terminale, e digitiamo

docker ps

Il quale restituisce tutti i container che sono in esecuzione. Questo è di vitale importanza, perchè dobbiamo “entrare” all’interno del container ed eseguire l’esempi del libro.

Questo è il risultato che ottengo 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

Entro 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, niente di più facile, sarà necessario passare il parametro DEBUG=1

./main.sh DEBUG

e btcdeb sarà attivato!

--

--