# Bitcoin in Action playground

Cosa trovi e puoi fare nel playground?

![https://twitter.com/satoshiwantsyou/status/1347015559901290497](https://852358698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQKJKgcTd2_-nxzyaak%2F-MREu0RaqmxlIJ4c3eW6%2F-MREuJN-QBOhi49N76bD%2Fhal.jpg?alt=media\&token=580995b7-cdd5-4ddc-b403-d8f565119363)

> <https://github.com/bitcoin-dalla-teoria-alla-pratica/bitcoin-in-action-playground>

* Smart Contract 101 utilizzando [Bitcoin script](https://playground.bitcoininaction.com/bitcoin-smart-contract-101)
* Sperimentare con la [Blockchain](https://playground.bitcoininaction.com/video-corso-su-bitcoin#blockchain) di Bitcoin
* Creare e manipolare [Transazioni](https://playground.bitcoininaction.com/video-corso-su-bitcoin#transazioni)
* Comprendere il funzionamento dei [Wallet](https://playground.bitcoininaction.com/video-corso-su-bitcoin#wallet)
* Simulare le operazioni di [Mining](https://playground.bitcoininaction.com/video-corso-su-bitcoin#mining)
* Provare con mano la [firma digitale](https://playground.bitcoininaction.com/video-corso-su-bitcoin#blockchain)
* Integrare [Node.js e Bitcoin](https://playground.bitcoininaction.com/bitcoin-e-node.js)
* [SegWit](https://playground.bitcoininaction.com/segwit)
* [Smart Contracts/Multisig](https://playground.bitcoininaction.com/smart-contracts-multisig)
* [Oracoli](https://github.com/bitcoin-dalla-teoria-alla-pratica/playground/blob/master/NOTES.md) #TODO
* [PSBT](https://bitcoindevkit.org/repl/interface/#create_tx) #TODO
* [Lightning Network](https://playground.bitcoininaction.com/lightning-network)

## Chi siamo

> <https://bitcoininaction.com/>

Bitcoin in Action playground e' realizzato dagli autori, [Alessio](https://www.linkedin.com/in/alessiobarnini) e [Alessandro](http://www.aqquadro.it/), dei libri "[Bitcoin dalla teoria alla pratica](https://www.amazon.com/Bitcoin-Dalla-teoria-pratica-Italian/dp/B07SNNNL2P)" / "[Bitcoin in Action](https://www.amazon.com/gp/product/B08NL5ZV6X)" / "[Bitcoin 199 domande](https://www.amazon.it/Bitcoin-199-domande-Alessio-Barnini/dp/1098612639)" e del canale [**YouTube Bitcoin in Action**](https://www.youtube.com/BitcoinInAction) con lo scopo di smorzare il piu' possibile la curva di apprendimento per sviluppare con Bitcoin script e sperimentare con il protocollo Bitcoin in generale.

Segui il [Bizantino su Twitter](https://twitter.com/satoshiwantsyou) per ricevere aggiornamenti!

![https://twitter.com/satoshiwantsyou](https://852358698-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MQKJKgcTd2_-nxzyaak%2F-MQPjy3Fd9eV8gG2PQOD%2F-MQPkuxHgJ_iO7p79MbY%2Fimage.png?alt=media\&token=ac0e4af6-5ac0-43c4-8ae2-a405b48c529a)

## Bitcoin e' una rete P2P

Quando sviluppiamo una web app o app mobile l'architettura si articola su diversi tier eg. frontend/backend/database.

Ogni nodo della rete P2P Bitcoin ha il suo frontend (REST/RPC API), il suo backend (demone *bitcoind*) ed il suo database (una cartella zeppa di file, la famigerata blockchain).

{% hint style="info" %}
L'ambiente di sviluppo locale per Bitcoin, il nostro playground, quindi richiede la messa in funzione di uno o piu' nodi e utility.
{% endhint %}

Possiamo utilizzare gli stessi strumenti che usiamo per configurare ambienti di sviluppo per web app anche per Bitcoin: Docker!

{% hint style="info" %}
Grazie al setup docker-compose che proponiamo vi ritroverete con un'ambiente di sviluppo, come si dice, cotto e mangiato.🍝
{% endhint %}

## Iniziamo!

> Sul [README](https://github.com/bitcoin-dalla-teoria-alla-pratica/bitcoin-in-action-playground#ubuntu-2004) e' disponibile una guida passo passo riguardo l'installazione di Docker/docker-compose su **Ubuntu 20.04** realizzata da [@massmux](https://twitter.com/massmux) ed altri primi passi!

Come anticipato utilizzeremo Docker e docker-compose, seguite i passaggi presenti nella [guida ufficiale](https://docs.docker.com/compose/install/) e sarete pronti per proseguire!

{% hint style="info" %}
Se hai come sistema operativo Windows ti consigliamo di utilizzare il [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)

Docker + WSL: <https://docs.docker.com/docker-for-windows/wsl/>

Per accedere alle cartelle del WSL da Windows hai due possibilita'\
\- tramite l'apposita [estensione di VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)\
\- clonare il [repository](https://github.com/bitcoin-dalla-teoria-alla-pratica/bitcoin-in-action-playground) nella cartella `/mnt/c` del WSL che equivale ad averlo in `C:`
{% endhint %}

### Run on Google Cloud Shell

Per chi non vuole/puo' installare Docker e docker-compose sul proprio computer.

Google Cloud Shell e' una VPS a tempo ([120g dall'ultima login](https://cloud.google.com/shell/docs/limitations#usage_limits)) gratuita per chi ha un account Google. Per resettare Cloud Shell leggere [qua](https://cloud.google.com/shell/docs/resetting-cloud-shell#resetting).

Utilizzando l'apposito [pulsante disponibile su GitHub](https://github.com/bitcoin-dalla-teoria-alla-pratica/bitcoin-in-action-playground#run-on-google-cloud-shell) si attivera' la vostra Cloud Shell e un tuorial vi guidera' nei primi passi.
