Hyperledger Besu – The Open Source Hyperledger Public Blockchain

Você está procurando aprender sobre o Hyperledger Besu? Se você fizer isso, você veio ao lugar certo.

O mundo do blockchain está florescendo com projetos emocionantes. Trata-se de trazer a melhor solução para empresas que desejam fazer uso do blockchain.

Hyperledger é um dos maiores projetos DLT que existem. É uma colaboração de código aberto para trazer o melhor esforço para o avanço da tecnologia de blockchain. Com esforço global, a Linux Foundation deseja construir uma estrutura que as empresas possam seguir em todo o mundo. Líderes de diversas verticais estão participando do projeto, incluindo bancos, cadeias de suprimentos, manufatura, finanças e tecnologia.

O Hyperledger consiste em vários projetos, incluindo o Hyperledger Fabric mais popular.

Conheça o Hyperledger Besu, um novo projeto de código aberto que foi adicionado recentemente à lista de projetos do Hyperledger.

O que é Hyperledger Besu?

Hyperledger Besu é o primeiro projeto de blockchain público a se juntar oficialmente ao Hyperledger. Antes de assumir, é conhecido como ConsenSys ’Pantheon. O novo membro foi proposto pela primeira vez para adição ao membro do consórcio em 8 de agosto.

Isso é um grande passo, considerando que temos grandes projetos dentro do consórcio, incluindo Hyperledger Fabric e Hyperledger Sawtooth, apoiados pela IBM e Intel, respectivamente.

Em 29 de agosto de 2019, a Hyperledger Besu foi anunciada para fazer parte do consórcio. Foi uma grande adição, considerando que é o primeiro blockchain público a se juntar às fileiras do Hyperledger, onde apenas blockchains permitidos fazem parte do.

Então, o que é Hyperledger Besu?

É um cliente Ethereum de código aberto desenvolvido com uma licença Apache 2.0. Também é escrito em Java e faz uso da rede pública Ethereum. Outras tecnologias-chave usadas para tornar o Besu funcional incluem Gorli, Rinkeby e Ropsten.

Quando se trata de método de consenso, utiliza Prova de Autoridade (Clique e IBFT 2.0) e Prova de Trabalho (Ethash).

Em suma, é uma ótima solução que permite que as empresas criem aplicativos escalonáveis ​​e de alto desempenho em uma rede privada. Além disso, também vem com o suporte de permissionamento e privacidade.

O que é um cliente Ethereum?

Se você prestou atenção, você já sabe que mencionamos Besu como um cliente Ethereum. Então, o que é um cliente Ethereum? Vamos explorar.

O cliente Ethereum é um software usado para implementar o protocolo Ethereum. Em palavras simples, pode ser usado para fazer o seguinte:

  • Crie um ambiente de execução em blockchain Ethereum para transações de processamento
  • Armazenamento de dados persistente, incluindo armazenamento de execução de transações
  • Habilite a comunicação de rede ponto a ponto (P2P) entre os nós
  • Oferece APIs para desenvolvimento seguro e interação de blockchain.

O que você pode fazer com o Hyperledger Besu? Casos de uso do Hyperledger Besu

Para ter uma ideia melhor de qual blockchain Hyperledger Besu, vamos aprender o que pode ser feito usando a rede Hyperledger Besu.

A primeira coisa que você notará sobre o Besu é sua interface de linha de comando. Ele também oferece a API JSON-RPC. Ambos podem ser usados ​​para monitorar, depurar, manter e executar nós na rede Ethereum.

Em suma, pode ser usado para coisas muito semelhantes ao que uma rede Ethereum é capaz de:

  • Desenvolvimento de aplicativo descentralizado (dApp)
  • Desenvolvimento de contrato inteligente
  • Mineração de éter

