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

Si vous écrivez un code chaîne Node.js, vous devez créer un fichier 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"
	}
}
Les règles de packaging d'un code chaîne Node.js sont les suivantes :
  • 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 fichier package.json, le fichier server.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.

Si vous utilisez Gradle, compressez le code chaîne, build.gradle et settings.gradle dans un fichier au format ZIP pour l'installer sur Oracle Blockchain Platform. La liste suivante présente des exemples de fichiers dans un package de 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
Si vous utilisez Maven, compressez le code chaîne et pom.xml dans un fichier au format ZIP pour l'installer sur Oracle Blockchain Platform. La liste suivante présente des exemples de fichiers dans un package de code chaîne :
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 :

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).