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.
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.
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
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
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>
Especifica el paso –engine-jwt-secret
con el archivo jwtsecret.hex
generado.
En este caso, path es -
--engine-jwt-secret=jwtsecret.hex
Para la Red Sepolia, usa el comando
--network=sepolia.
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
La ruta jwtsecret.hex
es la misma que hemos proveído cuando iniciamos Besu.
Para la red Sepolia, puedes ejecutar el comando
-network=sepolia
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>,...]
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
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
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>
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
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>,...]
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)