Bitcoin: perché avere un full node e come installarlo

Umberto Tarantino
BEN Italia
Published in
3 min readFeb 25, 2023

--

Perchè avere un nodo?

Possono essere molteplici le motivazioni che spingono qualcuno a mettere su un full node Bitcoin. Di seguito un tentativo di raggrupparle in categorie:

  • Apprendimento: imparare di più sulla tecnologia alla base del Bitcoin e sulla sua architettura decentralizzata. Utile per sviluppatori, studenti o semplicemente per chi è interessato a comprendere meglio il funzionamento di Bitcoin.
  • Supporto alla rete: contribuire alla decentralizzazione della rete Bitcoin, rendendola più resiliente a eventuali attacchi. Più sono i nodi e più è garantito che le transazioni siano confermate rapidamente e che la rete rimanga stabile e sicura.
  • Privacy: verificare autonomamente ogni transazione sulla rete, avere il pieno controllo sui proprii movimenti ed eventualmente scegliere nodi con cui entrare in collegamento che rispettino il livello di privacy desiderato.
  • Politica monetaria: scegliere di utilizzare solo il software che supporta le regole che si preferiscono, influenzando indirettamente le decisioni della comunità riguardo la politica monetaria.
  • Ricerca: accedere ai dati della rete in tempo reale (numero di transazioni, dimensione della blockchain, distribuzione dell’hashrate, ecc). Utile per ricercatori, analisti o chiunque voglia studiare la rete.
  • Sviluppo: lavorare allo sviluppo di nuove funzionalità di Bitcoin o sviluppare e testare applicazioni che si interfacciano in maniera diretta con il protocollo.
  • Filosofia: partecipare attivamente alla comunità considerando Bitcoin come un movimento di forte cambiamento sociale, aperto a tutti.

È bene precisare che è possibile distinguere diverse tipologie di nodo Bitcoin. Non considerando il mining node, che compete con altri nodi simili per il diritto di aggiungere un nuovo blocco alla blockchain (utilizzando hardware specifico ormai appannaggio di mining farm), si possono considerare almeno 3 tipi di nodo:

  • Full node: conserva l’intera blockchain di Bitcoin e partecipa attivamente alla validazione delle transazioni e dei blocchi.
  • Pruned node: elimina periodicamente parti della blockchain che non sono più necessarie per la validazione delle transazioni, al fine di risparmiare spazio di archiviazione.
  • Lightweight node: noto anche come SPV node, non conserva l’intera blockchain di Bitcoin, ma solo le informazioni necessarie per validare le transazioni in arrivo.

Come si evince, solo un full node, che verifica e valida tutte le transazioni, può fornire una maggiore sicurezza alla rete e all’utente che lo utilizza.

Installazione manuale in due passi

Due semplici passi da seguire:

  1. Scaricare l’ultima versione di Bitcoin Core da qui
  2. Avviarlo e aspettare che si sincronizzi al 100%.

L’operazione di sincronizzazione consiste nello scaricare circa 500 GB di dati, corrispondenti a tutti i blocchi della blockchain, e indicizzarli in modo che Bitcoin Core sia allineato all’ultimo blocco aggiunto alla catena. Al primo avvio impiega fino a qualche giorno per completare la sincronizzazione, a seconda del computer e del collegamento ad internet utilizzati.

Una volta raggiunto il 100% si ottiene un full node “up and running”, pronto a ricevere connessioni in ingresso e ad unirsi quindi al resto della rete di Bitcoin.

Utenti più esperti potrebbero considerare l’impostazione di alcuni parametri, modificando direttamente il file di configurazione di Bitcoin Core (“bitcoin.conf”). Di seguito un esempio di configurazione:

bind=0.0.0.0
upnp=1
listen=1
port=8333
maxconnections=64
dbcache=64
par=2
checkblocks=24
checklevel=0
disablewallet=1rpccookiefile=<your-path>/.bitcoin/.cookie
rpcbind=127.0.0.1
rpcport=8332
rpcallowip=127.0.0.1

Sostituire <your-path> con il percorso in cui si trova il file bitcoin.conf , ad esempio ~/.bitcoin/bitcoin.conf nel caso di sistema operativo Linux.

Gli utenti di quest’ultimo, qualora siano senza interfaccia grafica, possono seguire lo stato di avanzamento della sincronizzazione consultando con tail il file di debug di Bitcoin Core:

tail -f ~/.bitcoin/debug.log

Progress 1.000000, ovvero 100%

Installazione automatica

In alternativa all’installazione manuale, è possibile raggiungere lo stesso scopo, incluso la configurazione sopra mostrata, lanciando un solo comando:

curl https://bitnodes.io/install-full-node.sh | sh

Si tratta dell’installazione di Bitcoin Core semplificata da uno script, messo a disposizione dal BitNodes.io.

Ovviamente, anche in questo caso il full node diventa operativo una volta che il client risulta sincronizzato al 100%.

--

--