Quando se trata de suporte técnico, ele oferece ferramentas comuns para dApp e desenvolvimento de contrato inteligente. Suporta ferramentas como Remix, Truffle e web3j. No entanto, você pode não encontrar suporte de gerenciamento de chaves no Besu. Para isso, você precisa usar o EthSigner que funcione perfeitamente com ele, fornecendo a ferramenta para o gerenciamento adequado de chaves. A rede Hyperledger Besu é ideal para necessidades corporativas, o que significa que há muitos casos de uso Hyperledger Besu.

Características principais do Besu: Como o Hyperledger Besu funciona

Agora que nosso entendimento da rede Hyperledger Besu ficou mais forte, agora é hora de discutir seus recursos. Ao passar pelos recursos, você também poderá entender o que torna Besu um membro importante do consórcio Hyperledger.

Especificação EEA (Enterprise Ethereum Alliance)

→ Implementa a especificação EEA (Enterprise Ethereum Alliance). A especificação garante que ele pode se conectar com outros projetos Ethereum que podem ser fechados e de código aberto. A especificação é muito importante, pois garante que os projetos não precisem se preocupar com problemas de bloqueio de fornecedor. Além disso, você também obtém a interface padrão para a construção perfeita de aplicativos. Besu funciona muito bem com a EEA e tem sucesso no fornecimento de recursos empresariais.

EVM (Ethereum Virtual Machine)

O EVM está no núcleo do blockchain do Hyperledger Besu. É Turing completo. Ajuda na execução inteligente do contrato por meio das transações blockchain da Ethereum.

Algoritmos de consenso

O Hyperledger Besu oferece boas opções quando se trata de algoritmo de consenso. Por padrão, você obtém suporte para algoritmos de consenso de Prova de Trabalho e Prova de Autoridade. Os algoritmos são usados ​​para fazer transações na rede Ethereum.

Prova de Trabalho → Com Prova de Trabalho, os mineiros podem fazer a atividade de mineração na rede principal da Ethereum. Para o efeito, Ethash é usado.

Prova de autoridade → Para prova de autoridade, você obtém vários protocolos PoA. Caso você não saiba, o PoA só funciona se houver uma relação de confiança já estabelecida entre os nós participantes da rede. É por isso que os algoritmos PoA são ideais para redes permitidas, especialmente aquelas que são implementadas por empresas.

  • Pronto para usar, você pode usar o IBFT 2.0. As contas aprovadas cuidam dos bloqueios e da validação da transação. As contas aprovadas são conhecidas como validadores. O grupo de validadores atua então como uma entidade de poder, onde podem votar para adicionar / remover validadores. Uma limitação é que o IBFT 2.0 não permite garfos e sempre haverá uma única corrente principal.
  • Clique é um algoritmo de proteção que garante tolerância a falhas. Ele pode tolerar até metade dos validadores com falha. Para IBFT 2.0, é necessário executar pelo menos 2/3 dos validadores para continuar o processo de criação do bloco.

Armazenar

A rede Hyperledger Besu é flexível quando se trata de fornecer suporte de armazenamento. Assim como outra solução de blockchain, ele também utiliza a abordagem de valor-chave. Pronto para usar, ele usa o banco de dados de valores-chave RocksDB. Ajuda a fornecer persistência de dados. Os dados armazenados, no entanto, podem ser divididos em duas subcategorias.

Blockchain

→ Os cabeçalhos de bloco são usados ​​para formar a cadeia. A informação nos cabeçalhos do bloco é usada para verificar o estado do blockchain criptograficamente.

→ Os corpos dos blocos, por outro lado, contêm a lista de transações da ordem para cada bloco

→ Os metadados de execução da transação são armazenados no recibo da transação.

Estado mundial

→ O hash stateRoot é usado por cada cabeçalho de bloco para referenciar o estado mundial.

→ É o mapeamento de contas para endereçar

→ O saldo do ether é armazenado em contas de propriedade externa

→ Contratos inteligentes contêm o código e armazenamento

Rede P2P

