Guida Hyperledger Fabric: cos'è, qual'è il contesto di utilizzo e come implementare una testing network

Kode

Utente Emerald
10 Dicembre 2013
1,226
81
371
623
Ultima modifica da un moderatore:
1600328620063.png


Premessa: Questa guida non si presenta come un vero e proprio manuale di utilizzo ma ha lo scopo di fornire una panoramica generale sulle tecnologie discusse andando a soffermarsi solamente su alcuni concetti base. Se si è interessati all'approfondimento dell'argomento, si consiglia di leggere la documentazione ufficiale disponibile al seguente link.

[SOTTOTITOLO]Cos'è Hyperledger Fabric?[/SOTTOTITOLO]
Hyperledger Fabric è un progetto open-source per lo sviluppo di blockchain fondata dalla Linux Foundation. I membri che hanno contribuito alla realizzazione del progetto sono alcune software house come CISCO, NTT Data, Red Hat , banche e system integrator. Ad oggi, si contano un numero di contributors superiore ai 200 membri e Hyperledger Fabric ha riscosso un buon feedback tanto da poter essere utilizzato e promosso da colossi come, ad esempio, IBM.

Il progetto si apre verso lo sviluppo di una blockchain di tipo permissioned in grado di poter autorizzare l'accesso alla rete solamente da parte di quei nodi che possiedono specifici permessi formalizzati dall'owner della blockchain (in genere è rappresentato da una singola entità, un consorzio, un'associazione o un'intera azienda).

[SOTTOTITOLO]Architettura[/SOTTOTITOLO]
Hyperledger Fabric si basa su una architettura modulare all'interno di un ledger distribuito (su cui si fonda proprio blockchain) in cui poter gestire le regole transazionali in maniera modulare. In altri termini, tramite Hyperledger, si possono stabilire quali nodi della rete possano essere considerati dei verificatori delle varie transazioni presenti nel ledger. Tali nodi vengono chiamati endorse e la loro configurazione viene predisposta all'interno di file policy specifici interni e visibili solamente all'amministratore di sistema.

Un'altra caratteristica innovativa che questa tecnologia offre è quella dei cosiddetti canali: ossia la possibilità di avere delle transazioni visibili solo da un sottoinsieme di nodi, tali nodi vengono distinti in organizzazioni che possono connettersi o meno ad un canale. Adottando questo approccio, le transazioni e gli smart contract (o chaincode) legati ad esse sono resi visibile solamente dai nodi annessi ad un canale.

Per adottare un'approccio ancora più modulare, Hyperledger Fabric offre un meccanismo di raggruppamento che definiscono le organizzazioni. Quest'ultime raffigurano un insieme di nodi aventi le stesse caratteristiche (ad esempio l'accesso ad un medesimo canale).

[SOTTOTITOLO]Creazione di un blocco[/SOTTOTITOLO]
Ogni canale dispone di un orderer. Esso è un peer speciale in grado di poter ordinare una serie di transazioni avvenute all'interno di un medesimo canale in modo da poterle raggruppare all'interno di un blocco. In seguito all'ordinamento, si passa alla fase di validazione, alla distribuzione del blocco nella catena e all'aggiornamento del ledger distribuito.

1600332483037.png


[SOTTOTITOLO]Privatizzazione dei dati[/SOTTOTITOLO]​

Uno dei punti forti di Hyperledger Fabric è la gestione di private data. Possiamo sintetizzare questa caratteristica in due meccanismi di privatizzazione:

  • Channel Privacy: Come accennato prima, le transazioni hanno un channel scope. Questo prevede che esse possano essere visibili solamente ai peer collegati a quel canale.
  • Internal Data Privacy: I dati manipolati tramite le operazioni definite negli smart contract (chiamati in Hyperledger con il termine di chaincode) sono rappresentati da strutture dati definite proprio nel medesimo chaincode. Ogni smart contract ha associato a se un file policy che configura la visibilità delle varie collezioni. In questo modo possiamo rendere le informazioni visibili solamente ad un sottogruppo di nodi del canale I(in genere tutti quelli appartenenti ad una particolare organizzazione). Cosi facendo andiamo a categorizzare i peer in autorizzati e non autorizzati alla visione e alla manipolazione di alcune collezioni del channel chaincode.
1600333322546.png



[SOTTOTITOLO]Contesto di utilizzo[/SOTTOTITOLO]​

I contesti ideali su cui poter utilizzare Hyperledger Fabric sono principalmente quelli in cui si devono gestire dati condivisi da parte di due o più aziende avendo anche la possibilità di rendere alcuni di questi dati privati. Le aziende possono rispondere sotto una delle varie organizzazioni di rete, mentre il contesto relazionale può essere espresso all'interno della logica transazionale di un canale. IBM ha reso disponibile una propria blockchain basata su Hyperledger Fabric applicata nell'ambito del trasporto, finanziario e nello smistamento di materie prime o prodotti finiti.

Un'esempio di applicazione reale lo vediamo con la soluzione per la piattaforma di finance del gruppo giapponese Mizuho. Con questo progetto, Mizuho punta a razionalizzare le operazioni commerciali e migliorare l’efficienza della catena di approvvigionamento delle operazioni bancarie dei loro sistemi.

[SOTTOTITOLO]Come implementare una testing network basato su Hyperledger Fabric[/SOTTOTITOLO]​

Se si vuole carpire a pieno ogni vantaggio nell'utilizzo di questa tecnologia, vi consiglio di seguire la guida step-by-step della documentazione ufficiale per la creazione di un testing network

Tendo a specificare che i chaincode supportano 4 linguaggi: Java, Python, Golang e Javascript con i relativi SDK.
All'interno del tutorial proposto nel link precedente, è possibile anche implementare un'applicazione esterna che si relazioni con la blockchain cosi è possibile rendersi conto del livello di sicurezza che si ha tra il sistema interno e l'interfaccia esterna.

IBM ha lanciato anche una propria serie di tutorial in grado di effettuare operazioni di integrazione di componenti partendo da una rete Fabric di base cosi da poter "customizzare" la propria blockchain.
Il link di riferimento è: https://developer.ibm.com/components/hyperledger-fabric/tutorials/

Fonti:
(Documentazione ufficiale) https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html
(IBM Hyperledger Development) https://developer.ibm.com/components/hyperledger-fabric/

Spero che la mia guida vi abbia suscitato un pò di interesse nel settore delle blockchain.

>_ kode
 

Allegati

  • 1_rCw8rgYwX9W-WLpPdSaSqA.png
    1_rCw8rgYwX9W-WLpPdSaSqA.png
    296.1 KB · Visualizzazioni: 214
  • Screen-Shot-2019-01-09-at-12.13.06-PM-e1554391908445.png
    Screen-Shot-2019-01-09-at-12.13.06-PM-e1554391908445.png
    786.9 KB · Visualizzazioni: 3,940