Aller au contenu
Industrial Discipline
Tous les articles

3 min de lectureMis à jour le

Introduction à Hyperledger Fabric : concepts clés et premier réseau

Hyperledger Fabric en pratique : organisations, pairs, channels et ledgers, le flux d'une transaction, puis le déploiement d'un premier réseau de test avec les Fabric Samples.

Par Sahid Orentino Ferdjaoui

Hyperledger est un projet de collaboration open source, hébergé par la Linux Foundation (aujourd'hui sous l'égide de LF Decentralized Trust), qui vise à faire progresser la technologie blockchain dans divers secteurs. Il a servi d'incubateur à plusieurs frameworks et outils, dont Hyperledger Fabric, Hyperledger Sawtooth ou Hyperledger Indy.

Hyperledger Fabric

Hyperledger Fabric est le framework de blockchain destiné aux entreprises. Il offre des fonctionnalités avancées de confidentialité, de sécurité et d'évolutivité, et il est conçu pour être modulaire et extensible : il permet une grande variété d'applications autour de la blockchain.

À la différence d'une blockchain publique, un réseau Fabric est autorisé : chaque participant est une organisation identifiée, dotée de certificats délivrés par une autorité de certification (CA).

Les concepts à connaître

  • Organisation : un participant du réseau. Elle exploite un ou plusieurs pairs (peers).
  • Pair : un nœud qui détient une copie du ledger et exécute les contrats.
  • Chaincode : le contrat intelligent (smart contract), le code qui définit les transactions possibles sur un channel.
  • Service d'ordonnancement (ordering service) : il ordonne les transactions dans des blocs, sans connaître leur contenu métier.
  • Ledger : le registre. Il associe la chaîne de blocs, immuable, et un état courant (world state), une base clé-valeur reconstruite à partir de la chaîne.
  • Channel : un ledger indépendant, partagé par un sous-ensemble d'organisations.

Ledger et channels

Dans un réseau blockchain, le ledger est une base de données décentralisée et immuable qui enregistre les transactions. Il est répliqué sur les pairs qui y participent, ce qui garantit l'intégrité et la transparence des données.

Les channels permettent une communication privée entre un sous-ensemble des participants : transactions et ledgers y restent invisibles pour tous les autres. Un channel est donc un ledger indépendant, qui enregistre les transactions et l'état des chaincodes propres à ce channel. Chaque channel a son propre ledger, et un ledger n'est pas conçu pour gérer plusieurs channels : c'est une version cloisonnée de la blockchain, distribuée aux seuls participants autorisés.

Deux channels partageant une organisation : chacun possède son propre ledgerChannel A · ledger AChannel B · ledger BOrg1peerOrg2peerOrg3peerparticipe aux deuxUn ledger n'est jamais partagé entre channels : il est cloisonné.
Org2 appartient aux deux channels. Org1 ne voit rien du channel B, Org3 rien du channel A.

Le flux d'une transaction

Fabric sépare l'exécution du contrat de l'ordonnancement des transactions : l'état du ledger n'est écrit qu'après une validation.

Flux d'une transaction Fabric : exécuter, ordonnancer, valider1Exécuterclient · pairs endorseursLe client envoie la propositionaux pairs endorseurs. Ils simulentle chaincode et signent le résultat.2Ordonnancerservice d'ordonnancementLe client envoie la transactionendorsée au service d'ordonnancement,qui l'ordonne dans des blocs.3Validerpairs du channelChaque pair vérifie la politiqued'endossement et les conflits, puisécrit le bloc dans son ledger.
Fabric sépare l'exécution du contrat de l'ordonnancement des transactions, puis valide en dernier.

C'est cette séparation qui permet de choisir une politique d'endossement par chaincode — par exemple « deux organisations sur trois doivent signer » — et de faire évoluer le service d'ordonnancement sans toucher aux contrats.

Déployer un premier réseau

Pour lancer un premier réseau, quelques prérequis sont nécessaires : Docker, Git, cURL et jq. Go n'est requis que pour écrire du chaincode ou des applications en Go.

Installer Fabric et les Fabric Samples

Dans un répertoire dédié, récupérez le script d'installation officiel, puis exécutez-le :

curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh
chmod +x install-fabric.sh
./install-fabric.sh docker samples binary

Le script clone le dépôt fabric-samples, télécharge les images Docker de Fabric et les binaires (peer, configtxgen, cryptogen, fabric-ca-client…).

Démarrer le réseau et créer un channel

fabric-samples rassemble des configurations et des scripts d'exemple. Le réseau de test s'y trouve :

cd fabric-samples/test-network
./network.sh up createChannel -ca

Cette commande démarre le réseau et crée un channel. L'option -ca génère le matériel cryptographique avec des autorités de certification plutôt qu'avec l'outil cryptogen.

docker ps — noms des conteneurs (illustratif)
peer0.org1.example.com
peer0.org2.example.com
orderer.example.com
ca_org1
ca_org2
ca_orderer

Déployer un chaincode

Le même script déploie un chaincode d'exemple (asset-transfer-basic par défaut) sur le channel :

./network.sh deployCC

Vous disposez alors d'un réseau Hyperledger Fabric en cours d'exécution, avec un channel et un contrat intelligent prêts à recevoir des transactions.

Tout arrêter

./network.sh down

Pour aller plus loin

Contact

Ce problème vous parle ?

Nous intervenons sur ces sujets en production. Écrivez-nous quelques lignes de contexte.

Nous écrire