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 aux requêtes. Les codes chaîne peuvent également publier des événements qui permettent aux applications d'être notifiées et d'effectuer 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. Vous devez lire 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, au contexte de transaction et d'appeler d'autres codes chaîne. Documentation de 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 et compression d'un code chaîne Go

Une fois que vous avez écrit votre code chaîne, placez-le dans un fichier 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) ou Workflow standard de déploiement de codes chaîne (Hyperledger Fabric v1.4.7).

Si votre code chaîne comporte des dépendances externes, vous pouvez les placer dans le répertoire du fournisseur de votre fichier ZIP.

Fournir le shim pour les codes chaîne Go (Hyperledger Fabric v2.x)

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 exécutant Hyperledger Fabric v2.x.

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 et compression 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 :
  • package.json doit se trouver dans le répertoire root.
  • 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 package.json, server.js doit se trouver dans le répertoire racine.

Placez le code chaîne et le fichier de package dans un fichier ZIP pour l'installer sur Oracle Blockchain Platform.

Package et compression 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, placez le code chaîne, build.gradle et settings.gradle dans un fichier ZIP pour l'installer sur Oracle Blockchain Platform. Voici un exemple de liste de fichiers d'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, placez le code chaîne et pom.xml dans un fichier ZIP pour l'installer sur Oracle Blockchain Platform. Voici un exemple de liste de fichiers d'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

Une fois que vous avez écrit votre code chaîne, vous devez le tester. Reportez-vous à :

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 du workflow standard de déploiement de codes chaîne (Hyperledger Fabric v2.x) ou du workflow standard de déploiement de codes chaîne (Hyperledger Fabric v1.4.7).

Mise à niveau d'un code chaîne

Vous pouvez mettre à 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) ou Mise à niveau d'un code chaîne (Hyperledger Fabric v1.4.7).