WEB3DEV Español

Cover image for ¿Cómo desplegar un nodo de Ethereum usando Hyperledger Besu?
Gabriella Alexandra Martinez Viloria
Gabriella Alexandra Martinez Viloria

Posted on

¿Cómo desplegar un nodo de Ethereum usando Hyperledger Besu?

Este artículo es una traducción de Ghan Vashishtha, hecha por Gabriella Martínez. Puedes encontrar el artículo original aquí
Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_es en Twitter.

Image description

Ethereum es un goliat que sigue creciendo entre todas las blockchains, y con su crecimiento surge la necesidad de clientes Ethereum listos para las empresas. Hyperledger Besu es uno de los clientes Ethereum populares listos para las empresas, capaz de implementar información privada y redes públicas permisivas.

Esta guía explicará cómo ejecutar un nodo Ethereum usando Hyperledger Besu, comenzando con su definición.

¿Qué es Hyperledger Besu?

Hyperledger Besu es un cliente Ethereum que es de código abierto. Sirve como un cliente de ejecución en un PoS público de redes Ethereum como Sepolia, Goerli y Ethereum Mainnet.

Besu soporta contratos inteligentes estándar y aplicaciones descentralizadas en desarrollo, operacionales y casos de uso de despliegue y no soporta administración de claves dentro del cliente. Con Besu, usa EthSigner para acceder a tu “clave” y firmar tus transacciones.

La Arquitectura de Hyperledger Besu

Hecha un vistazo al siguiente diagrama que muestra la arquitectura de alto nivel de Hyperledger Besu.

Image description

Prerrequisitos y Requisitos del Sistema

Para instalar y ejecutar Hyperledger Besu sin problemas, necesitas tener la siguiente configuración de sistema:

  • RAM: 8GB
  • Almacenamiento: 750GB (Sincronización rápida con el pruning activado) y 3TB (total sincronización)
  • Disco DuroÇ SSD. Usa NVMe SSDs para un mejor IOPS y rendimiento.

Haz click en la página web oficial de Hyperledger Besu para más información de los requisitos del sistema.

El despliegue necesita Java JDK 11+. Descarga la última versión de Java aquí .

Instalando Hyperledger Besu

Hay múltiples métodos para instalar Hyperledger Besu. Usando binary o Docker image para versiones estables es recomendado, pero usaremos la versión binaria para este paso.

Instala desde los paquetes binarios

Haz click en este link para descargar la última versión binaria. Luego de descargarla, descomprime los archivos descargados y cambialos al directorio besu-.

Para confirmar la instalación:

cd besu-22.10.3 # Here we downloaded the Besu release - 22.10.3 bin/besu --help
Enter fullscreen mode Exit fullscreen mode

Ejecuta Besu en la Red de Pruebas de Ethereum

Luego de la instalación, el primer paso es ejecutar Besu como un cliente a ejecutar con consenso en la red de prueba de Sepolia y Goerli y luego:

Genera el Secreto Compartido

Ejecuta este comando para generar el secreto

openssl rand -hex 32 | tr -d "\n" > jwtsecret.hex
Enter fullscreen mode Exit fullscreen mode

Especifica jwtsecret.hex mientras comienzas el cliente consenso y Besu. El cliente utiliza este secreto JWT para autenticarse uno a otro cuando rompes el Engine API

Inicia Besu

Para Goerli, especifica las opciones o ejecuta el comando de abajo

bin/besu \ 
--network=goerli \ 
--rpc-http-enabled=true \ 
--rpc-http-host=0.0.0.0 \ 
--rpc-http-cors-origins="*" \ 
--rpc-ws-enabled=true \ 
--rpc-ws-host=0.0.0.0 \ 
--host-allowlist="*" \ 
--engine-host-allowlist="*" \ 
--data-storage-format=BONSAI \ 
--sync-mode=X_SNAP \ 
--engine-rpc-enabled \ 
--engine-jwt-secret=<path to jwtsecret.hex>
Enter fullscreen mode Exit fullscreen mode

Especifica el paso –engine-jwt-secret con el archivo jwtsecret.hex generado.

