¿Qué es Chaincode en Hyperledger Fabric?

Blockchain es la tecnología que ha estado generando muchas noticias últimamente. Es un tema candente porque muchos creen que es revolucionario. Hyperledger Fabric es uno de los principales marcos de blockchain que existen, y este artículo explicará qué es Chaincode dentro de Hyperledger Fabric. Aquí se tratarán los siguientes temas:

  1. ¿Qué es Chaincode en Hyperledger Fabric?
  2. ¿Tipos de Chaincode en Hyperledger Fabric?
  3. Códigos de string del sistema
  4. Chaincodes para desarrolladores en Blockchain
  5. Códigos de string para operadores en Blockchain
  6. Conclusión

Comencemos discutiendo cada uno de estos temas en detalle.

¿Qué es Chaincode en Hyperledger Fabric?

Un Chaincode (o «contrato inteligente») es una aplicación que se ejecuta sobre la arquitectura subyacente para hacer cumplir las reglas comerciales y mantener el estado. Esta aplicación puede definir sus propias estructuras de datos o usar los tipos de servicios expuestos por otros códigos de string que se ejecutan en paralelo en el mismo Node par.

  • El Node que participa en el protocolo de consenso valida los bloques y los distribuye a otros pares. Cada Node tiene acceso a toda la información requerida para esta tarea y ejecuta un código de string interno que hace cumplir las reglas comerciales.
  • Chaincode es el programa que se ejecuta en un Node par.
  • Existen muchos códigos de string y todos se ejecutan de la misma manera, haciendo cumplir las reglas comerciales en las transacciones. 
  • Chaincode se puede escribir en cualquier idioma compatible con la plataforma subyacente. 

Tipos de Chaincodes en Hyperledger Fabric

En Hyperledger Fabric, hay dos tipos diferentes de códigos de string:

  • Código de string del pedido:Este tipo de código de string es ejecutado por un Node de pedido (un par con etiquetado especial configurado en la identidad de la red). El ordenante ejecuta este código de string para cada transacción y, posteriormente, aplica la lógica comercial asociada con esta transacción al representarla como un objeto de «Pedido». Luego, la orden se envía a los participantes en la red peer-to-peer («Peer») y ellos son responsables de procesarla (siempre que confirmen que la transacción es válida). Este tipo de código de string es ejecutado por un Node de pedido (un par con etiquetado especial configurado en la identidad de la red). El ordenante ejecuta este código de string para cada transacción y, posteriormente, aplica la lógica comercial asociada con esta transacción al representarla como un objeto de «Pedido».
  • Código de string principal:Este tipo de código de string es ejecutado por un Node central (un par que ejecuta múltiples códigos de string). El Node central tiene un etiquetado especial configurado en la identidad de la red. El Node principal ejecuta este código de string para cada transacción, pero lo representa como un nuevo mensaje que se envía mediante el servicio de mensajería. Como se mencionó anteriormente, el código de string se ejecutará en los Nodes pares dentro de la red Hyperledger Fabric. Al ejecutar un código de string, hay varias cosas que se aplicarán a las transacciones mediante el código de string. Un grupo de pares puede verse como un grupo lógico de pares que están conectados entre sí a través de un líder. Cada miembro de este grupo ejecutará el código de string del mismo tipo.

¿Qué son los códigos de string del sistema?

  • Un código de string del sistema es un conjunto de funciones que proporciona al tiempo de ejecución de la string de bloques información sobre el estado de una transacción, al mismo tiempo que permite que la transacción se ejecute. Se puede utilizar para validar o rechazar transacciones, o para obtener información adicional sobre las interacciones de Blockchain.
  • En Hyperledger Fabric, los códigos de string del sistema generalmente se escriben en un lenguaje de programación basado en Javascript (por ejemplo, Nodejs) y se ejecutan en un contenedor como un proceso aislado. Un desarrollador puede escribir códigos de string personalizados y específicos de la aplicación utilizando uno de los muchos SDK disponibles para lenguajes de programación de sistemas como C++, Go, Rust y Python.
  • Hyperledger Fabric es un libro mayor distribuido basado en blockchain con una arquitectura modular que, en general, es compatible con Hyperledger Fabric. 
  • Hay varias organizaciones que brindan soporte para el proyecto Hyperledger Fabric, e Hyperledger es uno de los principales contribuyentes a este esfuerzo.
    Se dice que es un marco de libro mayor distribuido de código abierto diseñado por la Fundación Linux. 
  • Se ha inspirado en Bitcoin Blockchain, así como en Ethereum Platform y su propósito es tener un sistema de string de bloques de código abierto en el que cada empresa participante pueda diseñar y construir sus propias aplicaciones personalizadas para interactuar con la string de bloques «para mejorar sus procesos operativos o modelo de negocio”. 

