A Ethereum é um Golias em constante crescimento entre todas as blockchains e, com esse crescimento, surge a necessidade de ter clientes Ethereum prontos para empresas. Hyperledger Besu é um desses clientes Ethereum populares, prontos para empresa, capaz de implementar redes permissivas privadas e públicas.
Este guia explicará como executar um nó Ethereum usando o Hyperledger Besu, começando com sua definição.
O que é Hyperledger Besu?
Hyperledger Besu é um cliente Ethereum de código aberto. Ele serve como um cliente de execução em redes públicas POS (proof of staking, ou prova de participação) da Ethereum como Sepolia, Goerli e Ethereum Mainnet.
O Besu suporta contratos inteligentes padrão e casos de uso de desenvolvimento de aplicativos, operacionais e de implantação descentralizados e não suporta o gerenciamento de chaves dentro do cliente. Com o Besu, use o EthSigner para acessar sua “chave” e assinar suas transações.
A Arquitetura Hyperledger Besu
Dê uma olhada no diagrama a seguir que descreve a arquitetura de alto nível do Hyperledger Besu.
Requisitos e pré-requisitos do Sistema
Para instalar e executar o Hyperledger Besu sem problemas, você precisa ter a seguinte configuração de sistemas.
- RAM: 8 GB
- Armazenamento: 750 GB (sincronização rápida com remoção habilitada) e 3 TB (sincronização total)
- Tipo de disco: SSD. Use SSDs NVMe para obter melhores IOPS e taxa de transferência.
Clique neste link do site oficial do Hyperledger Besu para obter mais informações sobre os requisitos do sistema.
A implantação requer que o Java JDK 11+ esteja instalado. Faça o download da versão mais recente do Java aqui.
Instalando o Hyperledger Besu
Existem vários métodos para instalar o Hyperledger Besu. É recomendado usar o binário ou imagem do Docker para versões estáveis, mas vamos usar a versão binária para esta etapa.
Instale a partir de binários empacotados.
Clique neste link para baixar a versão binária mais recente. Após o download, descompacte os arquivos baixados e transforme-os no diretório besu-<release>.
Para confirmar a instalação:
cd besu-22.10.3 # Aqui baixamos a versão Besu - 22.10.3
bin/besut--help
Execute o Besu na rede de teste da Ethereum Testnet
Após a instalação, a primeira etapa é executar o Besu como um cliente de execução com consenso na rede de teste Sepolia e Goerli e depois para;
Gere o segredo compartilhado.
Execute este comando para gerar o segredo.
openssl rand-hexadecimal32 | tr-d"\n" > jwtsecret.hexadecimal
Especificamos jwtsecret.hex
ao iniciar o cliente de consenso e o Besu. Os clientes utilizam esse segredo JWT para autenticar um ao outro ao usar a API do mecanismo.
Iniciar Besu
Para a Goerli, especifique as opções ou execute o comando abaixo
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>
Especificamos o caminho –engine-jwt-secret
para o arquivojwtsecret.hex
gerado. \
\
Neste caso, o caminho é -
--engine-jwt-secret=jwtsecret.hex
Para a rede Sepolia, use o comando
--network=sepolia.
Agora, modifique os valores das opções e adicione outras opções de linha de comando conforme necessário.
Gere chaves validadoras e faça stake de ETH
Crie um endereço Ethereum para teste se você estiver implantando um cliente validador. Veja como fazer isso em MetaMask. Ao criar o endereço, deposite nele ETH da rede de testes usando uma torneira, você precisará de uma amostra de 32 ETH e taxas de gás.
Em seguida, veja a lista de torneiras goerli e Sepolia para o financiamento de carteiras, gere chaves validadoras e faça o stake de ETH da sua rede de testes para um ou mais validadores usando a Goerli Staking Launchpad.
Observação: Pule para a próxima etapa se estiver executando um nó beacon.
Importante: Salve a senha usada para gerar cada par de chaves em um arquivo .txt. Você também deve ter um arquivo .json para cada par de chaves do validador. Garanta que o seu Nó Besu esteja completamente sincronizado.
Inicie o cliente de consenso.
Se você estiver usando o Teku como seu cliente de consenso, siga este tutorial ou se for usar um cliente de consenso diferente, consulte a documentação deles e pule esta parte.
Nó Beacon
Para executar o Teku apenas como um nó Beacon (sem funções de validador), execute o seguinte comando em uma nova janela de terminal ou especifique as opções no arquivo de configuração do Teku.
teku \
--network=goerli \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true
O caminho para jwtsecret.hex
é o mesmo que fornecemos ao iniciar o Besu.
Para a rede Sepolia, você pode executar o comando
--network=sepolia
Nó Beacon e cliente validador.
Em seguida, para executar o Teku como um nó Beacon e validador, execute o seguinte 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>,...]
Mais uma vez, o caminho para jwtsecret.hex
é o mesmo fornecido ao iniciar o Besu.
Use o endereço Ethereum criado com a Metamask e defina-o como o destinatário da taxa padrão usando a opção-validators-proposer-default-fee-recipient
.
Os caminhos para o arquivo Keystore.json
e arquivo de senha .txt
foram criados na etapa 4 para cada validador usando a opção –validator-keys
. Separe os arquivos .json
e .txt
com dois pontos e entradas separadas para vários validadores com vírgulas.
Está tudo pronto.
Depois de iniciar Besu e Teku, seu nó começa a sincronizar e se conectar aos pares.
Registros semelhantes a este serão vistos em 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
Logs semelhantes a este serão vistos em 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
Se você é um validador, pode verificar seu status de validador pesquisando seu endereço Ethereum no explorador da Goerli Beacon Chain. Às vezes, pode levar vários dias para que seu validador seja ativado e comece a propor blocos.
Execute Besu na Rede Principal
A execução do Besu na Rede Principal (Mainnet) segue as mesmas etapas na mesma ordem da rede de testes (Testnet).
Aqui só precisamos fazer algumas alterações no arquivo de configuração para seleção de rede.
Use o seguinte comando para iniciar o 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>
Especifique o endereço de IP do seu nó Besu nas opções –host-allowlist
e-engine-host-allowlist
.
Se você definir o Besu como um cliente validador, gere chaves validadoras e faça o stake do seu ETH para um ou mais validadores usando o Staking Launchpad.
Use o seguinte comando para iniciar o Teku apenas como nó Beacon
teku \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true
Para iniciar o Teku como um nó sinalizador e 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>,...]
Se você é um validador, pode verificar seu status de validador pesquisando seu endereço Ethereum no Explorador da Beacon chain. Pode levar vários dias para que seu validador seja ativado e comece a propor blocos.
Aí está. Estas são as etapas para executar um nó Ethereum usando Hyperledger Besu com sucesso. As etapas mostram a implantação de nós de validador e beacon, portanto, siga as etapas com cuidado e você pode usar sua própria carteira ou torneira de sua escolha se não estiver interessado na Metamask.
Concluindo
É notável perceber que o Hyperledger Besu ainda está em sua infância e é capaz de implantar clientes Ethereum em redes públicas e permissivas. Dito isso, use Zeeve para implantar o seu nó Ethereum usando o Hyperledger Besu.
Zeeve é uma Plataforma de infraestrutura Blockchain líder, que não só suporta Ethereum mas outros protocolos públicos como Polygon, Binance, Polkadot e protocolos permissivos como R3Corda e também Hyperledger Fabric.
Agende hoje mesmo uma consulta de desenvolvedor gratuita e aproveite ao máximo os produtos e serviços da Zeeve.
Este artigo foi escrito por Ghan Vashishtha e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.
Top comments (0)