Déployer le code de chaîne à l'aide de Visual Studio Code
Après avoir créé un projet de code de chaîne, vous pouvez le déployer localement dans le réseau Hyperledger Fabric généré automatiquement ou à distance dans Oracle Blockchain Platform Cloud ou Enterprise Edition. Vous pouvez également encapsuler le projet de code de chaîne pour un déploiement manuel dans Oracle Blockchain Platform.
Déployer le code de chaîne sur un réseau Hyperledger Fabric local
Après avoir 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 Visual Studio Code, elle crée automatiquement un réseau Hyperledger Fabric avec un seul canal. Cette valeur est indiquée en tant que Local Environment
dans le volet Environnements. Vous ne pouvez pas supprimer ni modifier cet environnement. Vous pouvez simplement y déployer des codes de chaîne et les recréer s'il cesse de fonctionner correctement.
Le réseau de test créé lors de l'installation du générateur d'applications Blockchain exécute Hyperledger Fabric v2.5.7 et Hyperledger Fabric CA v1.5.9.
Le déploiement de code de chaîne pour le générateur d'applications de chaîne de blocs démarre le réseau de base Hyperledger Fabric et d'autres services, et installe et déploie le code de chaîne pour vous.
- Dans le volet Détails du code de chaîne, sélectionnez Déployer.
- Dans l'assistant de déploiement :
- Assurez-vous que le nom de code de chaîne approprié est sélectionné.
- Sélectionnez votre environnement cible. Pour un déploiement local, sélectionnez Environnement local.
- Sélectionnez le canal vers lequel vous souhaitez effectuer le déploiement. Un canal nommé "
mychannel
" est créé par défaut lorsque l'extension est installée et peut être utilisé pour les tests. - Au besoin, entrez tous les paramètres initiaux 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 vous pouvez utiliser le paramètreadminList
pour ajouter des administrateurs de jeton. Les autres programmeurs de déploiement qui ne sont pas le premier programme de déploiement doivent fournir un tableau vide pour le paramètreadminList
. Pour ce faire, ouvrez la liste des 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.
Une fois le déploiement du code de chaîne terminé, la console de sortie montre que le code de chaîne a été installé et déployé sur le canal indiqué.
Dépannage
Les problèmes suivants peuvent se produire lors de l'exécution de votre projet de code de chaîne sur un réseau local.
- Autorisations Go manquantes
- Lors de l'installation du projet de code de chaîne Go dans le réseau local, une erreur similaire au texte suivant 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'une défaillance du déploiement, d'un déploiement corrompu, d'un conteneur pair Docker plein ou d'un pair Docker arrêté dans le réseau local, une erreur similaire au texte suivant peut s'afficher :
============ 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 de l'environnement requise
- Une erreur similaire au texte suivant peut s'afficher :
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
Une fois que vous avez déployé et testé votre projet de code de chaîne sur un réseau local pour vous assurer qu'il fonctionne correctement, vous pouvez le déployer sur Oracle Blockchain Platform.
Créer une configuration de connexion à une instance Oracle Blockchain Platform
Vous devez disposer d'une instance Oracle Blockchain Platform en cours d'exécution pour terminer cette étape.
- Dans le volet Environnements 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 du mandataire REST, entrez l'URL du mandataire REST de l'instance Oracle Blockchain Platform distante.
- Entrez le nom d'utilisateur et le mot de passe Oracle Identity Cloud Service pour un utilisateur 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 Identity Cloud Service. Pour plus d'informations sur les utilisateurs et les rôles, voir Configurer les utilisateurs et les rôles d'application dans Administration d'Oracle Blockchain Platform.
- 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 et que vous 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 code de chaîne à déployer dans le volet Codes de chaîne.
- Dans le volet Détails du code de chaîne, sélectionnez Déployer.
- Dans l'assistant de déploiement, le nom du projet de chaîne est déjà spécifié.
- Sélectionnez votre environnement cible. Pour un déploiement à distance, sélectionnez 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 des 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é avec succès sur chaque pair et sur le canal.
Dans un environnement avec plusieurs organisations, pour déployer de nouveau le code de chaîne sur le même canal au moyen d'une instance de participant, utiliser 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 Blockchain App Builder. Après avoir apporté des modifications à votre code de chaîne, lorsque vous déployez de nouveau, le projet est automatiquement mis à niveau. 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 programme de 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 des paramètres Init
dans le volet de déploiement, puis cliquez sur le bouton (-) à côté du paramètre adminList
, qui sélectionnera un tableau vide.
- Les détails d'Oracle Blockchain Platform ont été extraits.
- La liste des 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, dans l'affirmative, la version a été extraite.
- La version du code de chaîne a été mise à niveau (par exemple, de la version 1.0 à 2.0).
Dans un environnement avec plusieurs organisations, pour mettre à niveau le code de chaîne, utiliser la console et approuver manuellement le code de chaîne par les participants.
Encapsuler votre projet de code de chaîne pour un déploiement manuel vers Oracle Blockchain Platform
Vous pouvez encapsuler 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 qui contient 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 votre projet de code de chaîne dans le volet Codes de chaîne.
- Cliquez avec le droit et sélectionnez Ensemble.
- Sélectionnez un 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 de chaîne 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 Blockchain 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 Blockchain package l'infrastructure de code de chaîne en conséquence en fonction de votre sélection.
Lorsque la commande est exécutée avec succès, l'emplacement du package est retourné.