Plan de vol pour : Créer un réseau à chaînes de blocs privé avec Hyperledger Fabric

Ce Propulseur a été créé et la documentation rédigée par Senofi

Les Propulseurs de l’ATIR sont des jeux structurés de ressources en nuage, documentation incluse, illustrant une technologie émergente. Offerts gratuitement, ils ont été conçus par des entreprises canadiennes d’expérience qui ont élaboré des produits ou des services au moyen de la technologie en question et ont accepté de partager leur savoir.

Prêt à décoller?

Voici ce que vous trouverez dans ce Plan de vol.

Aperçu

Qu’est-ce qu’Hyperledger Fabric?

Hyperledger est le cadriciel d’un registre décentralisé (DLT) de source ouverte, de qualité similaire à celle des cadriciels d’entreprise, lancé par la Linux Foundation en décembre 2015. Fabric, une plateforme de DLT ultra modulaire, peut être déployé à l’intérieur de ce cadriciel en vue d’un usage industriel.

On associe souvent les expressions « chaîne de blocs » et « registre décentralisé » (DLT) à la cryptomonnaie. Cependant, cette technologie résout d’importants problèmes liés à la distribution des données et des applications. En bref, l’abréviation DLT désigne la technologie et chaîne de blocs, une application précise de cette dernière.

On s’est servi de la technologie DLT pour déployer des applications d’affaires réparties, prêtes à l’emploi, qui automatisent la fiabilité des transactions. Cette technologie permet aussi de sécuriser le partage des données entre maintes entreprises.

Il existe plusieurs définitions de la DLT. Certaines plus techniques et complexes, d’autres relativement simples, mais incomplètes. La meilleure description en est sans doute donnée dans Wikipédia :

  • Un registre distribué (aussi appelé registre partagé; en anglais distributed ledger ou shared ledger) est un registre simultanément enregistré et synchronisé sur un réseau d’ordinateurs, qui évolue par l’addition de nouvelles informations préalablement validées par l’entièreté du réseau et destinées à ne jamais être modifiées ou supprimées. Un registre distribué n’a ni administrateur central, ni stockage de données centralisé.
  • Un réseau pair-à-pair et un algorithme de consensus sont nécessaires afin d’assurer le bon fonctionnement du système. Une des formes de registre distribué est le système de la chaîne de blocs, qui peut être public ou privé.

« Réseau pair-à-pair » et « base de données distribuée » ne sont pas de nouveaux concepts. Les applications et les produits technologiquement matures qui y recourent ne manquent pas (partage de fichier pair-à-pair, système de gestion de base de données réparti moderne).

Un réseau pair-à pair autorise une architecture d’applications distribuée où de nombreuses tâches seront prises en charge par les pairs du réseau, c’est-à-dire les participants qui utilisent les applications sur un pied d’égalité et forment les nœuds dits « pair-à-pair » du réseau.

De son côté, une base de données distribuée stockera les données à divers endroits, sur des ordinateurs distincts ou connectés entre eux. Habituellement, une base de données de ce genre doit être contrôlée et administrée centralement.

La véritable percée qu’a permis la DLT réside dans le fait qu’aucune administration centrale n’est nécessaire. Les données sont réparties entre les participants du réseau, qui exploitent leur propre nœud. Autrement dit, il n’existe aucun point de contrôle central et aucune panne centrale n’est possible. Ce concept est extrêmement important pour les entreprises qui utilisent la technologie DLT et les chaînes de blocs, pour lesquelles des transactions sécurisées, homogènes et traçables sont la clé du succès.

Quelle est son utilité pour l’entreprise?

Quelle est l’utilité de la DLT, comparativement aux solutions reposant sur d’autres technologies? Examinons quelques problèmes que cette technologie contribue à résoudre.

Confiance

