Full Node

nodo completo

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

I Full Node sono nodi che scaricano l'intera cronologia di una blockchain e la tengono aggiornata con i nuovi blocchi.

Un full node aiuta il funzionamento della rete peer to peer, scaricando dagli altri nodi transazioni e blocchi, effettuandone la verifica e inoltrandoli a ulteriori nodi della rete.

La maggior parte dei full node offrono i propri servizi ai lightweight client consentendo loro di trasmettere le proprie transazioni alla rete e avvisandoli quando una transazione influisce sul loro portafoglio. Se i nodi che eseguono questa funzione non sono sufficienti, i client non saranno in grado di connettersi tramite la rete peer-to-peer e dovranno invece utilizzare servizi centralizzati.

Un full node mantiene e aggiorna le seguenti informazioni:

  • chain state: il chain state, o stato della chain, contiene le informazioni relative agli utxo, o utxo set
  • blocks db: reppresenta il database che memorizza tutti i blocchi della block chain
  • mempool: la mempool, l'area temporanea di transito delle transazioni non confermate attraverso la quale le transazioni vengono propagate ai nodi prima di essere inserite nella block chain

Il nodo ha comunicazioni:

  • inbound: o in ingresso, il nodo accetta connessioni in ingresso che vengono iniziate da nodi esterni per collegarsi al nodo; un nodo può avere fino a 117 connessioni inbound
  • oubound: o in uscita: le connessioni outbound vengono iniziate dal full node per collegarsi ai nodi esterni. Un nodo stabilisce 8 connessioni outbound

  • Banlist: il nodo mantiene una lista di nodi ai quali proibisce di avere delle connessioni, spesso a causa di comportamenti sospetti o violazione del protocollo.

  • Whitelist: la lista di nodi che ricevono permessi speciali

Un full node comunica con il mondo esterno attraverso i seguenti protocolli di comunicazione:

  • RPC: Remote procedure call, è il protocollo che consente al software locale di comunicare con il full node
  • http: il protocollo http, quello nato per il web, fornisce una interfaccia che consente agli utenti di interagire con il nodo tramite un browser web
  • ZMQ: ZeroMQ è una libreria di messaggi asincroni, spesso utilizzata per avere notifiche su transazioni e blocchi

Esistono diverse implementazioni software del full node, tra questi:


aggiornato il 2021-10-21