DĂ©ployer Hyperledger Fabric 1.4 sur AWS

Hyperledger Fabric est une plate-forme blockchain open source de la Linux Foundation. Avec lui, vous pouvez créer des applications blockchain et contrôler l'accès et les autorisations pour les données dans la blockchain. Hyperledger Fabric doit être utilisé si vous souhaitez créer un réseau de blockchain privé ou définir des restrictions sur les transactions que chaque côté peut voir.

Dans la documentation d'Hyperledger Fabric, la création d'un réseau blockchain sur une machine à l'aide de Docker est bien planifiée, où chaque membre du réseau est un conteneur séparé. Mais le processus de configuration d'un réseau sur plusieurs machines physiques ou virtuelles n'est pas décrit. Cela sera discuté dans cet article.

Notre application blockchain est un service de stockage de certaines données médicales des enfants d'âge scolaire et préscolaire. Les données doivent être inchangées. Ils seront présentés sous la forme d’informations sur la vaccination et l’accord du patient avec un médecin particulier. Le réseau comprendra des membres de Parents (une organisation qui représente les intérêts des parents), de l'Hôpital (un hôpital avec les pédiatres dont les parents peuvent conclure un accord pour prendre soin de leurs enfants) et de la maternelle (une école maternelle qui peut demander des rapports de santé et des vaccinations pour ou un autre enfant à l'hôpital).

Chaîne de blocs gérée par Amazon


AWS dispose d'un service Amazon Managed Blockchain. Il vous permet de déployer des réseaux de chaînes de blocs à l'aide des interfaces utilisateur de la console AWS. Mais, après avoir acquis une certaine expérience de travail avec Amazon Managed Blockchain, nous avons dû abandonner l'idée d'utiliser le service dans des projets commerciaux. Il y avait plusieurs raisons à cela. Les principaux sont:

  1. Seule la version d'Hyperledger Fabric 1.2 était disponible dans Amazon Managed Blockchain, et au moment d'écrire ces lignes, la version 1.4 est utilisée pour créer des réseaux d'entreprise de blockchain. Il ne permet pas non plus l'utilisation de versions modernes des outils SDK Node.js;
  2. Amazon Managed Blockchain ne prend pas en charge la base de données CouchDB, ce qui rend difficile la création d'applications qui indexent les données stockées.

Par conséquent, nous pensons qu'il est préférable d'utiliser des serveurs virtuels ou physiques pour créer des réseaux en utilisant le framework Hyperledger Fabric.

Ă€ propos des canaux d'application


Hyperledger Fabric a le concept de «canal». Un canal est un sous-réseau pour effectuer des transactions sensibles. Il y aura deux canaux dans notre application.

  • "Parentshospital". Il est destinĂ© aux transactions entre les membres des parents et des organisations hospitalières: crĂ©ation et modification de dossiers mĂ©dicaux, crĂ©ation d'un accord avec un pĂ©diatre, et signature d'un accord de pĂ©diatre.
  • "Parentshospitalkindergarten." Dans ce canal, les membres de Parents and Hospital interagiront avec les membres de Kindergarten. De plus, des rapports seront gĂ©nĂ©rĂ©s sur la base des donnĂ©es des dossiers mĂ©dicaux.

Environnement de travail


Nous déploierons notre réseau de blockchain à l'aide de Docker Swarm - il s'agit du système Docker natif pour le déploiement d'un cluster hôte. Si vous n'avez jamais travaillé avec Docker (et en particulier avec Docker Swarm), consultez d'abord ce produit et comment orchestrer des conteneurs à l'aide de Docker Swarm. La documentation décrit les principes de base de l'utilisation de ces outils.

L'ensemble de notre réseau sera situé sur des serveurs AWS EC2. Les informations au sein du réseau blockchain seront stockées dans CouchDB. Hyperledger Fabric prend également en charge la base de données LevelDB, mais CouchDB, contrairement à cette dernière, permet de rechercher par n'importe quel critère dans une collection de documents. Nous utiliserons également Fabric Certificate Authority - il s'agit d'un composant modulaire pour la gestion des identifiants réseau de toutes les organisations et de leurs utilisateurs. Il permet l'enregistrement des participants au réseau et la délivrance de certificats.

Nous aurons quatre serveurs EC2:

  1. Orderer, MySQL DB (pour stocker les informations d'application qui ne s'appliquent pas aux dossiers médicaux)
  2. Organisation des parents (Peer0, Peer1), CouchDB, Fabric-CA, CLI
  3. Organisation hospitalière (Peer0, Peer1), CouchDB, Fabric-CA
  4. Organisation de la maternelle (Peer0, Peer1), CouchDB, Fabric-CA

Création de serveurs EC2 sur AWS


Nous avons besoin des services t2.medium pour fonctionner. Ce type de serveur EC2 dispose d'une puissance de calcul suffisante pour installer tous les logiciels nécessaires et fonctionner avec l'outil Hyperledger Fabric. Dans Configurer le groupe de sécurité, définissez Tout le trafic et Source - 0.0.0.0/0, :: / 0.


Fig. 1. Configurez le groupe de sécurité dans le panneau AWS.

Nous avons quatre serveurs EC2:

  1. ec2-18-232-164-119.compute-1.amazonaws.com
  2. ec2-54-145-203-186.compute-1.amazonaws.com
  3. ec2-54-80-241-117.compute-1.amazonaws.com
  4. ec2-52-87-193-235.compute-1.amazonaws.com

Vous aurez naturellement vos propres chemins vers les serveurs EC2.


Fig.2. Préparé pour le fonctionnement des serveurs EC2.

Installation du logiciel prérequis sur les serveurs EC2


Maintenant, sur chaque serveur EC2, nous devons installer Docker et Git. Pour plus de commodité, ouvrez quatre onglets dans le terminal. Passons à chaque service EC2 via SSH:

Terminal 1:

HOST1=ec2-18-232-164-119.compute-1.amazonaws.com
ssh ec2-user@$HOST1 -i ./key-poc.pem

Terminal 2:

HOST2=ec2-54-145-203-186.compute-1.amazonaws.com
ssh ec2-user@$HOST2 -i ./key-poc.pem

Terminal 3:

HOST3=ec2-54-80-241-117.compute-1.amazonaws.com
ssh ec2-user@$HOST3 -i ./key-poc.pem

Terminal 4:

HOST4=ec2-52-87-193-235.compute-1.amazonaws.com
ssh ec2-user@$HOST4 -i ./key-poc.pem

Dans chaque terminal, exécutez les commandes suivantes:

sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo docker info
sudo yum install git
sudo usermod -a -G docker ec2-user
newgrp docker

Nous avons maintenant installé Docker et Git.

RĂ©seau


Nous devons cloner des éléments de notre réseau à partir du référentiel. Pour ce faire, exécutez la commande dans chaque terminal:

git clone https://github.com/nixsolutions/blockchain-poc-network.git network

Nous devons également cloner les contrats intelligents du référentiel qui réguleront les relations entre les participants du réseau. Les contrats intelligents sont écrits dans la langue Golang.

Nous effectuons ces Ă©tapes sur chacun des quatre serveurs:

cd network && mkdir chaincode && cd chaincode
git clone https://github.com/nixsolutions/blockchain-poc-medical-contract.git medical-contract
git clone https://github.com/nixsolutions/blockchain-poc-kindergarten-contract.git kindergarten-contract

Dans le premier terminal, nous devons générer des fichiers de configuration de canal et des certificats pour connecter les organisations au réseau:

cd network/poc-network
./1_generate_connection_files.sh
./2_generating_channel_configuration.sh

Copiez maintenant les dossiers channel-artifacts et crypto-config vers les trois autres hôtes dans le dossier poc-network du répertoire parent du réseau. Remarque: lors de la copie d'organisations sur le serveur EC2, vous devez supprimer les certificats tiers du dossier crypto-config / peerOrganizations qui se rapportent au travail d'autres organisations. Par exemple, lors de la copie vers l'hôte Parents, nous devons laisser le dossier parents.poc-network.com dans ce dossier, mais supprimer hospital.poc-network.com et kindergarten.poc-network.com.

Création d'une pile Docker Swarm


Pour que les conteneurs appartenant à différentes organisations et situés sur différents serveurs EC2 puissent accéder les uns aux autres, nous devons les combiner en une pile. Regardons notre fichier network / poc-network / docker-compose-general.yaml. Il contient la configuration des services, indique sur quels hôtes un service particulier (clé node.hostname) sera déployé , les alias (clé aliases) sont indiqués .

Nous devons initialiser swarm dans le premier terminal:

docker swarm init
docker swarm join-token manager

Un jeton apparaîtra pour attacher un autre serveur EC2 à la pile. Quelque chose comme: docker swarm join --token SWMTKN-1-42ml0ohnnbidg8kflgp8xp9dkkus6mn1lslqc15hrxj4tk9e3q-5h4vbzbfk8p90n83oe08gbltf 172.31.46.214:2377.

Maintenant, nous pouvons exécuter dans les terminaux restants:

docker swarm join --token SWMTKN-1-2xzco7t7txohnzd09318eczpbgmm8woex80byxptpt1jl5i2ar-bsg37h40xze1gaabg80i96gw2 172.31.38.245:2377

Un message apparaît dans la console:

This node joined a swarm as a manager.

Une fois les trois hôtes connectés à Swarm, nous pouvons les voir dans le terminal du premier hôte en exécutant la commande:

docker node ls


Fig.3. Liste des serveurs dans Docker Swarm.

Dans le dossier network / poc-network, il y a un fichier .env.template dans lequel vous devez spécifier un nom d'hôte pour chacun des hôtes:

ORDERER=ip-172-31-38-245
PARENTS=ip-172-31-43-64
HOSPITAL=ip-172-31-38-130
KINDERGARTEN=ip-172-31-40-157

Pour générer un fichier .env, vous devez exécuter le fichier ./3_env_gen.sh.

Créez maintenant un réseau avec un pilote overlay:

docker network create --driver overlay --attachable stage_byfn

Exécutez Swarm pour créer une pile basée sur le fichier docker-compose-general.yaml:

env $(cat .env | grep ^[A-Z] | xargs) docker stack deploy -c docker-compose-general.yaml stage 2>&1

Avec cette commande, nous définissons également des variables d'environnement, décrites dans le fichier .env et nécessaires au bon fonctionnement du réseau.

Vous pouvez exécuter la commande docker service lsdans le premier terminal. Vous verrez une liste de tous les services qui s'exécutent sur toutes nos instances EC2.


Fig.4. Liste de tous les services exécutés sur tous les serveurs EC2.

Si vous voyez la même chose dans votre terminal que dans la capture d'écran, alors tout va bien. Exécutez maintenant notre réseau. Dans le deuxième terminal, vous devez entrer le conteneur CLI (après tout, ce conteneur est déployé sur le deuxième hôte):

docker exec -ti stage_cli.1.owni217t53m53efjtikb5oa2f /bin/bash

Le nom du conteneur peut être vu en exécutant la commande dans le terminal docker ps.

Dans le conteneur, nous exécutons toutes nos commandes à partir du fichier 4_create_channels.sh, en les copiant une par une vers le terminal. Dans le dossier bin, nous avons les binaires pour créer le réseau:

  • peer channel create - crĂ©e des canaux;
  • jointure de canal de pair - joindre un pair Ă  un canal;
  • mise Ă  jour du canal homologue - mettre Ă  jour les configurations;
  • installation du code de chaĂ®ne par les pairs - installez le code de code;
  • peer chaincode instantiate - dĂ©ployez le code de chaĂ®ne spĂ©cifiĂ© sur le rĂ©seau.

Vous pouvez maintenant quitter le conteneur en exécutant la commande exit.

Demande de retour des parents


Installez l'application sur le deuxième hôte:

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-backend.git back

Nous devons Ă©galement installer NodeJS et gcc-c ++ (compilateur):

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install nodejs
cd back
sudo yum install gcc-c++ -y
npm install

Nous pouvons également entrer dans notre base de données via l'administrateur avec les données d'autorisation suivantes:

<HOST_1>:3306(où <HOST_1>est l'adresse du premier serveur EC2 sur lequel la base de données est stockée)
dev
devpass
poc_database

Il est également nécessaire de connecter notre application API à la base de données:

vim ~/back/config/config.json

Attribuez la valeur correcte à la clé host. Notre back-application a préparé des migrations et des graines. Vous devez les exécuter:

npx sequelize-cli db:migrate
npx sequelize-cli db:seed:all

Les tableaux doivent apparaître dans la base de données. Et dans le tableau des organisations, nous verrons trois lignes avec nos organisations - parents, hôpital, jardin d'enfants.

Lors de la génération des certificats au tout début, nous avons reçu des fichiers de connexion au réseau pour chaque organisation sur le premier hôte. Copiez le fichier connection-parents.json du premier hôte au second. Pour ce faire, ouvrez un autre terminal à partir du dossier où keyse trouve le nôtre et exécutez les commandes:

HOST1=ec2-18-232-164-119.compute-1.amazonaws.com
HOST2=ec2-54-145-203-186.compute-1.amazonaws.com
scp -i ./key-poc.pem -r ec2-user@$HOST1:~/network/poc-network/connection-parents.json ~
scp -i ./key-poc.pem ~/connection-parents.json ec2-user@$HOST2:~/network/poc-network

Correction exports.hostNamedans constants.js (valeur pour l'hĂ´te actuel):

vim ~/back/constants.js

Exécutez notre application dans le deuxième terminal:

npm start

Dans le fichier userGenerator.sh, affectez la HOST_2valeur correcte Ă  la variable :

vim ~/back/generators/userGenerator.sh

Ensuite, vous devez exécuter un script qui créera des utilisateurs de l'organisation des parents:

./back/generators/userGenerator.sh parents

Exécutez le script pour générer des dossiers médicaux:

node ~/back/generators/setCards.js

Deux cartes seront créées dans la blockchain, qui seront également écrites dans la base de données SQL dans le tableau des cartes.

Demande de retour Ă  l'hĂ´pital


Par analogie avec la back-application précédente, nous devons placer le fichier pour se connecter au réseau sur le troisième hôte. Pour ce faire, dans le cinquième terminal, exécutez:

scp -i ./key-poc.pem -r ec2-user@$HOST1:~/network/poc-network/connection-hospital.json ~
scp -i ./key-poc.pem ~/connection-hospital.json ec2-user@$HOST3:~/network/poc-network

Nous clonerons notre application sur le troisième hôte:

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-backend.git back

Installez NodeJS et gcc-c ++ (compilateur):

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install nodejs
cd back
sudo yum install gcc-c++ -y
npm install

Correction exports.hostNamedans constants.js (valeur pour l'hĂ´te actuel):

vim ~/back/constants.js

Exécutez notre application dans le troisième terminal:

npm start

Dans le fichier userGenerator.sh, affectez la HOST_3valeur correcte Ă  la variable :

vim ~/back/generators/userGenerator.sh

Ensuite, nous devons exécuter un script qui créera des utilisateurs de l'organisation hospitalière:

./back/generators/userGenerator.sh hospital

Nous avons maintenant un deuxième utilisateur dans la table Users de la base de données.

Demande de retour Ă  la maternelle


Par analogie avec la back-application précédente, nous devons placer le fichier pour se connecter au réseau sur le troisième hôte. Pour ce faire, dans le cinquième terminal, exécutez:

scp -i ./key-poc.pem -r ec2-user@$HOST1:~/network/poc-network/connection-kindergarten.json ~
scp -i ./key-poc.pem ~/connection-kindergarten.json ec2-user@$HOST4:~/network/poc-network

Nous clonerons notre application sur le troisième hôte:

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-backend.git back

Installez NodeJS et Gcc-c ++ (compilateur):

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install nodejs
cd back
sudo yum install gcc-c++ -y
npm install

Correction exports.hostNamedans constants.js (valeur pour l'hĂ´te actuel):

vim ~/back/constants.js

Exécutez notre application dans le troisième terminal:

npm start

Dans le fichier userGenerator.sh, affectez la HOST_4valeur correcte Ă  la variable :

vim ~/back/generators/userGenerator.sh

Ensuite, nous devons exécuter un script qui créera des utilisateurs de l'organisation hospitalière:

./back/generators/userGenerator.sh kindergarten

Nous avons maintenant un troisième utilisateur dans la table Users de la base de données.

Installez wkhtmltopdf sur les deuxième, troisième et quatrième serveurs EC2


La contre-application utilise la bibliothèque wkhtmltopdf pour générer un rapport PDF sur l'état de santé de l'enfant.

Nous devons installer libpng - la bibliothèque officielle pour travailler avec des graphiques raster au format PNG. La bibliothèque est indépendante de la plateforme et se compose de fonctions écrites en langage C.

La première équipe installera wkhtmltox - la bibliothèque open source LGPLv3 pour le rendu HTML au format PDF et divers formats d'image à l'aide du moteur de rendu QtWebKit:

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum install -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Le deuxième bloc de commandes téléchargera et déploiera la bibliothèque libpng15:

wget https://sourceforge.net/projects/libpng/files/libpng15/older-releases/1.5.15/libpng-1.5.15.tar.gz/download -O libpng-1.5.15.tar.gz
tar -zxvf libpng-1.5.15.tar.gz
cd libpng-1.5.15

Le troisième bloc de commandes est nécessaire pour installer le compilateur:

sudo yum groupinstall -y "Development Tools"
./configure --prefix=/usr
sudo make install

Vous devez toujours installer LibTIFF:

sudo yum install -y libtiff

Nous pouvons tester:

wkhtmltopdf https://majestic.cloud majestic.pdf

Vous pouvez maintenant générer et afficher des documents PDF.

Un peu sur Node SDK


Les outils NodeJS pour travailler avec le réseau Hyperledger Fabric sont présentés sous la forme de packages "fabric-ca-client -v 1.4.0" et "fabric-network" v 1.4.0 ". Tous les services de l'application d'arrière-plan qui interagissent avec le réseau à l'aide du SDK Node se trouvent dans le dossier Services, à la racine du projet.

Vous pouvez lire sur ces outils et leurs méthodes dans la documentation officielle .

Processus métier d'application


Nous allons maintenant parler de la façon dont les membres du réseau interagissent entre eux dans cette application. Tous les processus sont décrits dans un diagramme UML. Examinons chacun d'eux plus en détail.


Fig.5. Une description graphique des processus métier dans l'application.

Ainsi, il existe plusieurs organisations sur le réseau: Parents, Hospital et Kindergarten.

Un membre des parents crée des dossiers de santé électroniques pour deux de leurs enfants. Ces données seront stockées (et complétées) dans le réseau blockchain. Ensuite, le parent envoie une demande d'accord avec le pédiatre, qui observera ses enfants jusqu'à l'âge adulte (dans le schéma - demande d'accord avec un médecin ).

Un membre de l'organisation hospitalière signe un accord (dans le schéma - le médecin signe un accord ).

Ensuite, le parent envoie une demande au jardin d'enfants avec une demande d'inscription de son enfant (dans le diagramme - demande de jardin d'enfants pour recevoir un enfant ).


Fig.6. Une page avec une liste des Ă©tablissements d'enseignement disponibles dans le compte des parents.

Le jardin d'enfants voit la demande dans la liste des nouvelles demandes:


Fig.7. Une page avec une liste des demandes d'admission au compte personnel de l'Ă©tablissement d'enseignement.

Le jardin d'enfants avant de décider de l'admission de l'enfant doit s'assurer de son état de santé satisfaisant. Pour ce faire, le jardin d'enfants envoie une demande à la clinique dans laquelle cet enfant est observé (dans le schéma - demande de rapport de santé enfant ). La demande au pédiatre est exécutée automatiquement après que la demande d'admission au jardin est déplacée vers l'onglet "Accepté".


Fig.8. Une page avec une liste des demandes d'admission approuvées sur le compte personnel de l'établissement d'enseignement.

Le pédiatre voit la demande et génère un rapport contenant des données sur la santé de l'enfant (dans le diagramme - création d' un rapport sur la santé de l' enfant ).


Fig.9. Une page avec une liste d'applications pour créer un rapport sur l'état de santé de l'enfant dans le compte personnel de l'hôpital.

Le parent voit que le pédiatre a généré un rapport:


Fig.10. Une page dans le compte personnel du parent, qui affiche l'état des rapports sur l'état de santé de l'enfant.

... et décide d'autoriser l'accès à l'établissement d'enseignement préscolaire pour consulter et télécharger le rapport (dans le diagramme - autoriser la consultation du rapport ).


Fig.11. Une fenêtre contextuelle pour choisir un établissement d'enseignement qui peut afficher le rapport médical généré.

Le parent clique sur "Confirmer":


Fig.12. Notification que l'établissement d'enseignement sélectionné a reçu l'autorisation de consulter le rapport médical.

Dans la liste des rapports dans l'application de l'établissement d'enseignement, il apparaît que le rapport a été généré et est disponible pour consultation et téléchargement au format PDF.


Fig.13. Lien pour télécharger le rapport au format PDF en ligne avec la demande approuvée.

Voici un rapport que vous verrez dans un nouvel onglet sur votre ordinateur:


Fig.14. Un rapport de santé généré par un employé de l'hôpital.

Création de dossiers médicaux et accords avec un pédiatre, signature d'un accord


Étant donné que l'application est davantage conçue pour démontrer le déploiement du réseau sur des serveurs EC2 distincts, nous exécuterons certaines commandes à partir des scripts préparés.

Premier serveur EC2:

node ~/back/generators/setCards.js

Nous nous sommes précédemment connectés à la base de données. Après avoir exécuté la commande, vous verrez deux entrées dans le tableau Cartes. De plus, des informations sur les données médicales de ces deux enfants ont été enregistrées sur la blockchain.

À partir de ce serveur EC2, nous devons créer un accord avec un pédiatre qui observera les enfants:

node ~/back/generators/createAgreement.js

Cet accord doit maintenant être signé par l'utilisateur que nous avons créé pour l'organisation Hospital. Nous exécutons la commande à partir du deuxième hôte:

node ~/back/generators/signAgreement.js

Notre accord est signé par le médecin et nous pouvons continuer à travailler sur notre demande. Ensuite, nous devons installer l'application frontale sur les deuxième, troisième et quatrième serveurs EC2.

PS: Vous pouvez trouver toutes les commandes pour générer des utilisateurs, des cartes, des accords et signer des accords dans le dossier ~ / back / generators.

Parents Frontend Application


Exécuter sur le deuxième hôte (où se trouve l'organisation des parents):

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-frontend.git front

Nous créons le fichier .env et spécifions le nom d'hôte sur lequel notre application frontale sera située:

vim ~ /front/.env:


VUE_APP_API_BASE_URL='http://ec2-107-22-75-46.compute-1.amazonaws.com:3006/'

Il est nécessaire d'établir les dépendances:

cd front
npm install

Vous devez également créer l'application et l'exécuter sur le port 8080:

docker build . -t my-app
docker run -d -p 8080:80 my-app

Notre application sera disponible à: http://<HOST_2>:8080où <HOST_2>est l'adresse du deuxième serveur EC2 sur lequel se trouve notre application.

Login: parentsMot de passe: password.

Voici à quoi ressemblera l'interface. Ici, vous verrez des informations sur les cartes médicales que nous avons créées à partir du terminal:


Fig.15. Informations sur les dossiers médicaux des enfants dans le compte personnel du parent.

Application frontale d'hĂ´pital


Exécuter sur le deuxième hôte (où se trouve l'organisation hospitalière):

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-frontend.git front

Nous créons le fichier .env et spécifions le nom d'hôte sur lequel notre application frontale sera située:

vim ~ /front/.env:


VUE_APP_API_BASE_URL='http://ec2-3-91-238-161.compute-1.amazonaws.com:3006/'

Il est nécessaire d'établir les dépendances:

cd front
npm install

Vous devez également créer l'application et l'exécuter sur le port 8080:

docker build . -t my-app
docker run -d -p 8080:80 my-app

Notre application sera disponible à: http://<HOST_3>:8080où <HOST_3>est l'adresse du troisième serveur EC2.

Login: hospitalMot de passe: password.

Application frontend de la maternelle


Exécuter sur le deuxième hôte (où se trouve l'organisation de la maternelle):

cd ~
git clone https://github.com/nixsolutions/blockchain-poc-frontend.git front

Nous créons le fichier .env et spécifions le nom d'hôte sur lequel notre application frontale sera située:

vim ~ /front/.env:


VUE_APP_API_BASE_URL='http://ec2-107-22-12-137.compute-1.amazonaws.com:3006/'

Il est nécessaire d'établir les dépendances:

cd front
npm install

Vous devez également créer l'application et l'exécuter sur le port 8080:

docker build . -t my-app
docker run -d -p 8080:80 my-app

Notre application sera disponible à: http://<HOST_4>:8080où <HOST_4>est l'adresse du quatrième serveur EC2.

Login: kindergartenMot de passe: password.

Conclusion


Nous avons examiné comment déployer un réseau d'applications blockchain sur plusieurs serveurs virtuels ou physiques. L'article est conçu pour vous familiariser avec les bases de la technologie blockchain, savoir ce que sont les contrats intelligents et au moins superficiellement familier avec le cadre Hyperledger Fabric et son application standard d'échantillons de tissu.

All Articles