La DLT est une formidable solution si votre réseau de partenaires connaît des problèmes de fiabilité. Vous ne devrez sans doute pas remplacer les systèmes existants par des applications DLT, mais plutôt les intégrer et les amener à collaborer. Un problème de fiabilité ne signifie pas nécessairement que la confiance ne règne pas entre les partenaires ou les nœuds du réseau. Le problème pourrait être associé aux données, quand une partie reçoit des informations erronées de l’autre partie, par exemple. Dans un tel cas, la partie qui obtient l’information éprouvera de la difficulté à en valider la véracité.

Une entreprise pourrait, par exemple, récupérer le dossier de crédit d’un client de l’agence d’évaluation qui est sa partenaire sans que la qualité des données soit garantie et ne pouvoir aisément établir la cohérence des données obtenues. Les entreprises mettent souvent en place des procédés aussi complexes qu’onéreux comme un audit ou une vérification manuels pour remédier à un tel problème.

Quand on se questionne sur la fiabilité des données échangées entre les entreprises d’un réseau, la technologie DLT constitue une excellente approche pour trouver une solution!

Transparence et traçabilité

Les partenaires d’affaire utilisent souvent des logiciels internes sur des systèmes et des applications que leur ont vendus et qu’entretiennent leurs fournisseurs. Intégrer ces systèmes s’avère habituellement peu pratique. Dans la majorité des cas, implanter des solutions et des moyens pour que ces systèmes puissent converser et échanger des données entre eux (ETL, API Web, files de messages, etc.) et maintenir ces systèmes est une activité à la fois complexe et coûteuse. En effet, il suffit d’une petite défaillance dans la chaîne de communication pour que les systèmes de production s’arrêtent et les opérations de l’entreprise en souffriront passablement. Un des principaux problèmes dans ce cas concerne le manque de transparence dans les transactions entre les partenaires, avec les conséquences qu’on imagine au niveau des données.

À la base même du problème de transparence et de traçabilité se trouve l’absence d’un mécanisme qui autoriserait la conclusion de transactions déterministes et complètes dans le réseau d’affaire. Une application DLT en vertu de laquelle les nœuds du réseau appartiendraient aux partenaires, qui les exploiteraient également, rendrait les transactions et les données échangées totalement transparentes et traçables en temps réel.

En d’autres termes, la technologie DLT est, par nature, transparente et traçable. Mieux, le réseau d’affaire qui l’adopte n’aura pas besoin de recourir à des audits aussi laborieux que coûteux. La cohérence et la transparence des données sont choses faites dès que la transaction est inscrite dans le registre distribué.

La DLT peut bonifier des industries et des activités très diverses. Le réseau d’affaire ne se résume pas nécessairement à un réseau externe raccordant des partenaires; il pourrait s’agir d’un réseau interne dont les données doivent être vérifiées et validées par l’organisation. Parmi les secteurs qui pourraient bénéficier de la DLT, mentionnons les suivants.

  • Chaîne d’approvisionnement – Bâtir une chaîne d’approvisionnement avec des données en temps réel sur les commandes, les expéditions, les livraisons et les paiements.
  • Soins de santé – Partager de façon sécuritaire les données sur les patients, la recherche ou toute autre activité sensible entre les membres d’un réseau.
  • Télécommunications – Sécuriser l’échange de données sensibles sur la clientèle ou les activités de l’entreprise (l’échange pourra s’effectuer entre deux entreprises ou entre l’entreprise et le consommateur).
  • Administration publique – Améliorer les opérations du gouvernement et sa collaboration avec le secteur privé.
  • Identité numérique et protection des renseignements personnels – Stocker et protéger des données personnelles (l’utilisateur pourra donner son accord avant que les données soient partagées entre les membres du réseau).

Pourquoi choisir cette technologie et pas une autre?

Hyperledger est une plateforme communautaire de source ouverte ayant pour objectif le développement d’une série de cadriciels, d’outils et de bibliothèques stables dont on se servira pour déployer des chaînes de blocs comme on le ferait dans une entreprise. Hyperledger héberge les projets de source ouverte les plus importants de la Linux Foundation et Hyperledger Fabric figure parmi les projets les plus populaires de la famille Hyperledger.

