Contenido


Aspectos básicos de blockchain: Hyperledger Fabric e Hyperledger Composer

¿Cuál es la diferencia?

Comments

La tecnología blockchain presenta abundantes oportunidades para la innovación. Tiene el poder para revolucionar los negocios cambiando radicalmente la forma en la que se hacen las transacciones empresariales.

Así que ¿cuál es la mejor manera para que los desarrolladores empiecen a desarrollar código para las redes de blockchain? Recomiendo empezar entendiendo claramente dos proyectos de Hyperledger de código abierto: Hyperledger Fabric e Hyperledger Composer. Los nombres son similares, pero conocer la diferencia es la clave para empezar a desarrollar con blockchain.

Alerta de destripe: ambos son proyectos de Hyperledger de código abierto. Uno es una gran herramienta de desarrollo, y el otro es el potente motor de las redes blockchain empresariales.

Ambos proyectos están bajo el paraguas de Hyperledger . Hyperledger es un esfuerzo colaborativo de código abierto creado para hacer avanzar las tecnologías blockchain multiindustria para su uso empresarial. Es una colaboración global organizada por The Linux Foundation.

Los proyectos de Hyperledger incluyen infraestructuras de blockchain, como Hyperledger Fabric, y herramientas de desarrollo relacionadas, como Hyperledger Composer, que simplifican la creación de redes y aplicaciones de blockchain.

¿Qué es Hyperledger Fabric?

Hyperledger Fabric es una implementación de infraestructura de código abierto para redes empresariales privadas y con permisos, en la que sus miembros conocen las identidades y los roles de los otros miembros. Se ha diseñado como los cimientos para desarrollar soluciones con una arquitectura popular. Permite que componentes, como la base de datos de libros contables, el mecanismo de consenso y los servicios de suscripción, sean de "conectar y listo". Aprovecha la tecnología de contenedores y proporciona seguridad, escalabilidad y confidencialidad de la red listas para la empresa.

Las redes Hyperledger Fabric tienen los siguientes componentes:

  • Activos. Un activo es cualquier cosa que tenga valor. Un activo tiene estado y propiedad. En Hyperledger Fabric los activos se representan como una colección de pares clave-valor.
  • Libro contable compartido. El libro contable registra el estado y la propiedad de un activo. El libro contable está formado por dos componentes:
    • El estado mundial describe el estado del libro contable en un momento determinado. Es la base de datos del libro contable.
    • El blockchain es un histórico del registro de transacciones que registra todas las transacciones.
  • Contrato inteligente. los contratos inteligentes de Hyperledger Fabric se llaman chaincode. Chaincode es un software que define los activos y sus transacciones relacionadas; en otras palabras, contiene la lógica empresarial del sistema. El chaincode se invoca cuando una aplicación tiene que interactuar con el libro contable. El chaincode se puede escribir e Golang o Node.js.
  • Nodos del par. Los pares son un elemento fundamental de la red porque alojan los libros contables y los contratos inteligentes. Los pares ejecutan el chaincode, acceden a datos del libro contable, respaldan transacciones e interactúan con aplicaciones. Algunos pares pueden ser pares de aprobación, o endosadores. Cada chaincode puede especificar una política de aprobación, que define las condiciones necesarias y suficientes para respaldar una transacción válida.
  • Canal. Los canales son estructuras lógicas formadas por una colección de pares. Esta capacidad permite que un grupo de pares creen un libro contable separado de las transacciones.
  • Organizaciones. La red Hyperledger Fabric se construye a partir de los pares de diferentes organizaciones que forman parte de la red y que contribuyen con los mismos. La red existe porque las organizaciones contribuyen con sus recursos individuales para la red colaborativa. Los pares tienen una identidad (certificado digital) asignada por un Proveedor de Servicios de Suscripción de la organización de la que son propiedad. Los pares de diferentes organizaciones pueden estar en el mismo canal.
  • Proveedor de Servicios de Suscripción (MSP). El MSP se implementa como Autoridad de Certificación para gestionar los certificados que se utilizan para autenticar la identidad y los roles de los miembros. En la red Hyperledger Fabric no se pueden realizar transacciones de identidades desconocidas. Gestiona los IDs de los usuarios y autentica todos los participantes de la red, lo que permite que Hyperledger Fabric sea una red privada y con permisos.
  • Servicio de pedido. El servicio de pedido empaqueta las transacciones en bloques que se van entregar a los pares a través de un canal. Garantiza la entrega de transacciones en la red. Se comunican con los pares y los pares de aprobación. Los mecanismos de configuración soportados para el Servicio de pedido son Solo y Kafka.
Figura 1. Los componentes de una red de Hyperledger Fabric (para simplificar, no se muestran los canales)
Diagrama de los componentes de una red de Hyperledger Fabric
Diagrama de los componentes de una red de Hyperledger Fabric

Cómo funciona una solución de blockchain

En una solución de blockchain, la red de Hyperledger Fabric funciona como backend con una aplicación de frontend para comunicarse con la red. Los SDKs le ayudan a establecer la comunicación entre el frontend y el backend, como Nodejs SDK y Java SDK. El SDK proporciona una forma de ejecutar el chaincode del usuario, de realizar transacciones en la red, de supervisar eventos, etc.

Para escribir una aplicación de blockchain, es necesario:

  1. Escribir el chaincode en un lenguaje de programación compatible, como Go.
  2. Implementar el chaincode en la red de Hyperledger Fabric.
  3. Desarrollar una aplicación del cliente con un SDK.

Cómo se ejecuta una transacción de blockchain