Quando se trata de rede P2P, Besu implementa o protocolo de rede devp2p Ethereum. O protocolo garante a comunicação entre clientes. Ele também atua como um subprotocolo IBFT2 adicional. A descoberta é feita usando um protocolo baseado em UDP, semelhante ao que uma rede de internet faz. Para comunicação, utiliza o RLPx – um protocolo baseado em TCP. O RLPx, por outro lado, usa vários subprotocolos, incluindo o ETH Wire Protocol (para sincronização do estado da transação) e o subprotocolo IBF (para tomar decisões de consenso)

APIs voltadas para o usuário

Besu vem com APIs excelentes. As APIs que ele fornece sobre o protocolo HTTP e WebSocket incluem APIs JSON-RPC EEA e APIs Ethereum de mainnet. Ele também suporta API GraphQL.

Monitoramento

O blockchain Hyperledger Besu oferece suporte a recursos de monitoramento – incluindo monitor de desempenho de rede e nó. O Prometheus é usado para monitorar o desempenho do nó. Além disso, o método JSON-RPC API pode ser usado para debug_metrics.

Quando se trata de desempenho de rede, as ferramentas Alethi, incluindo EthStats Network Monitor ou Block Explorer, são usadas.

Privacidade

Para privacidade, Besu oferece um gerenciador de transações privadas. Isso garante que as partes envolvidas em uma transação não precisem se preocupar com roubo de identidade ou vazamento de informações.

Permissão

Por último, oferece gerenciamento de permissão adequado que garante que apenas os nós que têm permissão para participar.

Arquitetura do Hyperledger Besu

A arquitetura do Hyperledger Besu é simples e eficaz. Discutimos todos os componentes principais na seção de recursos.

Arquitetura do Hyperledger Besu

Os três principais componentes do Besu incluem o seguinte.

  • Armazenar
  • Ethereum Core
  • Networking

Vamos discutir o núcleo Ethereum primeiro. O núcleo consiste na Máquina Virtual Ethereum (EVM). É responsável por qualquer execução de qualquer transação. No topo do EVM, existe o Processador Tx que ajuda o EVM a funcionar com eficiência e eficácia.

Os métodos de consenso também fazem parte do núcleo do Ethereum. Aqui temos métodos de consenso incluindo PoW, Clique e IBFT2. Os outros dois componentes principais do núcleo Ethereum incluem

  • Pool de transações → O pool de transações armazena informações relacionadas à transação
  • Sincronizador → ajuda a sincronizar todos os nós e a rede.

Por estranho, temos blockchain e estado mundial. Estado mundial consiste em estado da conta, armazenamento de conta e armazenamento de código.

Por último, existe uma rede que é operada usando o protocolo devp2p da Ethereum. Os quatro componentes principais incluem

  • Descoberta
  • RLPx
  • Sub-protocolo ETH
  • Subprotocolo IBF

Requisito do sistema para Besu

O blockchain Hyperledger Besu é muito flexível quando se trata de requisitos de sistema. Como as redes podem ser dinâmicas por natureza, incluindo o tamanho do estado mundial, o número de transações, o limite de gás do bloco e a complexidade das consultas, os requisitos do sistema podem variar muito.

Mas, na maior parte, você precisa do seguinte.

  • 4 GB de RAM. Se você está decidindo executar o Ethereum Mainnet, você precisa de 8 GB de RAM
  • Em termos de espaço em disco, você precisa de pelo menos 3 TB para sincronização total ao trabalhar com o mainnet Ethereum

Se ainda estiver confuso, você precisará usar o Prometheus para monitorar o nó para saber os requisitos exatos de disco e CPU. Além disso, o painel do Grafana funciona com Besu, que você pode usar para monitorar facilmente.

Roteiro do Hyperledger Besu

O fato de ter sido open source desde outubro de 2018, agora está aberto à contribuição de qualquer pessoa. O roteiro do Hyperledger Besu parece interessante. Abaixo estão os principais marcos do roteiro que eles almejam.

