Escribir un código de cadena

Se escribe un código de cadenas en Go, Node.js o Java y, a continuación, se empaqueta en un archivo ZIP instalado en la red de Oracle Blockchain Platform.

Los códigos de cadenas definen el esquema de datos en el libro mayor, lo inicializan, completan las actualizaciones cuando las aplicaciones las disparan y responden a las consultas. Los códigos de cadenas también pueden publicar eventos que permiten a las aplicaciones recibir notificaciones y completar operaciones descendentes. Por ejemplo, después de que las órdenes de compra, las facturas y los registros de entrega se hayan confrontado con un código de cadenas, puede contabilizar un evento para que una aplicación suscrita pueda procesar pagos relacionados y actualizar un sistema ERP interno.

Recursos para el desarrollo de código de cadenas

Oracle Blockchain Platform utiliza Hyperledger Fabric como base. Utilice la documentación de Hyperledger Fabric para escribir códigos de cadenas válidos.

  • Bienvenido a Hyperledger Fabric. Lea las secciones Conceptos clave y tutoriales antes de escribir su propio código de cadenas.

  • Ir al lenguaje de programación. Los compiladores, herramientas y bibliotecas Go proporcionan una variedad de recursos que simplifican la escritura de códigos de cadenas.

  • Package shim (Shim de paquete). Package shim proporciona API para que el código de cadena acceda a sus variables de estado, obtenga el contexto de la transacción y llame a otros códigos de cadena. En la documentación del paquete shim se describe la sintaxis real necesaria para el código de cadenas.

Oracle Blockchain Platform proporciona ejemplos descargables que le ayudan a comprender cómo escribir códigos de cadenas y aplicaciones. Consulte ¿Qué son las muestras de código de cadena?

Puede agregar sintaxis de consulta enriquecida a los códigos de cadenas para consultar la base de datos de estado. Consulte Sintaxis de consultas enriquecidas SQL y CouchDB Sintaxis de consultas enriquecidas.

Empaquetar un código de cadena de Go

Después de escribir el código de cadenas, comprímalo en un archivo en formato ZIP. No es necesario que cree un paquete para el código de cadena Go ni que lo firme: el proceso de instalación y despliegue de Oracle Blockchain Platform lo hace por usted, como se describe en Typical Workflow to Deploy Chaincodes (Hyperledger Fabric v2.x).

Si el código de cadenas tiene dependencias externas, puede colocarlas en el directorio del proveedor del archivo ZIP.

Proveedor de códigos de cadenas de Shim for Go

La dependencia Shim del código de cadena Go, que se incluyó anteriormente con versiones anteriores de Hyperledger Fabric, no se incluye con Hyperledger Fabric v2.x. El shim ahora debe venderse (importarse) a los códigos de cadenas Go antes de instalarse en un par.

Puede utilizar módulos Go o una herramienta de terceros, como el proveedor, para proporcionar el código de cadena shim y actualizarlo a la versión que funciona con Hyperledger Fabric v2.x.

Para obtener más información, consulte Chaincode shim changes (Go chaincode only) y Upgrade Chaincodes with vendored shim en la documentación de Hyperledger Fabric. Para obtener más información sobre los módulos Go, consulte Referencia de módulos Go.

Empaquetar un código de cadena Node.js

Si está escribiendo un código de cadenas Node.js, debe crear un archivo package.json con dos secciones:
  • La sección scripts declara cómo iniciar el código de cadenas.

  • La sección dependencies especifica las dependencias.

A continuación, se muestra un ejemplo de package.json para un código de cadenas 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"
	}
}
Las reglas de empaquetado para un código de cadena Node.js son:
  • El archivo package.json debe estar en el directorio raíz.
  • El archivo de entrada JavaScript se puede ubicar en cualquier parte del paquete.
  • Si no se especifica "start" : "node <start>.js" en el archivo package.json, el archivo server.js debe estar en el directorio raíz.

Comprima el código de cadenas y el archivo de paquete en formato ZIP para instalarlo en Oracle Blockchain Platform.

Empaquetado de un Código de Cadena Java

Si está escribiendo un código de cadenas Java, puede elegir Gradle o Maven para crearlo.

Si utiliza Gradle, comprima el código de cadenas, build.gradle y settings.gradle en un archivo en formato ZIP para instalarlo en Oracle Blockchain Platform. La siguiente lista muestra archivos de ejemplo en un paquete de código de cadenas:
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 utiliza Maven, comprima el código de cadena y pom.xml en un archivo en formato ZIP para instalarlo en Oracle Blockchain Platform. La siguiente lista muestra archivos de ejemplo en un paquete de código de cadenas:
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

Prueba de un Código de Cadena

Pruebe el código de cadenas después de escribirlo. Consulte los temas siguientes:

Instalación y Despliegue de un Código de Cadena

Después de probar el código de cadenas, puede desplegarlo siguiendo la información de Typical Workflow to Deploy Chaincodes (Hyperledger Fabric v2.x).

Actualización de un Código de Cadena

Actualice un código de cadenas desplegado siguiendo los pasos de Upgrade a Chaincode (Hyperledger Fabric v2.x).