Scrivi un codice concatenato

Un codice concatenato viene scritto in Go, Node.js o Java e quindi inserito in un file ZIP installato nella rete Oracle Blockchain Platform.

I codici concatenati definiscono lo schema dati nel libro contabile, lo inizializzano, eseguono aggiornamenti quando vengono attivati dalle applicazioni e rispondono alle query. I codici concatenati possono anche pubblicare eventi che consentono alle applicazioni di ricevere notifiche ed eseguire operazioni a valle. Ad esempio, dopo che ordini di acquisto, fatture e record di consegna sono stati abbinati da un codice concatenato, può contabilizzare un evento in modo che un'applicazione di sottoscrizione possa elaborare i pagamenti correlati e aggiornare un sistema ERP interno.

Risorse per lo sviluppo di Chaincode

Oracle Blockchain Platform utilizza Hyperledger Fabric come base. Utilizzare la documentazione di Hyperledger Fabric per scrivere codici concatenati validi.

  • Benvenuti in Hyperledger Fabric. Prima di scrivere il codice concatenato, è necessario leggere le sezioni Concetti chiave ed esercitazioni.

  • Go Programming Language. I compilatori, gli strumenti e le librerie Go forniscono una vasta gamma di risorse che semplificano la scrittura di codici concatenati.

  • Shim del pacchetto. Il package shim fornisce API per il codice concatenato per accedere alle relative variabili di stato, al contesto delle transazioni e chiamare altri codici concatenati. Ciò documenta la sintassi effettiva richiesta per il codice concatenato.

Oracle Blockchain Platform fornisce esempi scaricabili che ti aiutano a capire come scrivere codici concatenati e applicazioni. Vedere Informazioni sugli esempi di codice concatenato

È possibile aggiungere la sintassi Rich Query ai codici concatenati per eseguire query sul database di stato. Vedere Sintassi query Rich SQL e CouchDB Sintassi query Rich.

Package e CAP di un codice concatenato Go

Dopo aver scritto il codice concatenato, inserirlo in un file ZIP. Non è necessario creare un pacchetto per il codice concatenato Go o firmarlo. Il processo di installazione e distribuzione di Oracle Blockchain Platform lo fa per te come descritto in Flusso di lavoro tipico per distribuire i codici concatenati (Hyperledger Fabric v2.x) o Flusso di lavoro tipico per distribuire i codici concatenati (Hyperledger Fabric v1.4.7).

Se il codice concatenato contiene dipendenze esterne, è possibile inserirle nella directory del fornitore del file ZIP.

Fornitore del codice Shim per Go Chaincode (Hyperledger Fabric v2.x)

La dipendenza shim del codice concatenato Go, inclusa in precedenza con le versioni precedenti di Hyperledger Fabric, non è inclusa in Hyperledger Fabric v2.x. Ora lo shim deve essere distribuito (importato) ai codici concatenati Go prima di essere installato su un peer in esecuzione Hyperledger Fabric v2.x.

È possibile utilizzare i moduli Go o uno strumento di terze parti come govendor per fornire il codice concatenato shim e aggiornarlo alla versione che funziona con Hyperledger Fabric v2.x.

Per ulteriori informazioni, vedere Chaincode shim changes (solo Go chaincode) e Upgrade Chaincodes con shim vendor nella documentazione Hyperledger Fabric. Per ulteriori informazioni sui moduli Go, vedere Riferimento ai moduli Go.

Package e CAP di un codice concatenato Node.js

Se si sta scrivendo un codice concatenato Node.js, è necessario creare un file package.json con due sezioni:
  • La sezione scripts spiega come avviare il codice concatenato.

  • La sezione dependencies specifica le dipendenze.

Di seguito è riportato un esempio di package.json per un codice concatenato 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"
	}
}
Le regole di packaging per un codice concatenato Node.js sono:
  • package.json deve trovarsi nella directory root.
  • Il file JavaScript della voce può essere posizionato in qualsiasi punto del pacchetto.
  • Se "start" : "node <start>.js" non è specificato nella directory package.json, server.js deve trovarsi nella directory root.

Inserire il codice concatenato e il file del package in un file ZIP per installarlo su Oracle Blockchain Platform.

Package e Zip a Java Chaincode

Se stai scrivendo un codice concatenato Java, puoi scegliere Gradle o Maven per creare il codice concatenato.

Se si utilizza Gradle, inserire il codice concatenato, build.gradle e settings.gradle in un file ZIP per installarlo su Oracle Blockchain Platform. Di seguito è riportato un elenco di file di esempio di un package codice concatenato.
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
Se si utilizza Maven, inserire il codice concatenato e pom.xml in un file ZIP per installarlo su Oracle Blockchain Platform. Di seguito è riportato un elenco di file di esempio di un package codice concatenato.
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 di un codice concatenato

Dopo aver scritto il codice concatenato, è necessario testarlo. Fare riferimento a quanto riportato di seguito.

Installazione e distribuzione di un codice concatenato

Dopo aver testato il codice concatenato, è possibile distribuirlo seguendo le informazioni contenute in Flusso di lavoro tipico per distribuire i codici concatenati (Hyperledger Fabric v2.x) o Flusso di lavoro tipico per distribuire i codici concatenati (Hyperledger Fabric v1.4.7).

Aggiornamento di un codice concatenato

Per aggiornare un codice concatenato distribuito, attenersi alla procedura descritta in Upgrade a Chaincode (Hyperledger Fabric v2.x) o Upgrade a Chaincode (Hyperledger Fabric v1.4.7).