En este caso, path es -

--engine-jwt-secret=jwtsecret.hex
Enter fullscreen mode Exit fullscreen mode

Para la Red Sepolia, usa el comando

--network=sepolia.
Enter fullscreen mode Exit fullscreen mode

Ahora, modifica los valores de las opciones y añade otra línea de opciones de comando cuando sea necesario.

Genera Claves validadoras y stake ETH

Haz una dirección de prueba de Ethereum si estás desplegando el cliente validador. Aquí está cómo hacerlo en MetaMask. Luego de crear la dirección, dale fondos con ETH de red de pruebas usando un faucet, necesitarás una muestra de 32 ETH y tarifas de gas.

Luego, mira la lista de las faucets de Goerli y Sepolia para fundar las carteras, generar las claves validadoras y hacer el stake en la red de pruebas de ETH para una o más validadoras usando el Goerli Staking Launchpad.

Nota: sáltate al siguiente paso si estás ejecutando en un nodo beacon.

Importante: Guarda la clave usada para generar cada par de claves en un archivo .txt. Deberías tener también un archivo .json por cada clave par validadora. Asegúrate que tu nodo Besu esté completamente sincronizado.

Inicia el cliente de consenso

Si estás usando Teku como tu cliente consenso, sigue este tutorial o si vas a usar un cliente consenso distinto, refiérase a su documentación y sáltate esta parte.

Nodo Beacon

Para ejecutar Teku como sólo nodo beacon (son las responsabilidades del validador), ejecuta el siguiente comando en un nuevo terminal de windows o especifica las opciones en el archivo de configuración de Teku

teku \ 
--network=goerli \ 
--ee-endpoint=http://localhost:8551 \ 
--ee-jwt-secret-file=<path to jwtsecret.hex> \ --metrics-enabled=true \ --rest-api-enabled=true
Enter fullscreen mode Exit fullscreen mode

La ruta jwtsecret.hex es la misma que hemos proveído cuando iniciamos Besu.

Para la red Sepolia, puedes ejecutar el comando

-network=sepolia
Enter fullscreen mode Exit fullscreen mode

Nodo Beacon y cliente validador

Luego, ejecuta Teku como un nodo beacon y validador, ejecuta el siguiente comando:

--network=goerli \ 
--ee-endpoint=http://localhost:8551 \ 
--ee-jwt-secret-file=<path to jwtsecret.hex> \ --metrics-enabled=true \ 
--rest-api-enabled=true \ --validators-proposer-default-fee-recipient=<ETH address> \ --validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
Enter fullscreen mode Exit fullscreen mode

De nuevo, la ruta jwtsecret.hex es la misma a la que hemos proveído cuando iniciamos Besu.

Usa la dirección de Ethereum creada usando Metamask y configúralo como default fee recipient usando la opción –validators-proposer-default-fee-recipient

Las rutas al archivo Keystore .json y el archivo de la clave .txt fueron creados en el paso 4 por cada validador usando la opción –validator-keys. Separa los archivos .json y .txt con dos puntos y separa las entradas para múltiples validadores con commas.

Estás listo

Luego de iniciar Besu y Teku, tu nodo comienza a sincronizarse y conectarse a los compañeros.

Habrán registros virtuales similares a estos, vistos en Besu

2022-12-19 18:56:09.295-07:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 0 
2022-12-19 18:56:14.298-07:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 0 
2022-12-19 18:56:14.848-07:00 | nioEventLoopGroup-3-8 | INFO | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 3 
2022-12-19 18:56:18.452-07:00 | nioEventLoopGroup-3-8 | INFO | SyncTargetManager | Found common ancestor with peer Peer 0xab3a286b181721c794... at block 55127 
2022-12-19 18:56:18.454-07:00 | nioEventLoopGroup-3-8 | INFO | PipelineChainDownloader | PipelineChain download complete
Enter fullscreen mode Exit fullscreen mode

Habrán registros virtuales similares a estos, vistos en Teku