→ Construir grupos de privacidade, permissão de conta, interface de usuário de permissão, atualização de rede de Istambul

: Hyperledger Besu 1.2, 31 de julho de 2019

→ Suporte de stream, monitoramento personalizado para IBFT, governança de permissão: Hyperledger Besu 1.3, 07 de outubro de 2019

→ Cliente de rede Multi Ethereum, Cross-Privacy Group, Advanced Privacy Features, Enterprise Integration, Ethereum 2.0, Early 2020.

Instalando a distribuição binária, criando a partir da fonte e iniciando o Besu

Nesta seção, aprenderemos como instalar o Besu, construir e iniciá-lo no MacOS e em outros sistemas operacionais.

Instalando a distribuição binária

Se você estiver usando Mac OS, você precisa ter Homebrew e Java JDK para começar. Você também precisa do Java 11+, pois as versões anteriores do Java não são compatíveis.

Agora, execute o seguinte comando para instalar usando o Homebrew.

brew tap hyperledger / besu

cerveja instalar besu

Para verificar se o Besu foi instalado com sucesso, verifique com o seguinte comando.

besu – ajuda

Se você estiver usando Unix / Linux / Windows, faça o download do Besu binários empacotados. Depois de baixado, descompacte os arquivos e vá para o diretório besu-.

Para confirmar se o Besu está instalado corretamente, use o besu – ajuda comando.

Construir a partir da fonte

Para construir Besu a partir da fonte, você precisa clonar o repositório Besu.

git clone – recursivo https://github.com/hyperledger/besu.git

Assim que a clonagem for concluída, iremos eliminar os testes usando o seguinte comando:

./ gradlew build -x test

Agora, vá para o diretório de distribuição usando o comando:

construção de cd / distribuições /

A partir daí, você precisa expandir o arquivo de distribuição usando o seguinte comando.

tar -xzf besu-.tar.gz

Com os arquivos expandidos, agora vá para a nova pasta.

cd besu- /

bin / besu –help

Se o último comando for executado com sucesso, você construiu com sucesso a partir da fonte.

Para Windows, o processo é quase o mesmo. Você começa clonando o repositório, removendo testes, indo para o diretório de distribuição, expandindo-o e, finalmente, verificando se a instalação foi bem-sucedida ou não.

Besu começando

Incrível, agora que temos o Besu pré-instalado, agora temos que executá-lo. Para começar, você precisa seguir as etapas a seguir.

  • Dados do Bloco Local
  • Configuração Genesis
  • Confirme se o nó está em execução ou não
  • Nó de execução para teste

A primeira etapa é configurar os dados do bloco local. Se você se conectou a uma rede anterior, você precisa se livrar dos dados do bloco local. Você também pode configurar a opção –data-path para especificar os novos dados do bloco local.

Você pode excluir os dados do bloco local do diretório besu / build / distribution / besu. Lá, exclua o diretório do banco de dados e você está pronto para ir!

Se você estiver usando Mainnet, Goerli, Rinkeby ou Ropsten, a configuração do genesis é especificada quando você se conecta a eles.

Além disso, você pode especificar o atributo –network = dev para iniciar a configuração do genesis com bootnodes vazios. Além disso, ele define a configuração do gênesis com uma dificuldade baixa fixa.

Para confirmar se o nó está em execução, você precisa usar a opção –rpc – http-enabled. Uma vez feito isso, use cURL e chame os métodos da API JSON-RPC. Se houver uma resposta, o nó está em execução.

Por último, para executar o nó para teste, você precisa usar o seguinte comando

besu –network = dev –miner-enabled –miner-coinbase = 0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 –rpc-http-cors-origins = ”all” –host-whitelist = ”*” –rpc-ws-enabled –rpc-http-enabled –data- caminho = / tmp / tmpDatdir

