Escribir un código de cadena

Un código de cadena se escribe en Go, Node.js o Java y, a continuación, se empaqueta en un archivo ZIP que se instala en la red de Oracle Blockchain Platform.

Los códigos de cadenas definen el esquema de datos en el libro mayor, lo inicializan, realizan actualizaciones cuando las aplicaciones lo disparan y responden a las consultas. Los códigos de cadenas también pueden publicar eventos que permiten notificar a las aplicaciones y realizar operaciones descendentes. Por ejemplo, una vez que las órdenes de compra, las facturas y los registros de entrega se han confrontado con un código de cadena, puede publicar un evento para que una aplicación de suscripción pueda procesar pagos relacionados y actualizar un sistema de ERP interno.

Recursos para el desarrollo de código de cadena

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

  • Bienvenido a Hyperledger Fabric. Las secciones Conceptos clave y tutoriales se deben leer antes de escribir su propio código de cadena.

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

  • Impresión de paquete. Package shim proporciona API para que el código de cadenas acceda a sus variables de estado, contexto de transacción y llame a otros códigos de cadenas. Esto documenta la sintaxis real necesaria para el código de cadenas.

Oracle Blockchain Platform proporciona ejemplos descargables que le ayudarán a comprender cómo escribir códigos de cadenas y aplicaciones. Consulte Definición de Ejemplos 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 consulta enriquecida de SQL y Sintaxis de consulta enriquecida de CouchDB.

Empaquetar y comprimir un código de cadena Go

Una vez que haya escrito su código de cadenas, colóquelo en un archivo ZIP. No es necesario crear un paquete para el código de cadena Go ni firmarlo. 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) o Typical Workflow to Deploy Chaincodes (Hyperledger Fabric v1.4.7).

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

Provea el Shim para los códigos de cadenas Go (Hyperledger Fabric v2.x)

La dependencia de dimensión de código de cadena Go, que anteriormente se incluía con versiones anteriores de Hyperledger Fabric, no se incluye con Hyperledger Fabric v2.x. La dimensión ahora debe venderse (importarse) a los códigos de cadena Go antes de que se instalen en un par que ejecute Hyperledger Fabric v2.x.

Puede utilizar módulos Go o una herramienta de terceros, como Govendor, para proporcionar la dimensión de código de cadena y actualizarla 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 y comprimir un código de cadena Node.js

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

  • La sección dependencies especifica las dependencias.

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

Coloque el código de cadena y el archivo de paquete en un archivo ZIP para instalarlo en Oracle Blockchain Platform.

Empaquetar y comprimir un código de cadena Java

Si está escribiendo un código de cadena Java, puede elegir Gradle o Maven para crear el código de cadena.

Si utiliza Gradle, coloque el código de cadenas build.gradle y settings.gradle en un archivo ZIP para instalarlo en Oracle Blockchain Platform. A continuación, se muestra una lista de archivos de ejemplo de 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, coloque el código de cadena y pom.xml en un archivo ZIP para instalarlo en Oracle Blockchain Platform. A continuación, se muestra una lista de archivos de ejemplo de 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

Después de escribir el código de cadenas, debe probarlo. Consulte:

Instalación y despliegue de un código de cadenas

Después de probar el código de cadenas, puede desplegarlo siguiendo la información de Flujo de trabajo típico para desplegar códigos de cadenas (Hyperledger Fabric v2.x) o Flujo de trabajo típico para desplegar códigos de cadenas (Hyperledger Fabric v1.4.7)

Actualización de un código de cadena

Puede actualizar un código de cadena desplegado siguiendo los pasos descritos en Upgrade a Chaincode (Hyperledger Fabric v2.x) o Upgrade a Chaincode (Hyperledger Fabric v1.4.7).