Blog, Técnico

Implementación de cliente Hyperledger Besu en AUNA

michael fousert gvOu 93ShaU unsplash e1658338540921

Conoce más detalles de esta noticia en DF Labs: https://portal.nexnews.cl/showN?valor=kte84

En sus inicios el consorcio AUNA implementó la infraestructura necesaria para desarrollar aplicaciones descentralizadas basadas en blockchain bajo el framework dado por Hyperledger Fabric.

Como una progresión natural y sobre todo dado el auge que ha tenido la plataforma Ethereum desde sus inicios, en el año 2015, es que se hace necesario poder sumar esta tecnología como parte de la infraestructura de AUNA.

Una de las características más notables de Ethereum, aparte de poder ejecutar transacciones con su propia moneda (Ether), es la facilidad de alojar código ejecutable dentro de la red, los denominados «contratos inteligentes», otra de las facilidades que proporciona es la creación de activos digitales, los cuales pueden ser manejados como tokens e intercambiados por estos contratos inteligentes.

Para los efectos de integrar Ethereum en AUNA, se decidió utilizar el framework Hyperledger Besu, provisto bajo el proyecto Hyperledger de Linux Foundation.

Hyperledger Besu (Besu) es un cliente Ethereum open-source desarrollado bajo licencia Apache 2.0 y escrito completamente en Java. Besu puede correr en la red pública de Ethereum (Mainnet), redes privadas, redes de prueba (Rinkeby, Ropsten, Görli). Besu a su vez implementa mecanismos de consenso Proof of Work (Etash) y Proof of Authority (IBFT 2.0, Clique y QBFT).

A través de la programación de contratos inteligentes Besu permite la creación de aplicaciones que accedan a la Ethereum Mainnet o que accedan redes de prueba públicas. Adicionalmente, Besu permite la creación de redes privadas, esta última característica produce bastante interés dado la facilidad de crear soluciones para consorcios privados en las cuales se desee aprovechar el potencial de la tecnología blockchain.

En una primera aproximación al trabajo con Besu, se ha implementado la creación de redes privadas bajo el algoritmo de consenso IBFT 2.0 (Proof of Authority). Dicha implementación cuenta con uno o varios nodos boot y un conjunto de nodos validadores que comprobarán la validez de las transacciones, es recomendable que este número de validadores no debe ser menor a cuatro.

AUNA en su esfuerzo por facilitar el trabajo de sus afiliados, provee un pipeline automático para la creación de redes Besu y el despliegue de aplicaciones.

Una típica aplicación Besu en AUNA consta de una red compuesta por un cierto número de nodos (boot + validadores), un conjunto de contratos inteligentes que definen las reglas de negocio de la aplicación, una API para interactuar con los contratos inteligentes (pudiendo ser externa, interna o una combinación de estas) y una interfaz de usuario (cliente).

Para poder construir una aplicación, el usuario mediante un Wizard provisto por AUNA, define las variables que configuran su red y al final de este proceso se genera un archivo de configuración (en formato YAML), además el usuario carga en el sistema el o los archivos de contratos inteligentes en el lenguaje de su gusto, en una primera instancia Solidity; luego carga el código de la API, esta puede estar estructurada en una carpeta de desarrollo o puede referenciar a una imagen de Docker en algún repositorio accesible desde AUNA, esta API tendrá los métodos que puedan acceder a los contratos inteligentes que a su vez implementen las reglas de negocio de la aplicación.

Habiendo definido los elementos anteriores, en el momento en que el usuario sube una aplicación para despliegue, AUNA DevOps inicia un pipeline el cual desplegará en un entorno basado en Kubernetes, todos los recursos necesarios para la ejecución de la aplicación, considerando recursos como: Namespaces, Secrets, Configmaps, Pods, Deployments, Services entre otros, permitiendo la creación de los elementos que contienen los nodos de la red y habilitando a estos para recibir transacciones. Finalmente, los contratos inteligentes subidos por el desarrollador son compilados y publicados en la red para su utilización y el pipeline crea un Pod (con réplica) para la API, permitiendo que esta a su vez sea puesta en servicio.

Como se puede apreciar, el proceso de creación y despliegue de una aplicación con Ethereum de esta forma queda resumida a un conjunto acotado de pasos, permitiendo al desarrollador concentrarse en detalles de desarrollo de la aplicación, tales como reglas de negocio y la construcción de interfaces de usuarios que prefiera.

Visite nuestra web (https://aunablockchain.com/) para interiorizarse del potencial que AUNA puede dar a su empresa en este universo de las aplicaciones descentralizadas.

Escrito por: Hugo A. Bustamante