Privacidade no Hyperledger Besu

As redes autorizadas são conhecidas por seus recursos de privacidade. Besu não é diferente, pois oferece excelentes opções de privacidade prontas para usar. Com Besu, você pode usar Privacidade em conformidade com a EEA ou Besu-privacidade estendida.

Para criar e gerenciar grupos de privacidade, você pode usar os métodos de API JSON-RPC já disponíveis. Esses métodos podem ser usados ​​para criar e gerenciar grupos de privacidade

  • priv_createPrivacyGroup
  • priv_findPrivacyGroup
  • priv_deletePrivacyGroup

Quando se trata de transações, o Besu implementa apenas transações restritas. Isso é feito para garantir a privacidade e tornar as transações com privacidade.

As transações são assinadas por uma chave específica ou uma chave aleatória. Se você deseja entrar com uma chave específica, você precisa usar o arquivo -privacy-marker-transaction -acking-key-file, que está disponível no Hyperledger Besu.

Se você estiver interessado, pode verificar um tutorial detalhado sobre como configurar a rede de transações privadas aqui. No tutorial, você pode descobrir que o Orion é um dos pré-requisitos para começar.

Permissão no Hyperledger Besu

A permissão é uma parte crítica de qualquer estrutura de blockchain corporativa. O mesmo é verdade para Besu. Qualquer rede com permissão envolve a ideia de permitir apenas nós específicos. Eles participam e habilitam a rede fazendo uma transação ou permitindo transações.

No caso de uma rede ponto a ponto, é necessário impor regras nos nós para que a permissão possa ser feita. Claramente, um nível de confiança já é necessário para estar presente antes que uma rede autorizada possa entrar em operação. Para garantir que os atores mal-intencionados tenham uma função mínima aqui, é necessário tomar precauções. Atores mal-intencionados, por exemplo, não podem impactar a tomada de decisão da rede. Regras e regulamentos adequados também podem ajudar a identificar malfeitores e removê-los quando forem pegos praticando ações maliciosas.

Além da permissão de nó, também há uma opção de permissões de conta que impõem mais regras e regulamentos. A permissão de conta pode ser usada para impor requisitos de identidade e integração. Também ajuda a suspender contas, colocar contratos quebrados na lista negra e restringir contas ao realizar ações.

O blockchain do Hyperledger Besu fornece tanto local quanto onchain.

Permissão local é feito no nível do nó. Para implementá-lo, um arquivo de configuração de permissões é usado. Como as permissões são locais, elas não afetam a rede. Isso é útil para saber como o nó funciona – que é independente do resto da rede. Também é necessário para proteger os nós se algo de errado acontecer.

Permissão Onchain, por outro lado, são codificados em contratos inteligentes. A permissão Onchain abrange toda a rede e todos os nós podem lê-la e atualizá-la. A permissão Onchain só pode ser modificada ou atualizada com coordenação. Além disso, depois de atualizado, é aplicado em toda a rede.

Hyperledger Besu

Legenda: Como funcionam as permissões locais e OnChain

Você também pode seguir este guia saber como configurar uma rede de permissão em Besu.

Outras coisas que vale a pena mencionar

Hyperledger Besu GitHub: Se você acha que pode contribuir para o Hyperledger Besu, pode verificar o repositório Hyperledger Besu GitHub aqui.

Atualmente, não existe o melhor curso de Hyperledger em Besu, e é por isso que você também pode verificar a documentação do usuário aqui. Eles têm tutoriais completos sobre como inicializar redes ou como criar uma rede privada.

Conclusão

Isso nos leva ao final do nosso guia de primeiros passos do Hyperledger Besu. Aqui, cobrimos muitas coisas sobre Besu.

Em breve estaremos cobrindo Hyperledger Fabric vs Besu. Portanto, não se esqueça de assinar nosso boletim informativo.

Além disso, o que você acha disso? Comente abaixo e deixe-nos saber.