Déployer le code de chaîne à l'aide de Visual Studio Code
Une fois le projet de code de chaîne créé, vous pouvez le déployer localement sur le réseau Hyperledger Fabric généré automatiquement, ou à distance sur votre plate-forme Oracle Blockchain Platform Cloud ou Enterprise Edition. Vous pouvez également encapsuler le projet de code de chaîne pour un déploiement manuel sur Oracle Blockchain Platform.
Déployer le code de chaîne sur un réseau Hyperledger Fabric local
Une fois que vous avez créé votre projet de code de chaîne, vous pouvez le tester dans un réseau de base Hyperledger Fabric local.
Lorsque vous installez l'extension Blockchain App Builder pour VS Code, il crée automatiquement un réseau Hyperledger Fabric avec un seul canal. La valeur Local Environment
sera indiquée dans le volet Environnement. Vous ne pouvez pas supprimer ni modifier cet environnement; vous pouvez simplement y déployer des codes de chaîne et le recréer s'il cesse de fonctionner correctement.
Le déploiement de code de chaîne du générateur d'applications de chaîne de blocs démarre le réseau de base Hyperledger Fabric, d'autres services, et installe et déploie le code de chaîne pour vous.
- Dans le volet Détails de la chaîne, sélectionnez Déployer.
- Dans l'assistant de déploiement :
- Assurez-vous que le nom de code de chaîne correct est sélectionné.
- Sélectionnez l'environnement cible. Pour le déploiement local, sélectionnez Environnement local.
- Sélectionnez le canal vers lequel effectuer le déploiement. Un canal nommé "
mychannel
" est créé par défaut avec l'installation de l'extension et peut être utilisé pour les tests. - Facultativement, entrez tous les paramètres initiaux qui peuvent être requis.
- Pour les projets de jeton, la première fois que vous déployez, vous devez entrer une liste d'administrateurs de jeton en tant que paramètre. La liste est un tableau d'informations
{user_id, org_id}
qui spécifie les administrateurs de jeton. Pour le réseau Hyperledger Fabric local, utilisez la valeurOrg1MSP
pour le champorg_id
. Pour les codes de chaîne NFT, les clés du paramètreadminList
sontuserId
etorgId
pour TypeScript etUserId
etOrgId
pour Go. Après le premier déploiement, vous pouvez fournir un tableau vide pour le paramètreadminList
ou utiliser le paramètreadminList
pour ajouter des administrateurs de jeton. Les autres responsables du déploiement qui ne sont pas le premier responsable du déploiement doivent fournir un tableau vide pour le paramètreadminList
. Pour ce faire, ouvrez la liste de paramètresInit
dans le volet de déploiement, puis cliquez sur le bouton (-) à côté du paramètreadminList
, qui sélectionnera un tableau vide.
- Cliquez sur Déployer.
Lorsque le déploiement du code de chaîne est terminé, la console de sortie indique qu'il a été installé et déployé sur le canal indiqué.
Dépannage
Vous pouvez rencontrer les problèmes suivants lors de l'exécution de votre projet de code de chaîne sur un réseau local.
- Autorisations d'accès manquantes
- Lors de l'installation du projet de code de chaîne Go dans le réseau local, une erreur similaire à celle qui suit peut s'afficher dans la console Sortie :
INFO (Runtime): 2020/06/22 22:57:09 build started INFO (Runtime): Building .... INFO (Runtime): go build runtime/cgo: copying /Users/myname/Library/Caches/go-build/f8/.….….d: open /usr/local/go/pkg/darwin_amd64/runtine/ cgo.a: permission denied ERROR (Runtime): go build runtine/cgo: copying /Users/myname/Library/Caches/go-build/f8/.….….d: open /usr/local/go/pkg/darwin_amd64/runtime/ cgo.a: permission denied INFO (Runtime): An error occurred while building: exit status 1
- Échec du déploiement
- En raison d'un échec de déploiement, d'un déploiement corrompu, d'un conteneur pair Docker plein ou d'un pair Docker tué dans le réseau local, une erreur peut se produire comme suit :
============ Started instantiate Chaincode ============ [2028-19-01T19:25:lO.372] [ERROR] default - Error instantiating Chaincode GollGl on channel mychannel, detailed error: Error: error starting container: error starting container: Failed to generate platform-specific docker build: Failed to pull hyperledger/fabric-ccenv:latest : API error (404): manifest for hyperledger/ fabric-ccenv:latest not found: manifest unknown: manifest unknown [2020-19-01T19:25:10.372] (INFO) default - ============ Finished instantiate Chaincode ============ [2020-19-01119:25:10.372] [ERROR] default - Error: Error instantiating Chaincode Goll01 on channel mychannel, detailed error: Error: error starting container: error starting container: Failed to generate platfom-specific docker build: Failed to pull hyperledger/fabric-ccenv: latest : API error (404): manifest for hyperledger/ fabric-ccenv:lalest not found: manifest unknown: manifest unknown exited: signal: terminated INFO: exited: signal: terminated ERROR: Error in Chaincode deployment
- Recréation d'environnement requise
- Vous pouvez voir une erreur similaire à :
Starting ca.example.com ... Starting orderer.example.com ... Starting orderer.example.com ... error ERROR: for orderer.example.com Cannot start service orderer.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/config': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted Starting ca.example.com... error ERROR: for ca.example.com Cannot start service ca.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/crypto-config/peerOrganizations/org1.example.com/ca': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted ERROR: for orderer.example.com Cannot start service orderer.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/config': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted ERROR: for ca.example.com Cannot start service ca.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/crypto-config/peerOrganizations/org1.example.com/ca': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted Encountered errors while bringing up the project. ERROR: Starting ca.example.com ... Starting orderer.example.com ... Starting orderer.example.com ... error ERROR: for orderer.example.com Cannot start service orderer.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/config': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted Starting ca.example.com ... error ERROR: for ca.example.com Cannot start service ca.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/crypto-config/peerOrganizations/org1.example.com/ca': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted ERROR: for orderer.example.com Cannot start service orderer.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/config': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted ERROR: for ca.example.com Cannot start service ca.example.com: error while creating mount source path '/host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0/node_modules/@oracle/ochain-cli/runtime/network/basic-network/crypto-config/peerOrganizations/org1.example.com/ca': mkdir /host_mnt/c/Users/opc/.vscode/extensions/oracle.oracle-blockchain-1.4.0: operation not permitted Encountered errors while bringing up the project. ERROR: Error in Chaincode deployment
Déployer le code de chaîne sur un réseau Oracle Blockchain Platform distant
Après avoir déployé et testé votre projet de code de chaîne sur un réseau local pour s'assurer qu'il fonctionne comme prévu, vous pouvez le déployer sur Oracle Blockchain Platform.
Créer une configuration de connexion à une instance Oracle Blockchain Platform
Pour terminer cette étape, vous devez disposer d'une instance Blockchain Platform en cours d'exécution.
- Dans le volet Environments de Visual Studio Code, cliquez sur l'icône Créer un environnement.
- Dans l'assistant Détails des environnements :
- Entrez le nom de votre environnement distant.
- Entrez une description.
- Dans URL distante, entrez l'URL de l'instance Oracle Blockchain Platform distante.
- Entrez le nom d'utilisateur et le mot de passe d'Oracle Identity Cloud Service pour un utilisateur d'Oracle Blockchain Platform doté des rôles
ADMIN
ouREST_CLIENT
. Pour appeler le code de chaîne, seul le rôleREST_CLIENT
est nécessaire. Pour déployer ou mettre à niveau le code de chaîne, le rôleADMIN
doit également être affecté à l'utilisateur IDCS. Pour plus d'informations sur les utilisateurs et les rôles, voir Configurer des utilisateurs et des rôles d'application.
- Cliquez sur Créer pour enregistrer l'environnement. Le nom d'utilisateur et le mot de passe sont enregistrés temporairement dans la session Visual Studio Code locale. Si vous fermez Visual Studio Code, puis démarrez une nouvelle session Visual Studio Code, vous devez entrer à nouveau le nom d'utilisateur et le mot de passe.
Déployer le code de chaîne
- Sélectionnez le projet de chaîne de code à déployer dans le volet Code de chaîne.
- Dans le volet Détails de la chaîne, sélectionnez Déployer.
- Dans l'assistant de déploiement, le nom du projet de code de chaîne doit être prérempli.
- Sélectionnez l'environnement cible. Pour un déploiement à distance, choisissez l'environnement Oracle Blockchain Platform que vous avez configuré précédemment.
- Entrez le nom du canal vers lequel effectuer le déploiement.
- Définissez éventuellement les paramètres initiaux requis.
- Cliquez sur Déployer.
- Les détails d'Oracle Blockchain Platform ont été extraits.
- La liste de pairs a été extraite.
- Le projet de code de chaîne a été installé.
- Le projet de code de chaîne a été approuvé et validé.
- Le code de chaîne a été déployé sur chaque pair et sur le canal.
Dans un environnement comportant plusieurs organisations, pour redéployer le code de chaîne sur le même canal au moyen d'une instance de participant, utilisez la console pour déployer le code de chaîne.
Mise à niveau du projet de code de chaîne
La mise à niveau du code de chaîne est gérée automatiquement par le générateur d'applications de chaîne de blocs. Après avoir apporté des modifications à votre code de chaîne, il suffit de le déployer de nouveau, qui mettra automatiquement à niveau le projet pour vous. Lorsque vous exécutez le processus de mise à niveau, vous pouvez transmettre un tableau vide pour le paramètre adminList
ou utiliser le paramètre adminList
pour ajouter des administrateurs de jeton. Si vous n'êtes pas le premier responsable du déploiement, vous devez fournir un tableau vide pour le paramètre adminList
. Pour transmettre un tableau vide pour le paramètre adminList
, ouvrez la liste de paramètres Init
dans le volet de déploiement, puis cliquez sur le bouton moins (-) à côté du paramètre adminList
, qui sélectionnera un tableau vide.
- Les détails d'Oracle Blockchain Platform ont été extraits.
- La liste de pairs a été extraite.
- Une vérification a été effectuée pour déterminer si le projet de code de chaîne est déjà installé et, le cas échéant, si la version a été extraite.
- La version du code de chaîne a été mise à niveau (par exemple, de la version 1.0 à la version 2.0).
Dans un environnement avec plusieurs organisations, pour mettre à niveau le code de chaîne, utilisez la console et approuvez manuellement le code de chaîne des participants.
Encapsuler le projet de code de chaîne pour un déploiement manuel sur Oracle Blockchain Platform
Vous pouvez emballer vos projets de code de chaîne pour un déploiement manuel dans Oracle Blockchain Platform Cloud ou Enterprise Edition.
La fonction Ensemble crée un fichier d'archive contenant uniquement les fichiers de compilation et de distribution. Les dossiers binary
, libs
, node_modules
et test
de votre projet de code de chaîne ne sont pas inclus. Ce fichier d'archives peut être chargé manuellement dans Oracle Blockchain Platform pour déploiement.
- Sélectionnez le projet de chaîne de blocs dans le volet Code de chaîne.
- Cliquez avec le bouton droit et sélectionnez Ensemble.
- Sélectionnez l'emplacement dans lequel enregistrer l'ensemble, puis cliquez sur Sélectionner un dossier de sortie.
En raison des modifications apportées aux préalables logiciels, lorsque vous exécutez la fonction Ensemble pour le code de chaîne TypeScript, vous êtes invité à indiquer la date de provisionnement de l'instance Oracle Blockchain Platform pour laquelle vous voulez créer l'ensemble. Le code de chaîne TypeScript créé dans le générateur d'applications de chaîne de blocs n'est pas compatible avec les versions précédentes d'Oracle Blockchain Platform sans modification de l'infrastructure sous-jacente. Le générateur d'applications de chaîne de blocs regroupe l'infrastructure de code de chaîne en conséquence en fonction de votre sélection.
Lorsque la commande se termine avec succès, l'emplacement du package est retourné.