Hyperledger Besu: una guía exhaustiva

Hyperledger Besu, anteriormente conocido como Pantheon, es el último proyecto en sumarse a la tendencia de Hyperledger y es el primer proyecto presentado en Hyperledger que puede operar en una cadena de bloques pública. Besu es una representación del creciente interés de las empresas por crear casos de uso de redes públicas y autorizadas para sus aplicaciones. Hyperledger Besu se ha posicionado como una plataforma que permite el desarrollo y la implementación abiertos. Las decisiones de diseño y arquitectura de Hyperledger Besu se han orientado a la modularidad y a las interfaces limpias.
¿Qué es Hyperledger Besu?
Hyperledger Besu es un cliente Ethereum de código abierto basado en Java creado bajo la licencia Apache 2.0. Puede ejecutarse tanto en la red pública Ethereum como en redes privadas autorizadas y redes de prueba como Rinkeby, Gorli y Ropsten. Besu ayuda a desarrollar aplicaciones empresariales que requieren un procesamiento seguro y de alto nivel de transacciones en una red privada. Las funciones empresariales compatibles con Besu son la autorización y la privacidad.
Hyperledger Besu también es un cliente de Ethereum. Un cliente de Ethereum se refiere a un nodo que verifica una cadena de bloques y sus contratos inteligentes y todo lo relacionado con una cadena de bloques. En otras palabras, es un software que implementa el protocolo Ethereum. Entonces, ¿qué contiene un cliente de Ethereum?
- Almacenamiento para persistir datos relacionados con la ejecución de transacciones.
- API para desarrolladores de aplicaciones para interactuar con la cadena de bloques.
- Un entorno de ejecución utilizado para procesar transacciones en la cadena de bloques Ethereum.
- Redes peer-to-peer para comunicarse con otros nodos de Ethereum para sincronizar el estado.
¿Qué soporta Hyperledger Besu?
Besu admite funcionalidades de Ethereum , como contratos inteligentes y desarrollo, implementación y casos de uso operativos de DApp. Las herramientas que permiten estas actividades son Remix, Truffle y web3j. El cliente Ethereum implementa API JSON-RPC estándar. Esto simplifica la integración con las herramientas del ecosistema. Besu incluye una interfaz de línea de comandos y API basadas en HTTP y Web socket para ejecutar, monitorear y mantener nodos en una cadena de bloques Ethereum.
Besu no admite la gestión de claves debido a problemas de seguridad. En su lugar, para administrar claves privadas, puede utilizar cualquier billetera compatible con Ethereum o EthSigner. EthSigner proporciona acceso al almacén de claves y firma transacciones utilizando herramientas como Microsoft Azure y Hashicorp Vault. Besu admite permisos de cuenta y nodos basados en configuración local y contratos inteligentes. Las transacciones privadas también están disponibles en el cliente a través de métodos de conocimiento cero.
Entonces, ¿qué puedes hacer con Besu?
La API de Hyperledger Besu admite funcionalidades típicas de Ethereum como:
- Desarrollo de contratos inteligentes.
- Minería de éter.
- Desarrollo de aplicaciones descentralizadas (DApp).
Características de Hyperledger Besu
Besu implementa la especificación Enterprise Ethereum Alliance (EEA). Esta especificación se estableció para crear interfaces comunes entre los diversos proyectos de código abierto y cerrado de Ethereum. Esto garantizará que los usuarios no estén atados a un proveedor y también ayudará a crear interfaces comunes para los equipos que crean aplicaciones. Besu se asegura de que sus funciones empresariales estén alineadas con la especificación del cliente EEA.
Las características notables de Hyperledger Besu son:
- Máquina virtual Ethereum (EVM): es la máquina virtual completa de Turing que permite la implementación y ejecución de contratos inteligentes a través de transacciones dentro de una cadena de bloques Ethereum.
- Protocolos de consenso: Besu implementa varios algoritmos de consenso que intervienen en la validación de bloques, la validación de transacciones y la producción de bloques. Los algoritmos de consenso de Besu son Proof-of-Authority y Proof-of-Work.
- Almacenamiento: Hyperledger Besu utiliza una base de datos clave-valor RocksDB para persistir datos de la cadena localmente.
- Monitoreo: el rendimiento de los nodos y de la red se puede monitorear con Besu. El rendimiento de los nodos se monitorea a través de Prometheus o el método API JSON-RPC debug_metrics. El rendimiento de la red se monitorea con herramientas de Alethio como EthStats Network Monitor y Block Explorer.
- Privacidad: La privacidad en Besu se refiere a la capacidad de mantener seguras y privadas las transacciones entre las partes involucradas. El administrador de transacciones privadas de Besu implementa la privacidad y no permite que otras partes accedan al contenido de la transacción, a la parte que la envía y a la lista de partes participantes.
- Permisos: Besu es una red con permisos que permite que solo nodos y cuentas específicos participen habilitando los permisos de cuentas y/o nodos en la red.
Arquitectura de Hyperledger Besu
Analicemos ahora algunos de los elementos importantes de una arquitectura Hyperledger Besu.
1. Almacenamiento: en una configuración de almacenamiento, los datos se dividen en algunas subcategorías, como:
- Cadena de bloques: está compuesta por "encabezados de bloque" que forman la cadena de datos que se utiliza para verificar criptográficamente el estado de la cadena de bloques. Los cuerpos de bloque contienen la lista de transacciones ordenadas que se incluyen en cada bloque. Los recibos de transacción contienen metadatos relacionados con la ejecución de la transacción, y esto incluye registros de transacciones.
- Estado mundial: cada encabezado de bloque hace referencia a un estado mundial a través de un hash stateRoot. El estado mundial se refiere a una asignación de direcciones a cuentas. Las cuentas de propiedad externa mantienen un saldo de Ether. Las cuentas de contratos inteligentes también contienen código ejecutable y almacenamiento.
2. Redes P2P: Besu implementa los protocolos de red devp2p de Ethereum para la comunicación entre clientes y un subprotocolo para IBFT2:
- Descubrimiento: un protocolo basado en UDP para encontrar usuarios en la red.
- RLPx: protocolo basado en TCP que se utiliza para la comunicación entre pares a través de subprotocolos. Se trata del subprotocolo ETH (Ethereum Wire Protocol), que se utiliza para sincronizar el estado de la cadena de bloques en toda la red y propagar nuevas transacciones, y el subprotocolo IBF, que utiliza el protocolo de consenso IBFT2 para facilitar las decisiones de consenso.
3. API orientadas al usuario: Besu proporciona API JSON-RPC de Ethereum y EEA de red principal a través de protocolos HTTP y WebSocket y la API GraphQL.
- JSON-RPC:
- Servicio HTTP JSON-RPC
- Servicio WebSocket JSON-RPC
Protocolos de consenso de Hyperledger Besu
Hyperledger Besu utiliza muchos protocolos de consenso de prueba de autoridad (PoA). Estos se utilizan cuando los participantes se conocen entre sí y existe un alto nivel de confianza entre ellos, por ejemplo, en una red de consorcio con permisos. Los tipos de algoritmos de PoA implementados por Hyperledger Besu son:
- Clique: lo utiliza Rinkeby Testnet y se puede utilizar para redes privadas. En una red Clique, los bloques y las transacciones son validados por cuentas aprobadas. Estas cuentas se denominan firmantes. Los firmantes se turnarán para crear el siguiente bloque. Los firmantes existentes proponen y votan para agregar o eliminar firmantes. Clique es más tolerante a fallas que IBFT 2.0. Clique no tiene una finalidad inmediata. Las implementaciones que utilizan clique deben tener en cuenta las reorganizaciones de la cadena y las bifurcaciones que ocurren. Las propiedades que son específicas de clique son:
- Blockperiodseconds- Tiempo de bloque en segundos.
- epochLength- Número de bloques después de los cuales se deben restablecer los votos.
- extraData: Los firmantes iniciales se especifican después de los 32 bytes que están reservados para datos de vanidad.
- IBFT 2.0: se puede utilizar para redes privadas. Aquí, los bloques y las transacciones son validados por cuentas aprobadas llamadas validadores. Los validadores se turnarán para crear el siguiente bloque, y se requiere una supermayoría (superior al 66 %) de validadores para firmar el bloque antes de que se inserte en la cadena. Los validadores existentes propondrán y votarán para eliminar o agregar validadores. Se necesita una mayoría de votos (superior al 50 %) para agregar o eliminar un validador. IBFT 2.0 necesita cuatro validadores para ser tolerante a fallas bizantinas.
- Prueba de trabajo (Ethash): este protocolo de consenso se utiliza para realizar actividades de minería en la red principal de Ethereum. Una red privada proporciona una red configurable que se puede utilizar para realizar pruebas. Los bloques se pueden crear rápidamente configurando una dificultad baja y habilitando la minería. La red privada de Hyperledger Besu le ayuda a probar escenarios de múltiples bloques y múltiples usuarios antes de pasar a una de las redes de prueba públicas.
Las grandes mentes detrás de Hyperledger Besu
Hyperledger Besu se lanzó en el año 2018 como Pantheon y el equipo que lo hizo posible es PegaSys, el equipo de ingeniería de protocolos de ConsenSys. Es el principal colaborador y mantenedor del código base en el núcleo de Hyperledger Besu. Este cliente de Ethereum se creó con el objetivo de minimizar las barreras de entrada para las empresas y mantener y escalar la red principal. Ahora han desarrollado una comunidad de actividades utilizando y desarrollando el código base. El equipo de PegaSys está encantado de trabajar con la comunidad de Hyperledger y su objetivo es continuar con sus esfuerzos para fortalecer la plataforma Hyperledger Besu.
Para obtener noticias y actualizaciones instantáneas sobre las certificaciones de Hyperledger y, en general, sobre otras certificaciones de blockchain, consulte Blockchain Council .
Deja una respuesta