Écrire un code de chaîne

Un code de chaîne est écrit en Go, Node.js ou Java, puis emballé dans un fichier ZIP installé sur le réseau Oracle Blockchain Platform.

Les codes de chaîne définissent le schéma de données dans le livre, l'initialiser, effectuent les mises à jour lorsqu'il est déclenché par les applications et répondent aux interrogations. Les codes de chaîne peuvent également publier des événements qui permettent aux applications d'être avisées et d'effectuer des opérations en aval. Par exemple, une fois que des bons de commande, des factures et des enregistrements de livraison ont été appariés par un code de chaîne, il peut publier un événement pour qu'une application abonnée puisse traiter les paiements connexes et mettre à jour un système ERP interne.

Ressources pour le développement de code de chaîne

Oracle Blockchain Platform utilise Hyperledger Fabric comme base. Utiliser la documentation sur Hyperledger Fabric pour écrire des codes de chaîne valides.

  • Bienvenue dans Hyperledger Fabric. Lisez les sections Key Concepts and Tutorials avant d'écrire votre propre code de chaîne.

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

  • Cale d'emballage. L'offre groupée fournit des API permettant au code de chaîne d'accéder à ses variables d'état, d'obtenir le contexte de la transaction et d'appeler d'autres codes de chaîne. La documentation sur le modèle de paquetage décrit la syntaxe réelle requise pour votre code de chaîne.

Oracle Blockchain Platform fournit des exemples téléchargeables qui vous aident à comprendre comment écrire des codes de chaîne et des applications. Voir À quoi servent les exemples de code de chaîne?

Vous pouvez ajouter une syntaxe d'interrogation enrichie à vos codes de chaîne pour interroger la base de données d'état. Voir Syntaxe d'interrogation enrichie SQL et CouchDB Syntaxe d'interrogation enrichie.

Créer un ensemble de code de chaîne Go

Après avoir écrit votre code de chaîne, compressez-le dans un fichier au format ZIP. Vous n'avez pas besoin de créer un ensemble pour le code de chaîne Go ou de le signer. Le processus d'installation et de déploiement d'Oracle Blockchain Platform le fait pour vous, comme décrit dans Flux de travail type pour déployer des codes de chaîne (Hyperledger Fabric v2.x).

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

Vendez les codes de chaîne Shim for Go

La dépendance de modèle de code de chaîne Go, qui était précédemment incluse avec les versions antérieures de Hyperledger Fabric, n'est pas incluse dans Hyperledger Fabric v2.x. La cale doit maintenant être vendue (importée) aux codes de chaîne Go avant d'être installée sur un pair.

Vous pouvez utiliser les modules Go ou un outil de tierce partie, tel que govendor, pour fournir le shim de code de chaîne et le mettre à jour à la version qui fonctionne avec Hyperledger Fabric v2.x.

Pour plus d'informations, voir Modifications de la couche de code de chaîne (Go chaincode uniquement) et Mettre à niveau les codes de chaîne avec la couche de chaîne vendue dans la documentation sur Hyperledger Fabric. Pour plus d'informations sur les modules Go, voir Informations de référence sur les modules Go.

Encapsuler un code de chaîne Node.js

Si vous écrivez un code de chaîne Node.js, vous devez créer un fichier package.json avec deux sections :
  • La section scripts déclare comment lancer le code de chaîne.

  • La section dependencies spécifie les dépendances.

Voici un exemple de code de chaîne package.json pour un code de 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 d'emballage pour un code de 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 être localisé n'importe où dans le paquetage.
  • 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.

Compresser le code de chaîne et le fichier de paquetage au format ZIP pour l'installer sur Oracle Blockchain Platform.

Paquetage d'un code de chaîne Java

Si vous écrivez un code de chaîne Java, vous pouvez choisir Gradle ou Maven pour créer le code de chaîne.

Si vous utilisez Gradle, compressez le code de 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 paquetage de code de 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 de 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 paquetage de code de 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 de chaîne

Testez le code de chaîne après l'avoir écrit. Voir les sujets suivants :

Installation et déploiement d'un code de chaîne

Après avoir testé votre code de chaîne, vous pouvez le déployer en suivant les informations figurant dans le document Flux de travail type pour déployer des codes de chaîne (Hyperledger Fabric v2.x).

Mise à niveau d'un code de chaîne

Mettez à niveau un code de chaîne déployé en suivant les étapes décrites dans Mettre à niveau un code de chaîne (Hyperledger Fabric v2.x).