From 9dd1a8a5c3f5d8a8c2c9c0fc041e6ef4126d22f0 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Tue, 26 Jan 2021 22:28:00 +0100 Subject: [PATCH 1/7] Update README.md --- README.md | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 176 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72a708b1..02afeea2 100644 --- a/README.md +++ b/README.md @@ -1 +1,176 @@ -Tutoriel \ No newline at end of file +# Tutoriel + +**Installer git** + + sudo apt-get install git + +**Installer cURL** + + sudo apt install curl + +**Installer Node.js** + + sudo apt install nodejs + +**Docker et Docker Compose** + +Installez Docker: + + sudo apt install docker-ce + +Assurez-vous que le démon docker est en cours d'exécution: + + sudo systemctl start docker + +Facultatif: si vous souhaitez que le démon docker démarre au démarrage du système, exécutez la commande suivante: + + sudo systemctl enable docker + +Ajoutez votre utilisateur au groupe Docker: + + sudo usermod -a -G docker + +**Hyperledger Fabric** + +Placez-vous dans le répertoire de votre choix et installer Hyperledger Fabric: + + curl -sSL https://bit.ly/2ysbOFE | bash -s + +Ajoutez au fichier .bashrc la ligne suivante pour ajouter les variables d'environnement: + + export PATH=${PWD}/../bin:$PATH + +Vous devez également définir le FABRIC_CFG_PATH: + + export FABRIC_CFG_PATH=$PWD/../config/ + +**Réseau de test Fabric** + +Accédez au répertoire réseau de test: + + cd fabric-samples/test-network + +Supprimez tous les conteneurs ou artefacts de toutes les exécutions précédentes: + + ./network.sh down + +Activez le réseau: + + ./network.sh up + +**Les composants du réseau de test** + +Affichez tous les conteneurs Docker qui s'exécutent sur votre ordinateur: + + docker ps -a + +# Fonctionnement du TPE 2020 - Vente d'un véhicule + +**Créer le réseau** + +Déplacez le répertoire VenteVoiture vers fabric-samples, puis ouvrez-le: + + cd fabric-samples/VenteVoiture + +Exécutez le script pour démarrer le réseau de test: + + ./network-starter.sh + +Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant sur votre machine: + + docker ps + +**Installer et approuver le contrat intelligent** + +**(Alice)** Ouvrez un premier terminal et accédez au répertoire de la 1ère personne Alice: + + cd fabric-samples/VenteVoiture/organization/Alice + +**(Alice)** Exécutez le script pour définir les variables d'environnement: + + source alice.sh + +**(Alice)** Créez le package du chaincode: + + peer lifecycle chaincode package car.tar.gz --lang node --path ./contract --label car_0 + +**(Alice)** Installez le chaincode: + + peer lifecycle chaincode install car.tar.gz + +**(Alice)** Obtenez le packageID du chaincode: + + peer lifecycle chaincode queryinstalled + +**(Alice)** Enregistrez l'ID du package en tant que variable d'environnement: + + export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d + +**(Alice)** Approuver la définition du chaincode: + + peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA + +**(Bob)** Ouvrez un second terminal et accédez au répertoire de la 2ème personne Bob: + + cd TPEBlockchain/VenteVoiture/organization/Bob + +**(Bob)** Exécutez le script pour définir les variables d'environnement: + + source bob.sh + +**(Bob)** Créez le package du chaincode: + + peer lifecycle chaincode package car.tar.gz --lang node --path ./contract --label car_0 + +**(Bob)** Installez le chaincode: + + peer lifecycle chaincode install car.tar.gz + +**(Bob)** Obtenez le packageID du chaincode: + + peer lifecycle chaincode queryinstalled + +**(Bob)** Enregistrez l'ID du package en tant que variable d'environnement: + + export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d + +**(Bob)** Approuvez la définition du chaincode: + + peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA + +**(Alice)** Retournez sur le terminal correpondant à Alice et validez la définition du chaincode: + + peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --peerAddresses localhost:7051 --tlsRootCertFiles ${PEER0_ORG1_CA} --peerAddresses localhost:9051 --tlsRootCertFiles ${PEER0_ORG2_CA} --channelID mychannel --name carcontract -v 0 --sequence 1 --tls --cafile $ORDERER_CA --waitForEvent + +**Vente de la voiture** + +**(Alice)** Accédez au répertoire appplication: + + cd application + +**(Alice)** Ajoutez la voiture dans le registre: + + node addToWallet.js + +**(Alice)** Mettez en vente la voiture: + + node sell.js + +**(Bob)** Retournez sur le terminal correpondant à Bob et accédez au répertoire appplication: + + cd application + +**(Bob)** Modifiez l'état de la voiture: + + node addToWallet.js + +**(Bob)** Achetez la voiture: + + node sell.js + +**(Bob)** Constatez que le véhicule a bien changé de propriétaire: + + node info.js + + + \ No newline at end of file -- GitLab From 9139a009675569cdc71fd068d2d53715df3ef4d0 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Tue, 26 Jan 2021 22:45:36 +0100 Subject: [PATCH 2/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02afeea2..f6b51ca7 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant cd application -**(Alice)** Ajoutez la voiture dans le registre: +**(Alice)** Ajoutez des informations au Wallet: node addToWallet.js -- GitLab From e2fa6ff5a039f67b49b272d23c2d6b2b5e58d305 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Tue, 26 Jan 2021 22:46:42 +0100 Subject: [PATCH 3/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6b51ca7..70a4acad 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d -**(Alice)** Approuver la définition du chaincode: +**(Alice)** Approuvez la définition du chaincode: peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA -- GitLab From b160558f511e53f32a14836fa699918c1fe4b277 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Wed, 27 Jan 2021 14:35:31 +0100 Subject: [PATCH 4/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70a4acad..f0db7544 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,7 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant node sell.js -**(Bob)** Retournez sur le terminal correpondant à Bob et accédez au répertoire appplication: +**(Bob)** Retournez sur le terminal correpondant à Bob et accédez au répertoire application: cd application -- GitLab From 5432d07b6c4d52a0de6eb7a2bc0bbcc70ac441ce Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Wed, 27 Jan 2021 14:38:57 +0100 Subject: [PATCH 5/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0db7544..9e405b5f 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant **(Bob)** Achetez la voiture: - node sell.js + node buy.js **(Bob)** Constatez que le véhicule a bien changé de propriétaire: -- GitLab From 20337bd9b33096a363aae20ec8580d5b1a9a0733 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Wed, 27 Jan 2021 18:56:55 +0100 Subject: [PATCH 6/7] Update README.md --- README.md | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 9e405b5f..bae4bc41 100644 --- a/README.md +++ b/README.md @@ -14,53 +14,53 @@ **Docker et Docker Compose** -Installez Docker: +Installez Docker : sudo apt install docker-ce -Assurez-vous que le démon docker est en cours d'exécution: +Assurez-vous que le démon docker est en cours d'exécution : sudo systemctl start docker -Facultatif: si vous souhaitez que le démon docker démarre au démarrage du système, exécutez la commande suivante: +Facultatif: si vous souhaitez que le démon docker démarre au démarrage du système, exécutez la commande suivante : sudo systemctl enable docker -Ajoutez votre utilisateur au groupe Docker: +Ajoutez votre utilisateur au groupe Docker : sudo usermod -a -G docker **Hyperledger Fabric** -Placez-vous dans le répertoire de votre choix et installer Hyperledger Fabric: +Placez-vous dans le répertoire de votre choix et installer Hyperledger Fabric : curl -sSL https://bit.ly/2ysbOFE | bash -s -Ajoutez au fichier .bashrc la ligne suivante pour ajouter les variables d'environnement: +Ajoutez au fichier .bashrc la ligne suivante pour ajouter les variables d'environnement : export PATH=${PWD}/../bin:$PATH -Vous devez également définir le FABRIC_CFG_PATH: +Vous devez également définir le FABRIC_CFG_PATH : export FABRIC_CFG_PATH=$PWD/../config/ **Réseau de test Fabric** -Accédez au répertoire réseau de test: +Accédez au répertoire réseau de test : cd fabric-samples/test-network -Supprimez tous les conteneurs ou artefacts de toutes les exécutions précédentes: +Supprimez tous les conteneurs ou artefacts de toutes les exécutions précédentes : ./network.sh down -Activez le réseau: +Activez le réseau : ./network.sh up **Les composants du réseau de test** -Affichez tous les conteneurs Docker qui s'exécutent sur votre ordinateur: +Affichez tous les conteneurs Docker qui s'exécutent sur votre ordinateur : docker ps -a @@ -68,41 +68,41 @@ Affichez tous les conteneurs Docker qui s'exécutent sur votre ordinateur: **Créer le réseau** -Déplacez le répertoire VenteVoiture vers fabric-samples, puis ouvrez-le: +Déplacez le répertoire VenteVoiture vers fabric-samples, puis ouvrez-le : cd fabric-samples/VenteVoiture -Exécutez le script pour démarrer le réseau de test: +Exécutez le script pour démarrer le réseau de test : ./network-starter.sh -Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant sur votre machine: +Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant sur votre machine : docker ps **Installer et approuver le contrat intelligent** -**(Alice)** Ouvrez un premier terminal et accédez au répertoire de la 1ère personne Alice: +**(Alice)** Ouvrez un premier terminal et accédez au répertoire de la 1ère personne Alice : cd fabric-samples/VenteVoiture/organization/Alice -**(Alice)** Exécutez le script pour définir les variables d'environnement: +**(Alice)** Exécutez le script pour définir les variables d'environnement : source alice.sh -**(Alice)** Créez le package du chaincode: +**(Alice)** Créez le package du chaincode : peer lifecycle chaincode package car.tar.gz --lang node --path ./contract --label car_0 -**(Alice)** Installez le chaincode: +**(Alice)** Installez le chaincode : peer lifecycle chaincode install car.tar.gz -**(Alice)** Obtenez le packageID du chaincode: +**(Alice)** Obtenez le packageID du chaincode : peer lifecycle chaincode queryinstalled -**(Alice)** Enregistrez l'ID du package en tant que variable d'environnement: +**(Alice)** Enregistrez l'ID du package en tant que variable d'environnement : export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d @@ -110,65 +110,65 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA -**(Bob)** Ouvrez un second terminal et accédez au répertoire de la 2ème personne Bob: +**(Bob)** Ouvrez un second terminal et accédez au répertoire de la 2ème personne Bob : cd TPEBlockchain/VenteVoiture/organization/Bob -**(Bob)** Exécutez le script pour définir les variables d'environnement: +**(Bob)** Exécutez le script pour définir les variables d'environnement : source bob.sh -**(Bob)** Créez le package du chaincode: +**(Bob)** Créez le package du chaincode : peer lifecycle chaincode package car.tar.gz --lang node --path ./contract --label car_0 -**(Bob)** Installez le chaincode: +**(Bob)** Installez le chaincode : peer lifecycle chaincode install car.tar.gz -**(Bob)** Obtenez le packageID du chaincode: +**(Bob)** Obtenez le packageID du chaincode : peer lifecycle chaincode queryinstalled -**(Bob)** Enregistrez l'ID du package en tant que variable d'environnement: +**(Bob)** Enregistrez l'ID du package en tant que variable d'environnement : export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d -**(Bob)** Approuvez la définition du chaincode: +**(Bob)** Approuvez la définition du chaincode : peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA -**(Alice)** Retournez sur le terminal correpondant à Alice et validez la définition du chaincode: +**(Alice)** Retournez sur le terminal correpondant à Alice et validez la définition du chaincode : peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --peerAddresses localhost:7051 --tlsRootCertFiles ${PEER0_ORG1_CA} --peerAddresses localhost:9051 --tlsRootCertFiles ${PEER0_ORG2_CA} --channelID mychannel --name carcontract -v 0 --sequence 1 --tls --cafile $ORDERER_CA --waitForEvent **Vente de la voiture** -**(Alice)** Accédez au répertoire appplication: +**(Alice)** Accédez au répertoire appplication : cd application -**(Alice)** Ajoutez des informations au Wallet: +**(Alice)** Ajoutez des informations au Wallet : node addToWallet.js -**(Alice)** Mettez en vente la voiture: +**(Alice)** Mettez en vente la voiture : node sell.js -**(Bob)** Retournez sur le terminal correpondant à Bob et accédez au répertoire application: +**(Bob)** Retournez sur le terminal correpondant à Bob et accédez au répertoire application : cd application -**(Bob)** Modifiez l'état de la voiture: +**(Bob)** Modifiez l'état de la voiture : node addToWallet.js -**(Bob)** Achetez la voiture: +**(Bob)** Achetez la voiture : node buy.js -**(Bob)** Constatez que le véhicule a bien changé de propriétaire: +**(Bob)** Constatez que le véhicule a bien changé de propriétaire : node info.js -- GitLab From 951cd54f337d0ae0f203fc7054b74869d480e5f0 Mon Sep 17 00:00:00 2001 From: Robin Guyomar <320-gr161657@users.noreply.www-apps.univ-lehavre.fr> Date: Wed, 27 Jan 2021 18:57:27 +0100 Subject: [PATCH 7/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bae4bc41..ea817853 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ Lorsque le script est terminé, vous pouvez voir les nœuds Fabric s'exécutant export PACKAGE_ID=car_0:7778fe966e1cfe11982c5f9d2d1a8eb1a225e4f547df8bac40ca50569fbd076d -**(Alice)** Approuvez la définition du chaincode: +**(Alice)** Approuvez la définition du chaincode : peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name carcontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA -- GitLab