Utilizzare gli esempi dei libri con Docker
Utilizzare gli esempi dei libri con Docker#
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 Repositoryhttps://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 1cd 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 upviene utilizzato per avviare i container specificati in un file di configurazionedocker-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 NAMESf693d16b1961 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-bookcd Capitolo\ 3cd 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!
