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 des mises à jour lorsqu'elles sont déclenchées par des applications et répondent à des requêtes. Les codes chaîne peuvent également publier des événements qui permettent aux applications d'être averties et de terminer les 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 par 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 codes 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.

  • Allez au langage de programmation. Les compilateurs, outils et bibliothèques Go fournissent une variété de ressources qui simplifient l'écriture de codes chaîne.

  • Cale de package. Le package shim fournit des API permettant au code chaîne d'accéder à ses variables d'état, d'obtenir le contexte de transaction et d'appeler d'autres codes chaîne. La documentation shim du package 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 à Présentation des exemples 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 à Syntaxe de requête enrichie CouchDB.

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 accéder au code chaîne ou de le signer. Le processus d'installation et de déploiement d'Oracle Blockchain Platform le fait pour vous, comme décrit dans Workflow standard de déploiement des 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 du shim pour Go Chaincodes

La dépendance shim Go de code chaîne, qui était précédemment incluse avec des versions antérieures d'Hyperledger Fabric, n'est pas incluse avec Hyperledger Fabric v2.x. Le shim doit maintenant ê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 de 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 comportant deux sections :
  • La section scripts indique comment lancer le code chaîne.

  • La section dependencies indique les dépendances.

Voici un exemple de code chaîne 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 pour 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 indiqué 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 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

Après avoir testé votre code chaîne, vous pouvez le déployer en suivant les informations fournies dans Workflow standard de déploiement des 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 la section Mise à niveau d'un code chaîne (Hyperledger Fabric v2.x).