Hyperledger Fabric sert de base au développement d’applications ou de solutions à architecture modulaire. Ce cadriciel transforme les composants comme un service par consensus ou un service d’adhésion en modules prêts à l’emploi. Modulaire et polyvalent, il se prête à une foule d’usages dans l’industrie. Son approche unique au consensus se traduit par une performance élevée sans que la protection des données délicates en souffre.

Pratiques exemplaires

  • Planifiez – les bonnes décisions en matière d’architecture doivent être prises d’emblée, car il est parfois difficile de modifier le modèle de données à la base d’une chaîne de blocs et son fonctionnement.
  • Commencez modestement : validez le concept et apprivoisez la technologie.
  • Précisez la structure du réseau, les participants et les règles qui s’appliqueront aux transactions, puis documentez-les.
  • Établissez les exigences minimales applicables aux nœuds du réseau en collaboration avec les participants afin que le maillon le plus faible de la chaîne ne réduise pas la performance de celle‑ci.
  • Utilisez toujours le chiffrement et un protocole TLS commun pour la communication entre les nœuds du réseau.
  • Comptez deux serveurs par organisation pour valider les certificats. Le premier gèrera les certificats d’identification de l’organisation et l’autre les certificats TLS.
  • Prévoyez des services de surveillance et d’avertissement pour éviter les problèmes avec le réseau et vous assurer qu’il fonctionnera comme il devrait le faire. Plus il y aura de participants dans le réseau et plus le temps système sera long.
  • Si vous utilisez CouchDB, n’oubliez pas de créer des index afin de récupérer les éléments de la base de données clé-valeur (KVS) qui y est appariée.

Documentation complète sur la version 2.2 d’Hyperledger (en anglais)

Trucs et hics

  • Truc : Consultez toujours la documentation HLF et HLF CA sur le site Web officiel. Assurez-vous que le document correspond à la version d’Hyperledger (HL) qu’utilisent vos composants.
  • Truc : Dans la mesure du possible, commencez par la version LTS (Long Term Support) la plus récente du logiciel HLF. Choisissez la version la plus avancée possible pour profiter des dernières fonctionnalités et de la correction des bogues.
  • Truc : Utilisez un protocole TLS commun pour sécuriser au maximum le canal de communication. De cette façon, les nœuds vérifieront le certificat TLS du client avant d’autoriser la communication au niveau du protocole.
  • Truc : Le certificat TLS d’un nœud (pair/ordonnanceur) pourrait inclure le nom DNS du nœud sur l’étiquette, ce qui permettra de déplacer aisément les nœuds d’une adresse IP à l’autre sans qu’on ait à modifier le certificat.
  • Truc : Habituellement, une organisation utilisera Kubernetes et Docker pour orchestrer les nœuds de son réseau. Ces deux outils de source ouverte jouissent d’un excellent soutien de la part de leur communauté d’utilisateurs. Inutile d’opérer le réseau directement sur le système d’exploitation d’une machine virtuelle (MV) dont le maintien et l’exploitation pourraient devenir difficiles à la longue.
  • Truc : On peut retrancher un pair du réseau en supprimant son identité et en détruisant son conteneur. Assurez-vous toutefois qu’il ne s’agit pas d’un pair d’ancrage, car cela pourrait avoir des répercussions sur les opérations et les communications de l’entreprise. Remplacez d’abord le pair d’ancrage par un neuf sur les canaux, puis éliminez l’ancien.
  • Hic : Ne stockez pas les données des nœuds (registre, KVS) dans le répertoire de fichiers ou les volumes de la MV locale. Utilisez plutôt des volumes attachables (stockage persistant) afin de ne pas perdre les données si jamais la MV tombe en panne. Effectuer une copie de sauvegarde ou restaurer les données conservées dans un système de stockage persistant est un jeu d’enfant.
  • Hic : Habituellement, le certificat TLS n’est valable que jusqu’à une certaine date. Assurez-vous de les remplacer avant qu’ils soient périmés, afin que les nœuds et les utilisateurs puissent communiquer sans interruption. La rotation des certificats TLS par le service d’ordonnancement est extrêmement importante et doit être planifiée dès le départ en vue d’une exécution rapide.