Chaincode para desarrolladores en Blockchain

Chaincode es un programa que vive en la string de bloques y ejecuta transacciones cuando se le indica. Ofrece una alternativa al uso de scripts para crear contratos inteligentes. 

  • Chaincode está escrito en Javascript, lo que permite a los desarrolladores sin experiencia en criptoeconomía comprender el código base y usarlo en sus aplicaciones.
  • El código de string para desarrolladores ha sido promovido por Hyperledger Fabric, un marco de código abierto de la Fundación Linux que implementa una arquitectura de string de bloques con registros de permisos y computación multipartita (MPC). 
  • Según la especificación, el código de string se utilizará para la «lógica empresarial con estado», que no requiere ningún cambio de estado mediante un algoritmo de consenso.
  • Chaincode es un código que invocan los Nodes participantes para validar transacciones que forman parte de la string de bloques de un bloque; también puede invocar otros tipos de transacciones como suscripción de eventos o transacciones de base de monedas. Los códigos de string también ejecutan operaciones de gestión de datos programables en la base de datos de estado de la string de bloques.
  • Chaincode también se conoce como contratos inteligentes debido a su capacidad para interactuar con la string de bloques y realizar funciones de manipulación de datos.
  • Varios tipos diferentes de códigos de string están disponibles en la biblioteca de contratos inteligentes de Coda Blockchain, incluidos Oracle, multifirma, marca de tiempo y almacén de claves. Coda también proporciona varias operaciones de base de monedas para crear/componer transacciones que incluyen valor de transacción y comentarios de identificación en la string de bloques.
  • Como un medio para simplificar el desarrollo en la string de bloques y facilitar la interoperabilidad con los sistemas heredados, Coda proporciona una serie de funciones, como el uso de bibliotecas nativas como libevent para proporcionar acceso a API como libbitcoin o libledger.

Código de string para operadores

Chaincode es un script específico de tejido escrito para realizar operaciones dentro del marco. El código de string de Hyperledger Fabric permite a un usuario sin conocimiento de la tecnología blockchain crear e implementar contratos y transacciones inteligentes. 

  • Estos scripts se pueden definir como piezas de software ejecutables que actúan sobre los datos de entrada generados por otro código.
  • El código de string crea y ejecuta transacciones utilizando el consenso entre Nodes en el sistema descentralizado; esto ayuda a hacer cumplir las reglas establecidas dentro de la lógica comercial de las entidades al tiempo que tiene en cuenta todas las contribuciones de otros participantes en la red, conocidos como actores. 
  • Esto incluye transacciones entre actores, como clientes o proveedores, pero también interacciones con funciones específicas de la estructura, como el pedido de transacciones o la reconciliación.
  • En el contexto del desarrollo de blockchain, los contratos inteligentes también se refieren al código de contrato que aplica el libro mayor de blockchain distribuido y se ejecuta automáticamente cuando se activa una condición especificada en el código de contrato. 
  • En este contexto, los contratos inteligentes son lógica programable ejecutable (programas) que se almacenan en la string de bloques, que solo pueden ejecutar las partes autorizadas. Para los operadores, pueden usarse como un medio para actualizar sus sistemas de contabilidad distribuida para proporcionar nuevas funcionalidades, como permitir a los usuarios emitir activos y realizar transacciones con ellos.
  • Chaincode proporciona una interfaz para que los contratos inteligentes se programen a través de Chaincode. Chaincode de Coda realiza las siguientes funciones:
  • Chaincode se inicia en una de dos formas en Coda: ya sea invocándolo a través de la CLI o programáticamente a través de llamadas SDK. Para que el operador del Node inicie el código de string, primero debe autorizar los permisos de lanzamiento proporcionando una lista de ID de Node para los que el código de string está autorizado para ejecutarse.
  • Los códigos de string se deben escribir principalmente con Go, pero también se pueden usar otros lenguajes como Python y NodeJS.

Conclusión 

En chaincode, hemos visto que los bloques se representan como transacciones y los pares se agrupan en grupos de pares que están interconectados a través de un par líder. Habrá algunos tipos diferentes de transacciones generadas en Hyperledger, y estos diferentes tipos pueden tener el mismo concepto de un bloque donde las transacciones del mismo tipo van todas en un bloque. Una transacción es un mensaje enviado por una fuente externa (por ejemplo, una llamada API u otro servicio de mensajería externo), que contiene ciertos valores. Si una transacción está siendo procesada por otro grupo de pares (grupo de pares para reglas comerciales) o Node central (Node central para mensajes enviados por otros pares o como parte de mensajes), entonces decimos que la transacción se está colocando en un bloque.

Publicación traducida automáticamente

Artículo escrito por tejaswipkle y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *