Hyperledger Besu es un cliente Ethereum de código abierto desarrollado bajo la licencia Apache 2.0 y escrito en Java. Se ejecuta en la red pública Ethereum, redes privadas y redes de prueba como Rinkeby, Ropsten y Görli, así como implementar redes blockchain privadas y permisionadas. Besu implementa los mecanismos de consenso de Prueba de trabajo (Ethash) y Prueba de autoridad (IBFT 2.0 y Clique).
Puede utilizar Besu para desarrollar aplicaciones empresariales que requieran un procesamiento de transacciones seguro y de alto rendimiento en una red privada.
Besu admite funciones empresariales que incluyen privacidad y permisos
Principales características
- Implementa la especificación EEA
- Trabaja con la EVM (Ethereum Virtual Machine)
- Trabaja con diferentes protocolos de consenso, PoW, PoA, Ethash, Clique, IBFT 2.0, Quorum IBFT 1.0 network.
- Permite participar del protocolo de consenso PoW Ethash de Ethereum minando ETH.
- Permite trabajar con smart contracts.
- Permite desarrollar DApps (aplicaciones descentralizadas).
- Compatible con herramientas y entornos de desarrollo como Remix, Truffle, y web3j.
- Incluye una API JSON-RPC operable a través de HTTP o WebSockets para gestión de nodos de una red Ethereum.
- Incluye una CLI (Command Line Interface) para trabajar con los nodos de la red.
- Implementa privacidad, gestionando transacciones privadas entre dos o más partes implicadas.
- Trabaja con permisionado, controlando que sólo ciertos nodos y cuentas específicas puedan operar en la red.
- Monitoreo del rendimiento de los nodos mediante herramientas como Prometheus, y de la red, mediante herramientas como Alethio.
- Implementa protocolos de red de Ethereum devp2p para la comunicación entre los diferentes clientes.
Tipos de nodos
Hyperledger Besu permite trabajar con dos tipos de nodos, full nodes y archive nodes
- Los full nodes (nodos completos) permiten enviar y firmar transacciones, verificar los saldos actuales y acceder al estado actual de la red.
- Los archive nodes (nodos de archive) permiten realizar las mismas acciones que los nodos completos, pero ademas de almacenar el estado actual de la red, almacenan los estados intermedios de cada cuenta desde el bloque genesis.
Cada nodo, independientemente del tipo de nodo, tiene un par de claves privadas / públicas y una dirección de nodo. Besu utiliza el par de claves privada / pública para firmar y verificar transacciones, y la dirección del nodo como un identificador para el nodo.
Protocolos de consenso
Besu permite trabajar con diferentes protocolos de consenso. Cuando se despliega el cliente Besu en un nodo, se debe indicar el protocolo de consenso con el que el cliente va a trabajar, a través de la propiedad «config» del fichero «genesis»
- Ethash
- Clique
- IFFT 2.0
- Quorum IBFT
En el siguiente enlace esta la referencia de cada uno https://besu.hyperledger.org/en/stable/Concepts/Consensus-Protocols/Overview-Consensus/
Network
La configuración de red predeterminada es mainnet
Otros valores
Network | Chain | Ambiente | Sincronización | Descripción |
mainnet | ETH | Produccion | FAST | Red principal |
ropsten | ETH | Test | FAST | Red PoW similar a la red principal actual de Ethereum |
rinkeby | ETH | Test | FAST | Red PoA usando Clique |
goerli | ETH | Test | FAST | Red PoA usando Clique |
dev | ETH | Desarrollo | FULL | Red PoW con dificultad, baja para permitir la minería de CPU local |
classic | ETC | Test | FAST | Red principal de Ethereum Classic |
mordor | ETC | Test | FAST | Red PoW |
kotti | ETC | Test | FAST | Red PoA usando Clique |