Per utilizzare questo repository, per prima cosa è necessario clonarlo.
git clone https://github.com/bitcoin-dalla-teoria-alla-pratica/docker-bitcoin-books.git --depth 1
cd docker-bitcoin-books
Successivamente, cloniamo i repository del libro:
git clone https://github.com/bitcoin-dalla-teoria-alla-pratica/errata-corrige-e-sorgente-esempi.git --depth 1 &&
git clone --branch descriptor --depth 1 https://github.com/bitcoin-dalla-teoria-alla-pratica/Bitcoin-in-action-book.git
Dobbiamo buildare l'immagine in base all'architettura del nostro sistema. Ad esempio, per un Mac con architettura ARM64, utilizziamo:
docker buildx build --platform linux/arm64 --no-cache --load -t bitcoin-books .
Se non conosciamo l'architettura da utilizzare, possiamo lanciare il seguente comando per buildare l'immagine per più architetture:
docker buildx build --platform linux/amd64,linux/arm64 --load -t bitcoin-books .
Per avviare i container, utilizziamo:
docker-compose up
Se vogliamo avviarli in background (detached mode):
docker-compose up -d
Ipotizziamo di voler replicare l'esempio del Capitolo 3 P2SH - P2PK
.
- Entriamo nel container:
- Individuiamolo con il comando:
docker ps
- Utilizziamo il valore sotto la colonna
NAMES
, ad esempio:docker exec -it bitcoin-in-action zsh
- Individuiamolo con il comando:
- Spostiamoci nella cartella del Capitolo 3 ed eseguiamo lo script:
cd Bitcoin-in-action-book cd Capitolo\ 3/P2SH\ -\ P2PK ./main.sh
- Per attivare il debug della transazione:
Nota: La differenza con il libro è minima. Invece di lanciare
./main.sh DEBUG=1
sh main.sh
, dobbiamo eseguire./main.sh
.
Grazie al progetto btcdeb, possiamo effettuare un debug passo-passo delle transazioni.
Grazie al progetto btc-rpc-explorer, abbiamo a disposizione un explorer su Regtest. Questo ci consente di visualizzare cosa sta accadendo sulla rete regtest di Bitcoin attraverso un'interfaccia grafica.
Per accedere all'explorer, apri il browser e vai su: http://localhost:3002/
Per uscire dal container:
exit
Per fermare e rimuovere i container:
docker-compose down
Se vogliamo solo fermarli senza rimuoverli:
docker-compose stop