Entendiendo Hyperledger Besu, la tecnología en auge.

El proyecto antes conocido como Pantheon que ahora es Hyperledger Besu, permite la construcción de Blockchain públicas mediante un cliente de Ethereum y blockchain permisionadas. El desarrollo principal de Besu ha sido dirigido por Pegasys, un equipo de ingeniería vinculado a Consensys. Airtrace es consciente de que la esencia de la tecnología Blockchain es la transparencia pero también la privacidad en ciertos aspectos, es por ello que se ha elegido Besu para la construcción de la infraestructura.

Explicando Besu

Hyperldeger Besu se trata de un cliente Ethereum de código abierto y escrito en java. Su principal utilidad es permitir el uso de redes públicas como Ethereum y crear redes privadas para empresas basadas en la tecnología Blockchain. Besu es compatible con la red mainnet de Ethereum y con las redes de prueba como Ropsten. Por otro lado, incluye la EVM (Ethereum Virtual Machine), permitiendo así la ejecución y despliegue de Smart Contracts y Dapps tanto en redes públicas como en privadas o consorciadas. Además, es compatible con herramientas de desarrollo de ethereum como Truffle, Remix (Solidity) o web3j. Besu sigue las especificaciones técnicas de la EEA (Ethereum Enterprise Alliance), una organización que tiene el objetivo de crear estándares abiertos dentro del ecosistema Ethereum para acelerar la adopción de esta tecnología. Hyperldeger Besu puede mantener las transacciones seguras y privadas en función de las necesidades del negocio y además permite la configuración de diferentes permisos de acceso teniendo así permisos locales a nivel de nodo y permisos en cadena a nivel de red. Además, se pueden gestionar tanto los nodos como la red mediante herramientas de terceros y cuenta con un explorador de bloques que da información en tiempo real de lo que ocurre (Grafana & Prometheus). Desplegar un nodo en la red pública de ethereum puede dar más confianza y transparencia adicional a los casos de uso. Sin embargo no se puede conectar a una red pública y una privada al mismo tiempo.

Grafana & Prometheus

El uso del Software “Grafana” para la visualización de datos y Prometheus para la recopilación y procesamiento de los mismos, son dos tecnologías que Hyperledger Besu nos pone a nuestra disposición. Por un lado, Grafana es una herramienta de software de código abierto que permite visualizar datos de series temporales previamente recolectados. Dichos datos se puede visualizar en un gráfico entendible totalmente entendible y por otro lado la Prometheus es un software de monitoriazación y alertas que almacena todos los datos y métricas en la base de datos como series temporales para después ser utilizados estos datos por Grafana y mostrarlos en gráficas. El objetivo principal es presentar los datos de monitoreo de una forma más entendible y agradabe.

Imagen Hyperledger BESU

La utilidad de un cliente de ethereum

Un cliente de Ethereum es cualquier nodo capaz de analizar y verificar la cadena de bloques, los Smart Contracts y todo lo relacionado con la cadena. Mediante un cliente se puede permitir a los desarrolladores interactuar a través de APIs con la red y otros nodos en la cadena. Además, se pueden procesar transacciones, almacenar datos, habilitar comunicaciones P2P entre nodos, hacer uso de herramientas de terceros como Truffle o Remix (Solidity) para Smart Contracts. Los lenguajes de programación mayormente utilizados son Go, Rust, Java y C#.

Nodos en Besu

Hyperledger Besu permite trabajar con dos tipos de Nodos. En primer lugar están los Full Nodes. Este tipo de nodos permite enviar y firmar transacciones, verificar los saldos del momento, acceder al estado actual de la red y comprobar los datos actuales de una DApp. Si embargo no pueden servir a la red con todas las solicitudes de datos, es decir, no podría acceder al saldo de una cuenta en un bloque antiguo. En cambio los Archive Nodes permiten realizar las mismas acciones que los full nodes, pero además almacenan los estados intermedios de cada cuenta y contrato desde el bloque génesis, pudiendo así acceder a datos “históricos”. Cada nodo utiliza par de clave privada / pública y una dirección de nodo que es usada como identificador del nodo. Privacidad por nodos Tessera Una característica importante de Besu es la forma en la que puede aportar privacidad a la hora de gestionar transacciones privadas. Las transacciones entre participantes que son privadas no pueden ser vistas por otros participantes. Por otro lado, el contenido o la lista de participantes tampoco son accesibles para el resto de participantes, aportando así un alto grado de privacidad mediante los nodos Tessera.

