Applications clientes
Introduction
Dans le précédent chapitre, nous avons vu comment monter la chaîne de blocs et son infrastructure serveur, avec les membres, les autorités de certifications, le service de contrôle, le canal, l’installation et l’instanciation du chaincode, ainsi que l’obligatoire client d’administration. Si l’ensemble des opérations obéit à un ordonnancement strict, cet ordonnancement n’est ni simple ni totalement évident.
Dans ce chapitre, nous allons nous intéresser à deux parties essentielles du code d’une chaîne de blocs : le chaincode et l’application cliente. Nous allons aussi voir comment installer et utiliser un des clients d’exploration des chaînes de blocs fournis par la communauté Hyperledger, Explorer.
Chaincode et code client
1. Architecture des données et des transactions
Pour comprendre comment interroger et mettre à jour la chaîne de blocs depuis le chaincode, nous allons détailler les fonctions générales CreateDonor et QueryByKey.
Le code complet du chaincode de l’application de dons que nous utilisons ici se trouve à l’adresse : https://github.com/aws-samples/non-profit-blockchain/blob/master/ngo-chaincode/src/ngo.js
Nous avons cependant besoin de revenir quelques instants au niveau du registre pour en comprendre deux de ses aspects dans Hyperledger Fabric : les données et les transactions.
Avec notre application de dons, nous avons des donateurs, des organisations et des dons. Il nous faut donc enregistrer la liste de ces donateurs et organisations (les données), et l’ensemble de dons (les transactions).
Cependant, on pourrait débattre du fait que la création d’un nouveau donateur, par exemple, est une transaction. Pourquoi donc enregistrer ce donateur en tant que donnée séparée de la transaction qui l’a créée ?
Pour deux raisons assez simples à comprendre :
-
Pour simplifier le développement. Il est en effet, a priori, plus simple d’interroger une base de données à la recherche d’une valeur particulière plutôt que de parcourir un ensemble de transactions à la recherche de celle qui a créé telle donnée, tout en parcourant l’ensemble de celles qui ont pu en modifier, voire en supprimer la valeur.
-
Pour accélérer les accès. La version d’une donnée enregistrée est celle actuelle, c’est-à-dire le résultat de sa création et de toutes les modifications qui y ont été apportées (et que nous sommes capables de tracer, puisqu’il s’agit du caractère immutable d’une chaîne de blocs). Il n’est donc pas nécessaire de parcourir toutes les transactions qui ont donné sa valeur actuelle à la donnée recherchée.
Ainsi, dans Hyperledger Fabric, nous avons deux composants essentiels :
-
L’état du monde, une base de données des valeurs actuelles des données, appelées aussi états, du registre. Cette base de données...
Hyperledger Explorer
Hyperledger et la communauté de la fondation Linux proposent un outil d’administration d’un réseau Hyperledger Fabric appelé Hyperledger Explorer. Ce dernier peut s’installer pour administrer un réseau créé avec Amazon Managed Blockchain. C’est ce que nous allons voir dans cette dernière partie.
Hyperledger Explorer permet, comme son nom le laisse sous-entendre, d’explorer un registre, ses blocs, ses transactions, ses données, ainsi que l’ensemble des éléments constitutifs d’un réseau Hyperledger Fabric comme la liste des nœuds pairs, les chaincodes, l’état des services, etc.
Commençons par installer les prérequis à Hyperledger Explorer : une base de données PostgreSQL (version 9.5 ou ultérieure) et un équilibreur de charge pour accéder à l’application depuis Internet.
1. Prérequis à Hyperledger Explorer
a. Base de données
Dans beaucoup de domaines informatiques, AWS facilite la vie du développeur et de l’administrateur en proposant des services packagés. Les bases de données n’échappent pas à cette règle avec RDS, les services de bases de données relationnelles. C’est ce que nous allons utiliser pour installer la base de données PostgreSQL nécessaire à Hyperledger Explorer.
Depuis la console AWS, connectez-vous au service RDS. Cliquez ensuite sur Bases de données dans le volet gauche, puis sur le bouton Créer une base de données. Pour faciliter la vie des développeurs, AWS propose désormais une installation en quelques clics, appelée Easy Create. Dans la mesure où nous avons besoin de définir précisément certains paramètres, nous choisirons la méthode Standard !
Figure 8 - Création standard ou facile
Après avoir choisi le type de base de données comme étant PostgreSQL (vous pouvez conserver la valeur de la dernière version, 12.5-R1 au moment de l’écriture de ce livre), sélectionnez l’offre gratuite pour bénéficier de 12 mois de gratuité. Dans le cas où vous souhaitez déployer Hyperledger Explorer, vous pouvez...
Aller plus loin
Nous voilà arrivés à la fin de cette découverte d’Amazon Managed Blockchain. Nous sommes conscients que nous n’avons pas traité toutes les subtilités d’une telle technologie. Il suffit de parcourir la documentation d’Hyperledger Fabric pour se rendre compte de l’immensité de ce framework. Vous avez cependant les bases nécessaires pour vous lancer dans le développement d’applications à base de chaîne de blocs et de smart contracts, sans avoir besoin de gérer ni d’administrer l’ensemble de l’infrastructure sous-jacente, AWS la prenant en charge.
Pour aller plus loin dans la compréhension détaillée d’AMB, les exemples fournis par AWS sont une source quasi inépuisable. Deux d’entre eux, particulièrement intéressants, vous sont proposés.
-
https://github.com/aws-samples/bank-transfer-blockchain-reinvent2019-workshop. Cette application, qui s’appuie sur plusieurs membres et plusieurs chaincodes, illustre le mécanisme de transfert interbancaire. En plus des fonctions de transfert, vous y découvrirez l’intégration avec d’autres services AWS comme Kinesis qui permet d’intercepter des événements en temps réel et de déclencher tout type d’action, comme par exemple une notification....