Canali

Un canale di Hyperledger Fabric è una «sottorete» di comunicazione privata tra due o più membri della rete, che serve a scambiarsi transazioni in maniera privata. Un canale è definito dai membri (organizzazioni), peer per ogni organizzazione, il ledger condiviso, applicazioni chaincode e i nodi dell’ordering service. Ogni transazione nella rete è eseguita all’interno di un canale, dove ogni membro deve autenticarsi ed essere autorizzato a condurre transazioni su quel canale. Ogni peer che entra a far parte di un canale, ha la sua identità, data da un Membership Services Provider (MSP), che autentica ogni peer ai peer e servizi del canale.

Per creare un nuovo canale, il client SDK chiama la configurazione del system chaincode referenziando proprietà come gli anchor peers e i membri (le organizzazioni). Questa richiesta crea un genesis block per il ledger del canale, che memorizza le informazioni sulla configurazione riguardo le policy del canale, i membri e i peers. Quando si aggiunge un nuovo membro ad un canale già esistente, questo genesis block o, se disponibile, un blocco più recente di configurazione, viene condiviso con il nuovo membro.

Nota

Vedi la sezione Channel Configuration (configtx) per più dettagli sulle proprietà e strutture delle transazioni di configurazione

L’elezione di un leading peer per ogni membro sul canale determina quale peer comunica con l’ordering service. Se nessun leader viene identificato, può essere usato un algoritmo per identificare il leader. Il servizio di consenso ordina le transazioni e le distribuisce, in blocchi, ad ogni leading peer, che a sua volta distribuisce i blocchi agli altri peer, e attraverso il canale, usando il protocollo di gossip.

Sebbene un qualsiasi anchor peer possa appartenere a più canali, e quindi mantenere più registri, nessun dato di registro può passare da un canale all’altro. Questa separazione dei registri, per canale, è definita e implementata dal chaincode di configurazione, l’MSP e i dati di gossip protocol di diffusione. La diffusione dei dati, che include informazioni sulle transazioni, lo stato del registro e l’appartenenza al canale sono limitati ai peer con appartenenza verificabile sul canale. Questo isolamento di peer e dati contabili per canale, consente ai membri della rete che richiedono transazioni private e confidenziali per coesistere con concorrenti aziendali e altri membri soggetti a restrizioni, sulla stessa rete blockchain.