Ressources

Consultez les tutoriels et la documentation énumérés ci-dessous pour en savoir plus sur cette technologie et son utilisation.

Voici une liste partielle des tutoriels que nous jugeons les plus utiles.

ContenuRésumé
Déployer un réseau de productionVue très générale de la bonne façon d’agencer séquentiellement les composants du réseau de production Fabric. Le document expose les pratiques exemplaires et quelques-unes des nombreuses considérations à ne pas oublier lors du déploiement.
Déployer un contrat intelligent sur un canalCe document passe en revue les étapes requises pour déployer un nouveau contrat intelligent sur le réseau Fabric.
Ajouter une organisation à un canalDescription des étapes à suivre pour ajouter une organisation à un canal existant
Aide-mémoire sur la ligne de commande HLFListe de commandes employées pour gérer les réseaux HLF et les codes d’enchaînement
Commandes des canaux des pairs HLFDescription détaillée des commandes servant à gérer et à exploiter les canaux sur un pair, c’est-à-dire d’accéder à un pair par un canal
Commandes du canal d’ordonnancement HLFDescription détaillée des commandes servant à gérer et à exploiter les canaux sur un ordonnanceur, c’est-à-dire d’accéder à un ordonnanceur sur un canal ou de créer de nouveaux canaux
Mettre la version de HLF à niveauRecommandations sur l’installation de la version la plus récente de HLF
Développer des applications avec HLFGuide détaillé sur l’élaboration d’applications avec HLF en vue de résoudre le problème d’une entreprise
Collections de données privées dans HLFExplication des collections de données privées et protection des données sensibles dans la chaîne de blocs
La sécurité dans HLFSurvol du modèle de sécurité HLF. Le document aborde des sujets comme les politiques, les permissions, le protocole TLS, la boîte noire transactionnelle, etc.
Guide de l’utilisateur sur l’autorité de certification HyperledgerInformations essentielles sur l’exploitation et la gestion d’un serveur HL CA, y compris comment créer, enregistrer et supprimer une identité

 

Documentation

Voici quelques documents qui vous en diront plus sur Hyperledger Fabric.

DocumentRésumé
Introduction à Hyperledger FabricApprenez-en davantage sur Hyperledger Fabric directement de la source grâce à cette brève entrée en matière sur le produit et la technologie à sa base

Soutien

Les listes de diffusion sont une bonne façon de rester en contact avec la communauté et d’obtenir la réponse aux questions techniques que vous pourriez vous poser. Abonnez-vous aux listes de diffusion de Fabric.

Compris? Maintenant laissez-nous vous montrer comme nous avons déployé HLF dans le nuage de l’ATIR…

Solution type pour Hyperledger Fabric

La solution type montre comment utiliser Hyperledger Fabric dans un réseau privé. Elle illustre un réseau à chaîne de blocs composé de trois participants qui échangent des données sur leurs transactions.

Pour les sociétés pharmaceutiques qui doivent protéger les données sur leurs essais, la solution type décrit comment Hyperledger Fabric permet d’enregistrer ces derniers et laisse les participants échanger les données d’une façon sécurisée et fiable. Contrairement aux solutions centralisées, où la défaillance d’une seule source ébranlera la confiance du réseau entier, la solution type répartit les données entre les participants et en autorise le partage en temps réel, ce qui en garantit la transparence.

La solution type illustre les technologies que voici :

  • Hyperledger Fabric
  • JS
  • Application Web en Java
  • Code d’enchaînement en Java
  • Docker

Consultez la page Solution Solution : Hyperledger Fabric pour en apprendre davantage sur le fonctionnement de la solution type.