Cada nodo debe tener un nodo Tessera asociado para que esta privacidad funcione. De esta forma, las transacciones privadas entre participantes se generán en los nodos Besu y posteriormente se pasan dichas transacciones a los nodos Tessera asociados para gestionarlas. Finalmente, nodos Tessera cifrarán y distribuirán las transacciones privadas entre el resto de nodos Tessera que estén involucrados en la trasacción. Tanto la transacción privada distribuida por los nodos Tessera como la transacción en la cadena de bloques pública tienen un <> asociado.

Imagen BESU Tessera

Grupos de privacidad

A pesar de que cada participante de la red de Besu deba tener dos tipos de nodos asociados, la red se puede configurar también para que más de un participante pueda usar el mismo nodo Besu y Tessera asociado. Es decir se pueden manejar grupos de privacidad mediante el Enterprise Ethereum Alliance privacy (EEA) para indicar el/los destinatarios y Besu-Extended privacy para indicar el ID del grupo de privacidad que contiene el/los destinatarios. Los nodos Tessera pueden gestionar por ende transacciones privada mediante el identificador de grupo que contiene un conjunto de nodos. Cada nodo Tessera contiene el estado público para la cadena de bloques y el estado privado (que no se comparte con el estado global) para cada grupo de privacidad.

Protocolos de consenso existentes en Besu

A la hora de desplegar el cliente Besu en un nodo se debe indicar el tipo de consenso con el que un cliente trabajará. Algunos de los protocolos son:

Potocolo:Definición:
Ethash (Proof Of Work): Se trata del protocolo que usa la red de Ethereum en la mainnet (cadena principal).
Clique (Proof of Authority): Es usado para redes privadas y para la red de pruebas Rinkeby y Goerli de Ethereum. Las transacciones y los bloques son validadas por turnos por lo que se conocen como “Signers” que son cuentas previamente aprobadas. Para añadir nuevos firmantes se debe votar.
IBFT 2.0 (Proof of Authority): Este sistema puede ser usado en redes privadas también. Las cuentas (conocidas como validadores) se van turnando para validar transacciones y bloques. Para que un bloque sea añadido en la cadena al menos el 66% de validadores deberá firmar dicho bloque. Por otro lado, para añadir un validador nuevo se requiere una aprobación de más del 50%.
Quorum IBFT 1.0 (Proof of Authority): Se usa sobre todo en redes Quorum y no deja permiso a los nodos Besu para ser validadores pero si que pueden enviar y recibir transacciones. Aunque no puede ni validar transacciones ni bloques.

Conclusión

Mediante H.Besu podemos crear aplicaciones escalables y de alto rendimiento, lo cual es un punto muy importante a la hora de crear un proyecto con grandes expectativas como es Airtrace. Besu aporta oportunidades a las empresas para aprovechar los beneficios de los casos de uso de las redes públicas y además añade un extra de privacidad, por lo que equilibra más la balanza en el trilema de escalabilidad, seguridad y descentralización. Por otro lado, Hyperledger Besu está ganando mucho impulso últimamente y está siendo adoptado por diferentes entidades que ven su potencial uso. Airtrace ve un gran potencial en el uso de Besu para la construcción de la Blockchain y se cree como algunos dicen que con la utilización de una blockchain pública estamos haciendo uso de “esencia” de una Blockchain: la descentralización. Desde Airtrace se pretende crear una vía fácil y sencilla para que se adapte la tecnología Blockchain en sus procesos mediante llamadas API (y más herramientas que se verán más adelante) que le permitan acceder a la red basada en Hyperledger Besu de forma transparente, segura y sin grandes complicaciones.

Deja un comentario

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