É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, effectuer les mises à jour lorsqu'il est déclenché par les applications et répondre 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. Les sections Concepts clés et Tutoriels doivent être lues 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 pour que le code de chaîne puisse accéder à ses variables d'état, à son contexte de transaction et appeler d'autres codes de chaîne. Cela documente 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.

Ensemble et compresser un code de chaîne Go

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

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

Fournir la cale pour les codes de chaîne Go (Hyperledger Fabric v2.x)

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

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.

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

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

Emballer et compresser 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, placez le code de 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 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, placez le code de 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 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

Après avoir écrit votre code de chaîne, vous devez le tester. Voir :

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 décrites dans Flux de travail type pour déployer des codes de chaîne (Hyperledger Fabric v2.x) ou Flux de travail type pour déployer des codes de chaîne (Hyperledger Fabric v1.4.7).

Mise à niveau d'un code de chaîne

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