Ecrire un code chaîne
Un code chaîne est écrit en Go, Node.js ou Java, puis packagé dans un fichier ZIP installé sur le réseau Oracle Blockchain Platform.
Les codes chaîne définissent le schéma de données dans le registre, l'initialisent, effectuent les mises à jour lorsqu'elles sont déclenchées par des applications et répondent aux requêtes. Les codes chaîne peuvent également publier des événements permettant aux applications d'être notifiées et de réaliser des opérations en aval. Par exemple, une fois que les bons de commande, les factures et les enregistrements de livraison ont été mis en correspondance avec un code chaîne, il peut publier un événement afin qu'une application abonnée puisse traiter les paiements associés et mettre à jour un système ERP interne.
Ressources pour le développement de code chaîne
Oracle Blockchain Platform utilise Hyperledger Fabric comme base. Utilisez la documentation Hyperledger Fabric pour vous aider à écrire des codes chaîne valides.
-
Bienvenue dans Hyperledger Fabric. Lisez les sections Concepts clés et Tutoriels avant d'écrire votre propre code chaîne.
-
Exécuter le langage de programmation. Les compilateurs, outils et bibliothèques Go fournissent une variété de ressources qui simplifient l'écriture de codes chaîne.
-
Shim de package. Le package shim fournit des API permettant au code chaîne d'accéder à ses variables d'état, d'obtenir le contexte des transactions et d'appeler d'autres codes chaîne. La documentation du package shim décrit la syntaxe réelle requise pour votre code chaîne.
Oracle Blockchain Platform fournit des exemples téléchargeables qui vous aident à comprendre comment écrire des codes chaîne et des applications. Reportez-vous à Echantillons de code chaîne
Vous pouvez ajouter une syntaxe de requête enrichie à vos codes chaîne pour interroger la base de données d'état. Reportez-vous à Syntaxe de requête enrichie SQL et à CouchDBSyntaxe de requête enrichie.
Package d'un code chaîne Go
Après avoir écrit votre code chaîne, compressez-le dans un fichier au format ZIP. Vous n'avez pas besoin de créer de package pour le code chaîne Go ni de le signer. Le processus d'installation et de déploiement d'Oracle Blockchain Platform effectue cette opération pour vous, comme décrit dans Workflow standard de déploiement de codes chaîne (Hyperledger Fabric v2.x).
Si votre code chaîne comporte des dépendances externes, vous pouvez les placer dans le répertoire du fournisseur de votre fichier ZIP.
Fournisseur des codes chaîne Shim for Go
La dépendance shim de code chaîne Go, qui était précédemment incluse avec les versions antérieures d'Hyperledger Fabric, n'est pas incluse avec Hyperledger Fabric v2.x. Le shim doit désormais être vendu (importé) aux codes chaîne Go avant d'être installé sur un pair.
Vous pouvez utiliser des modules Go ou un outil tiers tel que govendor pour fournir le shim de code chaîne et le mettre à jour vers la version qui fonctionne avec Hyperledger Fabric v2.x.
Pour plus d'informations, reportez-vous aux sections Chaincode shim changes (Go chaincode only) et Upgrade Chaincodes with vendored shim dans la documentation Hyperledger Fabric. Pour plus d'informations sur les modules Go, reportez-vous à Référence des modules Go.
Package d'un code chaîne Node.js
package.json
avec deux sections :
-
La section
scripts
indique comment lancer le code chaîne. -
La section
dependencies
indique les dépendances.
Voici un exemple package.json
pour un code chaîne Node.js :
{
"name": "chaincode_example02",
"version": "1.0.0",
"description": "chaincode_example02 chaincode implemented in Node.js",
"engines": {
"node": ">=8.4.0",
"npm": ">=5.3.0"
},
"scripts": { "start" : "node chaincode_example02.js" },
"engine-strict": true,
"license": "Apache-2.0",
"dependencies": {
"fabric-shim": "~1.3.0"
}
}
- Le fichier
package.json
doit se trouver dans le répertoire racine. - Le fichier d'entrée JavaScript peut se trouver n'importe où dans le package.
- Si
"start" : "node <start>.js"
n'est pas spécifié dans le fichierpackage.json
, le fichierserver.js
doit se trouver dans le répertoire racine.
Compressez le code chaîne et le fichier de package au format ZIP pour pouvoir l'installer sur Oracle Blockchain Platform.
Package d'un code chaîne Java
Si vous écrivez un code chaîne Java, vous pouvez choisir Gradle ou Maven pour créer le code chaîne.
Archive: example_gradle.zip Length Date Time Name --------- ---------- ----- ---- 610 02-14-2019 01:36 build.gradle 54 02-14-2019 01:28 settings.gradle 0 02-14-2019 01:28 src/ 0 02-14-2019 01:28 src/main/ 0 02-14-2019 01:28 src/main/java/ 0 02-14-2019 01:28 src/main/java/org/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/ 0 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/example/ 5357 02-14-2019 01:28 src/main/java/org/hyperledger/fabric/example/SimpleChaincode.java --------- ------- 6021 10 files
Archive: example_maven.zip Length Date Time Name --------- ---------- ----- ---- 3313 02-14-2019 01:52 pom.xml 0 02-14-2019 01:28 src/ 0 02-14-2019 01:28 src/chaincode/ 0 02-14-2019 01:28 src/chaincode/example/ 4281 02-14-2019 01:28 src/chaincode/example/SimpleChaincode.java --------- ------- 7594 5 files
Test d'un code chaîne
Testez votre code chaîne après l'avoir écrit. Reportez-vous aux rubriques suivantes :
-
Test d'un code chaîne à l'aide d'un simulateur de comportement
-
Déploiement d'un code chaîne sur un pair pour tester le code chaîne
Installation et déploiement d'un code chaîne
Une fois le code chaîne testé, vous pouvez le déployer en suivant les informations du workflow standard de déploiement de codes chaîne (Hyperledger Fabric v2.x).
Mise à niveau d'un code chaîne
Mettez à niveau un code chaîne déployé en suivant les étapes décrites dans Mise à niveau d'un code chaîne (Hyperledger Fabric v2.x).