El flujo de una solicitud de alto nivel de una transacción en una red de Hyperledger Fabric es parecido a esto:

  1. El cliente se conecta a una red de Hyperledger Fabric a través de Nodejs o de Java SDK. Con la SDK API, el cliente crea una transacción y la envía al par de aprobación.
  2. El par de aprobación verifica la firma del cliente, simula una transacción y envía una firma de la aprobación.
  3. Si se aprueba la transacción, el cliente la envía al servicio de pedido. En caso contrario, la transacción se cancela.
  4. El servicio de pedido entrega una transacción a los pares. Todos los pares anotan y aplican la misma secuencia de transacciones, y actualizan su estado.

¿Qué es Hyperledger Composer?

Hyperledger Composer es un conjunto de herramientas basadas en JavaScript que simplifican y aceleran la creación de aplicaciones de blockchain de Hyperledger Fabric. Con Hyperledger Composer, los propietarios de empresas y los desarrolladores pueden crear rápidamente chaincode (lógica empresarial) y aplicaciones de blockchain. En vez de escribir el chaincode en Golang, generará un archivo de arquitectura de red empresarial (.BNA) para su red, tal como se describe a continuación.

Hyperledger Composer incluye estos componentes:

  1. Arquitectura de red empresarial
  2. Hyperledger Composer Playground
  3. soporte para REST API

Arquitectura de red empresarial

Hyperledger Composer le ayuda a modelar rápidamente su actual red empresarial, lo que incluye sus activos existentes y las transacciones que están relacionadas con ellos. Para generar la definición de red empresarial, Hyperledger Composer requiere de un archivos de modelo de red, un archivo de JavaScript (.js), un archivo de control de acceso (.acl) y un archivo de consultas (.qry).

  • Archivo de modelo de red (.cto). Usted definirá los activos, las transacciones y los participantes que pueden interactuar con esos activos como parte del modelo de red empresarial. El archivo del modelo contiene definiciones de activos, participantes y transacciones.
  • Archivo de JavaScript (.js). Este archivo define las funciones de las transacciones.
  • Archivo ACL (.acl). Este archivo contiene las reglas de control de acceso que definen los derechos de los diferentes participantes en la red empresarial.
  • Archivo de consultas (.qry). Este archivo define la consulta que se puede ejecutar en una red.

Hyperledger Composer utiliza estos archivos para crear una definición de red empresarial que se puede empaquetar y exportar como un archivo. El archivo exportado es un archivo Business Network Archive (.bna), que se puede implementar en una red existente de Hyperledger Fabric. El archivo BNA contiene funciones ejecutables del procesador de transacciones y se puede considerar como un contacto inteligente escrito en JavaScript. Es posible escribir aplicaciones cliente utilizando APIs de Hyperledger Composer para acceder a opciones de BNA.

Figura 2. Los componentes de una definición de red empresarial que se pueden implementar en una red y a los que pueden acceder las aplicaciones
Diagrama de los componentes de una definición de red empresarial que se pueden implementar en una red y a los que pueden acceder las aplicaciones
Diagrama de los componentes de una definición de red empresarial que se pueden implementar en una red y a los que pueden acceder las aplicaciones

Hyperledger Composer Playground

Hyperledger Composer también proporciona una interfaz de usuario web llamada "Playground" que se puede utilizar para crear modelos y probar la red empresarial. Playground utiliza el almacenamiento local del navegador para simular el almacenamiento de estado de la red de blockchain. Es un excelente punto de partida para las pruebas de concepto porque no necesita ejecutar una red de blockchain.

Soporte para REST API

Hyperledger Composer también utiliza un conector de LoopBack para generar REST APIs basadas en la definición de red empresarial. Estas REST APIs pueden ser consumidas fácilmente por las aplicaciones cliente y se pueden integrar con aplicaciones que no son de blockchain.

Resumen

En resumen, Hyperledger Composer es la infraestructura de desarrollo de aplicaciones para construir aplicaciones de blockchain basándose en Hyperledger Fabric. En otras palabras, Hyperledger Composer ayuda a crear definiciones de red empresariales, que se implementan en Hyperledger Fabric, donde se ejecutan.

La belleza de Hyperledger Composer reside en que proporciona una capa de abstracción de alto nivel que se puede utilizar para crear el modelo de red empresarial, escribir funciones de JavaScript para las transacciones, y exponer esas funciones como REST APIs para el desarrollo de aplicaciones cliente. Debido a que el nivel de programación necesario es mínimo, los propietarios empresariales que no son necesariamente desarrolladores de aplicaciones pueden crear modelos y escribir fácilmente funciones de transacciones para las redes de blockchain.

Siguientes pasos

  • Aprenda más acerca de crear redes empresariales desde cero con Hyperledger Composer en nuestra popular serie, Aspectos básicos de Hyperledger Composer, por Steve Perry.
     
  • Pruebe el nuevo IBM Blockchain Plan de Suscripción Starter. Proporciona una forma económica de empezar a utilizar una red de blockchain en la que se pueden implementar y probar fácilmente aplicaciones de blockchain. También se pueden implementar modelos empresariales que se creen con Hyperledger Composer, tal como se describe en este artículo, para ejecutarlos en el Starter Plan.
     
  • Manténgase al tanto con la Blockchain Newsletter para desarrolladores. Vea la edición actual y suscríbase.
     
  • Eche un vistazo a los muchos patrones de código, que brindan hojas de ruta para solucionar problemas complejos con la tecnología blockchain, y que incluyen diagramas arquitectónicos, repos de código y lecturas adicionales.
     
  • Pásese por el Centro de Desarrollo de Blockchain. Es el lugar para obtener tutoriales y herramientas gratuitas, además de código y soporte de la comunidad, para desarrollar implementar soluciones blockchain para las empresas.

Conozca más


Recursos para Descargar


Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing
ArticleID=1063937
ArticleTitle=Aspectos básicos de blockchain: Hyperledger Fabric e Hyperledger Composer
publish-date=12142018