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, completano gli aggiornamenti quando vengono attivati dalle applicazioni e rispondono alle query. I codici concatenati possono anche pubblicare eventi che consentono alle applicazioni di essere notificate e completare le 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 personale, 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, ottenere il contesto della transazione e chiamare altri codici concatenati. La documentazione shim del pacchetto descrive 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.

Crea un package per un Go Chaincode

Dopo aver scritto il codice concatenato, comprimerlo in un file in formato ZIP. Non è necessario creare un package 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).

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

Fornisci codici concatenati Shim per Go

La dipendenza shim del codice concatenato Go, inclusa in precedenza con le versioni precedenti di Hyperledger Fabric, non è inclusa in Hyperledger Fabric v2.x. Lo shim deve ora essere venduto (importato) ai codici catena Go prima di essere installato su un peer.

È 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.

Crea package 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:
  • Il file 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 nel file package.json, il file server.js deve trovarsi nella directory root.

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

Crea un package per Java Chaincode

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

Se si utilizza Gradle, comprimere il codice concatenato, build.gradle e settings.gradle in un file in formato ZIP per installarlo su Oracle Blockchain Platform. L'elenco seguente mostra file di esempio in un package di 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, comprimere il codice concatenato e pom.xml in un file in formato ZIP per installarlo su Oracle Blockchain Platform. L'elenco seguente mostra file di esempio in un package di 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

Testare il codice concatenato dopo averlo scritto. Vedere gli argomenti seguenti:

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).

Aggiornamento di un codice concatenato

Aggiornare un codice concatenato distribuito eseguendo le operazioni descritte nella sezione Upgrade a Chaincode (Hyperledger Fabric v2.x).