Blog, Técnico

Novedades en cliente Hyperledger Besu en AUNA

featured

AUNA está constantemente evolucionando su plataforma, tomando en consideración tanto tendencias del mercado como también el feedback de nuestros partners y del ecosistema. Es por esto que se implementaron una serie de modificaciones tecnológicas en relación a Hyperledger Besu, que queríamos que tu supieras y que describimos a continuación:

 

Diversas versiones de Solidity

En principio se había habilitado la instalación de smartcontracts en versiones más recientes de Solidity, comenzando con las versiones 7.x y 8.x, sin embargo, dados algunos casos de uso en que se presentaban codificaciones con versiones anteriores, es que implementamos la instalación en línea del compilador solc, de forma que el desarrollador elige la versión que estime conveniente y nuestro proceso busca e instala esta versión si es que ya no la tiene en su caché local.

 

Dependencia de smartcontracts de librerías externas

Así como cualquier trozo de código de un lenguaje cualquiera, un smartcontract puede requerir de funciones de librerías externas para resolver sus cálculos. Junto con declarar estas librerías en cada archivo de Solidity (en el caso de Hyperledger Besu), debemos informar al sistema para que estas librerías estén correctamente instaladas antes de ser requeridas, de lo contrario tendremos una serie de alertas que no son normalmente de nuestro agrado y potenciales errores.

Para el caso de nuestra plataforma y siguiendo las directivas de Solidity, el desarrollador sólo deberá incluir un archivo “package.json” con la información de las librerías que requiere dentro de la carpeta donde residen sus smartcontracts, la estructura del archivo se muestra en la Fig. 1.

 

{ «dependencies»: {   «@openzeppelin/contracts»: «^4.4.1» } }

 

Fig. 1 Ejemplo archivo «package.json»

 

Una vez que la plataforma AUNA detecte la presencia de este archivo, procederá inmediatamente a descargar e instalar las librerías aquí declaradas.

 

Argumentos en constructores de smartcontracts

El método constructor de un smartcontract puede aceptar argumentos en su llamada; de esta forma el desarrollador puede especificar valores a ser inicializados de acuerdo a las reglas de negocio del smartcontract; por ejemplo: en el caso de la definición de un token ERC20 (tal como se muestra en en la Fig. 2) sería interesante definir la cantidad inicial de tokens (mint) a ser manejados por el contrato. Los argumentos de un smartcontract se definen en un archivo denominado “args.json”, el cual tiene la estructura que se muestra más abajo, básicamente consta de un arreglo de objetos que definen un contrato con dos propiedades: el nombre y la lista de valores de argumentos, la cual es a su vez un arreglo de Strings.

 

{ «contracts»: [   {       «name»: «ERC20Token»,       «args»: [«10000000»]   } ] }

 

Fig. 2 Ejemplo archivo «args.json»

 

Acceso desde Wallets externas

Dada la dinámica de las Dapps actuales y atendiendo especialmente a la necesidad de poder integrarse con otras aplicaciones, ya sean wallets externas, APIs, etc.; es que se ha provisto de un acceso controlado al nodo definido en AUNA, de forma que el usuario por medio de una URL en particular puede conectarse al nodo y ejecutar transacciones directamente.

De esta forma el desarrollador puede conectarse al nodo desde aplicaciones tales como  Metamask, exploradores de bloques (si no desea utilizar el provisto por AUNA) u otra aplicación.

 

Configuración Avanzada

Para facilitar el trabajo de nuestros partners, tenemos la política de con algunos pocos clicks generar un proyecto que se pueda ejecutar en AUNA. El proyecto generado usando las opciones por defecto considera una configuración básica en donde todas las definiciones de la red blockchain vienen dadas por el sistema. De esta forma aceleramos el despliegue de una solución y beneficiamos a aquellos usuarios que se están iniciando en la tecnología.

En una red Hyperledger Besu las diferentes configuraciones de una red (por ejemplo: costo del gas, protocolo de consenso, cuentas, saldos iniciales, nodos boot, validadores, etc.) vienen definidas en un archivo que permite la generación del bloque “genesis”. En otras palabras, por defecto la plataforma provee un archivo genesis ya preparado para facilitar el trabajo de los usuarios menos expertos.

Sin embargo, para aquellos que tienen como pasión “descubrir la rueda” y escudriñar en cada detalle de las plataformas de modo de aplicar un exhaustivo “tuning” a sus desarrollos; hemos habilitado la Configuración Avanzada para redes Hyperledger Besu.

En esta modalidad el desarrollador puede incluir su propio archivo genesis (“genesis.json”) dentro del archivo de definición del proyecto (“project.yaml”) y así la red será creada de acuerdo a las especificaciones definidas en el archivo.

 

API’s en Python

Hemos habilitado el soporte de Python para la creación de las API’s (interna, externa e híbridas), de esta forma el desarrollador puede directamente adjuntar el código de sus desarrollos en Python y el pipeline de Auna automáticamente creará el contenedor asociado y habilitará todas sus configuraciones de modo que pueda ejecutar sin problemas en nuestra plataforma.

As su vez, en el caso de que el código de la API tenga dependencias de librerías externas, el desarrollador puede adjuntar en su proyecto el archivo “requirements.txt” para declararlas.

El sistema una vez detecta este archivo, procede a descargar e instalar cada una de las librerías especificadas y posteriormente procede a desplegar la librería dentro de la plataforma.

 

flask web3

 

Fig. 3 Ejemplo archivo “requirements.txt”

 

Múltiples Smartcontracts

A su vez la plataforma AUNA permite el despliegue de tantos smartcontracts como desee el desarrollador, sin existir un límite predefinido, siempre y cuando los recursos técnicos estén dentro de la infraestructura contratada por nuestro cliente.

Sin embargo, el equipo de AUNA, en su misión de acompañar a cada partner en su viaje al mundo de las Dapp, constantemente está asesorando en poder tener un sizing adecuado de los recursos necesarios para el éxito del proyecto.

 

En AUNA estamos diariamente explorando y trabajando en la implementación de diversas herramientas y actualizando nuestra plataforma, para así poder brindar a nuestros miembros y partners el acceso a tecnologías de punta que requieren.

Todo lo anterior con la mira en un sólo objetivo el cual es ser líderes en el ámbito del desarrollo de aplicaciones basadas en blockchain en la región.

 

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