2022-12-19 18:57:24.355 INFO - Syncing *** Target slot: 76092, Head 
slot: 2680, Remaining slots: 73412, Connected peers: 8 2022-12-19 18:57:36.363 INFO - Syncing *** Target slot: 76093, Head 
slot: 2879, Remaining slots: 73214, Connected peers: 10 2022-12-19 18:57:48.327 INFO - Syncing *** Target slot: 76094, Head 
slot: 3080, Remaining slots: 73014, Connected peers: 8 2022-12-19 18:58:00.339 INFO - Syncing *** Target slot: 76095, Head 
slot: 3317, Remaining slots: 72778, Connected peers: 6 2022-12-19 18:58:12.353 INFO - Syncing *** Target slot: 76096, Head 
slot: 3519, Remaining slots: 72577, Connected peers: 9
Enter fullscreen mode Exit fullscreen mode

Si eres un validador, puedes revisar el estatus de validación buscando en tu dirección Ethereum en el explorador de Cadena Goerli Beacon. Puede que algunas veces le tome múltiples días para que tu validador se active y empiece a proponer bloques.

Ejecuta Besu en el Mainnet

Ejecutar Besu en la Mainnet sigue los mismos pasos en el mismo orden que en la red de prueba.

Aquí solo necesitamos hacer algunos cambios en los archivos de configuración para la selección de la red. Usa los siguientes comandos para iniciar Besu.

besu \ 
--sync-mode=X_SNAP \ 
--data-storage-format=BONSAI \ 
--rpc-http-enabled=true \ 
--rpc-http-host="0.0.0.0" \ 
--rpc-ws-enabled=true \ 
--rpc-ws-host="0.0.0.0" \ 
--host-allowlist=<IP of Besu node>,127.0.0.1,localhost \ --engine-host-allowlist=<IP of Besu node>,127.0.0.1,localhost \ --engine-rpc-enabled \ 
--engine-jwt-secret=<path to jwtsecret.hex>
Enter fullscreen mode Exit fullscreen mode

Especifica la Dirección de tu IP de tu nodo Besu en las opciones –host-allowlist y –engine-host-allowlist.

Si configuras Besu como tu cliente validador, genera claves validadores y stake tu ETH por uno o más validadores usando el Staking Launchpad

Usa el siguiente comando para iniciar Teku sólo como un nodo beacon.

teku \ --ee-endpoint=http://localhost:8551 \ --ee-jwt-secret-file=<path to jwtsecret.hex> \ --metrics-enabled=true \ --rest-api-enabled=true
Enter fullscreen mode Exit fullscreen mode

Para Iniciar Teku como nodo beacon y validador

teku \ --ee-endpoint=http://localhost:8551 \ --ee-jwt-secret-file=<path to jwtsecret.hex> \ --metrics-enabled=true \ 
--rest-api-enabled=true \ --validators-proposer-default-fee-recipient=<ETH address> \ --validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
Enter fullscreen mode Exit fullscreen mode

Si eres un validador, puedes revisar el estado de tu validador buscando tu dirección de Ethereum en el explorador en Cadena Beacon. Puede que le tome múltiples días para que tu validador se active y empiece a proponer bloques.

Y ahí lo tienes. Estos son los pasos para ejecutar un Nodo Ethereum usando Hyperledger Besu exitosamente. Los pasos mostrados muestran el despliegue de ambos nodos: validador y beacon, así que sigue los pasos cuidadosamente y, puede que tengas que usar tu propia cartera o faucet de tu elección, si no te interesa Metamask.

Terminando

Es impresionante recalcar que Hyperledger Besu está aún en su infancia y es capaz de desplegar clientes Ethereum en ambas redes: públicas y permisivas. Dicho esto, usa Zeeve para desplegar tu Nodo Ethereum usando Hyperledger Besu.

Zeeve es una infraestructura de plataforma Blockchain lider, que no solo soporta Ethereum si no otros protocolos públicos como Polygon,Binance y Polkadot y protocolos permisivos como R3Corda y Hyperledger Fabric.

Reserva una consulta gratuita para desarrolladores y aprovecha al máximo los productos y servicios de Zeeve.

Discussion (0)