inizio
inizio

Bitcoin si basa su una rete composta da decine di migliaia di nodi sparsi in tutto il mondo. Ogni utente può lanciare liberamente il proprio nodo per partecipare, poiché Bitcoin è un sistema senza autorizzazioni. Ma come fa un computer a connettersi effettivamente al resto della rete e a sincronizzarsi sulla blockchain? Questa è la domanda a cui rispondiamo in questo articolo.
Un nodo Bitcoin, o» Nodo » in inglese, è semplicemente un computer che esegue un software client per il protocollo Bitcoin. Il software più conosciuto e utilizzato è Bitcoin Core, che costituisce circa il 99% della rete.
Un nodo Bitcoin partecipa alla rete mantenendo una copia della blockchain, che è la cronologia completa di tutte le transazioni Bitcoin. Le sue funzioni sono verificare e inoltrare nuove transazioni e nuovi blocchi. Sebbene sia possibile che un nodo partecipi al mining, questa attività è ora per lo più distinta dal funzionamento del nodo stesso, poiché vengono utilizzati computer specializzati chiamati ASIC.
.png)
Esistono vari tipi di nodi su Bitcoin. I nodi completi mantengono una copia completa della blockchain e verificano ogni blocco e transazione. Ci sono anche dei nodi leggeri, o» SPV », che memorizza solo le intestazioni dei blocchi. Infine, ci sono i nodi eliminati, che controllano tutti i blocchi sulla blockchain, ma mantengono in memoria solo i blocchi più recenti.
Per connettere un nuovo nodo alla rete Bitcoin, il primo passo è scaricare e installare Bitcoin Core o altro software client su un computer. Una volta installato, il nodo dovrebbe essere in grado di accedere alle informazioni sulla blockchain. Tuttavia, quando è stato lanciato per la prima volta, non aveva informazioni sui suoi colleghi. Quindi, come si stabilisce questa prima connessione alla rete Bitcoin?
Il processo di scoperta di un nodo utilizza diversi meccanismi per connettersi ad altri nodi, in un ordine di priorità specifico.
La prima azione che il nodo intraprenderà è consultare un file chiamato» peers.dat » in Bitcoin Core. Questo file memorizza le informazioni di accesso per i peer con cui il nodo ha già interagito in passato. Ogni volta che il nodo viene riavviato, il software tenta di connettersi con gli indirizzi IP memorizzati in questo file. Ovviamente, per un nuovo nodo, questo file è vuoto in quanto non ha ancora avuto interazioni con la rete. Tuttavia, è possibile aggiungere manualmente gli indirizzi IP a questo file.
Se il file peer.dat è vuoto, il nodo passa quindi al secondo meccanismo di connessione, che consiste nel contattare il» Semi DNS ». Questi server, gestiti da sviluppatori riconosciuti nella comunità Bitcoin, fungono da punti di connessione iniziali. Quando viene avviato un nuovo nodo, chiede a questi server di ottenere un elenco casuale di indirizzi IP dei nodi Bitcoin che si presume siano attivi, il che gli consente di stabilire connessioni e unirsi alla rete. Attualmente, ci sono 10 server Semi DNS :
Puoi trovare questo elenco aggiornato su Il Bitcoin Core GitHub.
Normalmente, a questo punto, il nodo dovrebbe riuscire a stabilire connessioni. Tuttavia, se Semi DNS non rispondono entro 60 secondi, un terzo meccanismo può essere utilizzato come ultima risorsa: il» Nodi Seed ».
Nel codice sorgente del software Bitcoin Core, c'è Un elenco di indirizzi IP più di 1.000 nodi presumibilmente attivi. Questo elenco è codificato nel software. Se i primi due meccanismi falliscono, il nodo tenterà di connettersi utilizzando questo elenco per stabilire una connessione iniziale e ottenere indirizzi IP aggiuntivi dai nodi Bitcoin.
Grazie a questi meccanismi, è estremamente improbabile che un nodo Bitcoin non riesca a connettersi alla rete.
➤ Scopri 6 motivi per gestire il tuo nodo Bitcoin.
Su un nodo Bitcoin, ci sono due tipi di connessioni con altri nodi: connessioni in entrata e connessioni in uscita. Le connessioni in uscita si verificano quando il nostro nodo avvia la connessione a un altro nodo. Per impostazione predefinita, un nodo Bitcoin Core tenta di stabilire connessioni con 8 peer in uscita. Queste connessioni sono generalmente considerate più affidabili perché è stato l'utente a scegliere di connettersi a questi nodi specifici.

Al contrario, le connessioni in entrata si verificano quando un altro nodo stabilisce una connessione con il nostro nodo. Bitcoin Core consente fino a 125 connessioni in entrata (questo numero può essere regolato). Le connessioni in entrata sono percepite come meno affidabili di quelle in uscita perché vengono avviate dall'esterno e potrebbero quindi provenire potenzialmente da entità dannose.

Tuttavia, le informazioni scambiate tra colleghi in uscita e in entrata sono le stesse. Ad esempio, se il mio nodo viene a conoscenza di una nuova transazione, la invierà sia ai peer in uscita che in entrata.
➤ Tutorial: come posso configurare un nodo Bitcoin Core?
Quando un nodo cerca di connettersi alla rete Bitcoin, dispone di tre meccanismi per trovare altri computer con cui scambiare informazioni e transazioni blockchain. In ordine di priorità, il nodo consulterà prima il suo file locale peers.dat per verificare se contiene indirizzi IP di altri nodi. Se questo file è vuoto, il nodo richiederà un elenco di indirizzi IP dai server dedicati chiamato» Semi DNS ». Come ultima risorsa, se questi server non forniscono una risposta, il nodo può utilizzare gli indirizzi IP di» Nodi Seed » scritto direttamente nel codice sorgente di Bitcoin Core.
Una volta stabilite le prime connessioni, il nodo chiederà ai suoi peer i blocchi necessari per sincronizzarsi sulla blockchain con il lavoro più accumulato. Dopo aver completato questo processo di verifica a partire dal blocco Genesis, pubblicato da Satoshi Nakamoto nel 2009, il nodo Bitcoin sarà pienamente operativo.

