Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

Key Points

  1. Enterprise Ethereum Client for public or private permissioned blockchains


References

Reference_description_with_linked_URLs_______________________Notes______________________________________________________________
m Ethereum
DLT concepts & principles
m Ethereum Smart Contract Concepts
Firefly: Web3 Blockchain framework
DLT - Hyperledger Besu Case Studies. ***
Hyperledger YUI - IBC interoperability: Besu, Fabric, Corda
Technical Learning & Training resources
m Blockchain Financial Services - DeFi - NFTsHas Besu and Fabric use cases for finance




https://www.hyperledger.org/blog/2019/08/29/announcing
-hyperledger-besu
BESU announced


https://www.hyperledger.org/projects/besu
https://wiki.hyperledger.org/display/BESU/Hyperledger+Besu
https://besu.hyperledger.org/en/stable/BESU overview
https://github.com/hyperledger/besu
https://www.hyperledger.org/blog/2019/08/29/
announcing-hyperledger-besu

https://wiki.hyperledger.org/display/BESU/Roadmap


Besu Tutorials


BESU Developer Quickstart with private net, metamask, dapps **
Besu Essentials: Creating a Private Blockchain Network (LFS176x)LFX course
https://www.udemy.com/home/my-courses/search/?q=besu+cordaUdemy Master Class Besu course **
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network
/Create-IBFT-Network/
Tutorial - Besu private network
https://www.hyperledger.org/resources/tutorialsTutorials
https://besu.hyperledger.org/en/stable/HowTo/
Get-Started/Install-Binaries/
Besu install
https://besu.hyperledger.org/en/stable/Tutorials/
Permissioning/Create-Permissioned-Network/
Tutorial - Create Besu Permissioned Network
https://besu.hyperledger.org/en/stable/Tutorials/
Privacy/Configuring-Privacy/
Tutorial - Configure Private Transactions
article Hyperledger Besu — Getting Started: Part 1 - A Joshi


https://consensys.net/blog/news/the-state-of-the-merge-an-
update-on-ethereums-merge-to-proof-of-stake-in-2022/
BESU role after Ethereum Merge to POS


https://github.com/hyperledger/besu/releases/tag/22.1.0Besu client release 22.1.0
https://wiki.hyperledger.org/display/BESU/RoadmapBesu client roadmap on 220302 - release 22.7 handles POS merge
https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177Ethereum block consensus on POS - MEV and PBS options for performance


Besu comparisons
Compare Besu and Fabric - student paper  


Besu Tools


BlockScout block explorer for Besu

https://docs.blockscout.com/

https://docs.blockscout.com/about/projects/hosted-blockscout

https://github.com/blockscout/blockscout#readme

Blockscout is an open-source Elixir application that allows users to search transactions, view accounts and balances, and verify smart contracts on Ethereum including forks and sidechains
VSCode with plugins for development
Alethio Lite Explorer for Besu - Web app connects to json-rpc Besu nodes

Alethio Ethereum Lite Explorer uses Docker


https://github.com/ConsenSys/tessera

Tessera is a stateless Java system that is used to enable the encryption, decryption, and distribution of private transactions for Quorum and/or Besu

Each Tessera node:

  • Generates and maintains a number of private/public key pairs

  • Self manages and discovers all nodes in the network (i.e. their public keys) by connecting to as few as one other node

  • Provides Private and Public API interfaces for communication:

    • Private API - This is used for communication with Quorum
    • Public API - This is used for communication between Tessera peer nodes
  • Provides two way SSL using TLS certificates and various trust models like Trust On First Use (TOFU), whitelist, certificate authority, etc.

  • Supports IP whitelist

  • Connects to any SQL DB which supports the JDBC client

https://github.com/ConsenSys/doc.tessera

Tessera docs for Quorum

Tessera is a ConsenSys Quorum Private Transaction Manager

Performance


Besu Performance Best Practices 

Besu-Performance-Analysis-ofHyperledger-Besu-in-PrivateBlockchain-2022IEEEDapps url

Besu-Performance-Analysis-ofHyperledger-Besu-in-PrivateBlockchain-2022IEEEDapps link

Besu-Performance-Analysis-ofHyperledger-Besu-in-PrivateBlockchain-2022IEEEDapps.pdf file


Besu Performance Benchmarks with Caliper url


Besu Articles


https://101blockchains.com/introduction-to-hyperledger-besu/









Key Concepts



Hyperledger Besu is an Ethereum client designed to be enterprise-friendly for both public and private permissioned network use cases. It can also be ran on test networks such as Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several consensus algorithms including PoW, and PoA (IBFT, IBFT 2.0, Etherhash, and Clique). Its comprehensive permissioning schemes are designed specifically for use in a consortium environment.


https://wiki.hyperledger.org/display/BESU/Hyperledger+Besu

What is Hyperledger Besu?

Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java. It can be run on the Ethereum public network or on private permissioned networks, as well as test networks such as Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several consensus algorithms including PoW, PoA, and IBFT, and has comprehensive permissioning schemes designed specifically for uses in a consortium environment.

What are Hyperledger Besu’s Features?

Hyperledger Besu implements the Enterprise Ethereum Alliance (EEA) specification. The EEA specification was established to create common interfaces amongst the various open and closed source projects within Ethereum, to ensure users do not have vendor lock-in, and to create standard interfaces for teams building applications. Besu implements enterprise features in alignment with the EEA client specification. 

Hyperledger Besu’s features include: 

    • The Ethereum Virtual Machine (EVM) : The EVM is the Turing complete virtual machine that allows the deployment and execution of smart contracts via transactions within an Ethereum blockchain.
    • Consensus Algorithms: Hyperledger Besu implements various consensus algorithms which are involved in transaction validation, block validation, and block production (i.e., mining in Proof of Work). They include:
      • Proof of Authority: Hyperledger Besu implements several Proof of Authority protocols. Proof of Authority consensus protocols are used when participants are known to each other and there is a level of trust between them––in a permissioned consortium network, for example.
        • IBFT 2.0: In IBFT 2.0 networks, transactions and blocks are validated by approved accounts, known as validators. Validators take turns creating the next block. Existing validators propose and vote to add or remove validators. IBFT 2.0 has immediate finality. When using IBFT 2.0, there are no forks and all valid blocks are included in the main chain.
        • Clique: Clique is more fault-tolerant than IBFT 2.0. Clique tolerates up to half of the validators failing. IBFT 2.0 networks require greater than or equal to ⅔ of validators to be operating to create blocks. Clique does not have immediate finality. Implementations using Clique must be aware of forks and chain reorganizations occurring.
      • Proof of Work (Ethash): Proof of Work is used for mining activities on mainnet Ethereum.
    • Storage: Hyperledger Besu uses a RocksDB key-value database to persist chain data locally.  This data is divided into a few sub-categories:
      • Blockchain: Blockchain data is composed of block headers that form the “chain” of data that is used to cryptographically verify blockchain state; block bodies that contain the list of ordered transactions included in each block; and transaction receipts that contain metadata related to transaction execution including transaction logs. 
      • World State: Every block header references a world state via a stateRoot hash.  The world state is a mapping from addresses to accounts. Externally owned accounts contain an ether balance, while smart contract accounts additionally contain executable code and storage.
    • P2P networking: Hyperledger Besu implements Ethereum’s devp2p network protocols for inter-client communication and an additional sub-protocol for IBFT2:
      • Discovery: A UDP-based protocol for finding peers on the network
      • RLPx: A TCP-based protocol for communication between peers via various “sub-protocols”:
        • ETH Sub-protocol (Ethereum Wire Protocol): Used to synchronize blockchain state across the network and propagate new transactions.
        • IBF Sub-protocol: Used by IBFT2 consensus protocol to facilitate consensus decisions.
    • User-facing APIs: Hyperledger Besu provides mainnet Ethereum and EEA JSON-RPC APIs over HTTP and WebSocket protocols as well as a GraphQL API.  
      • JSON-RPC
        • HTTP JSON-RPC Service
        • WebSocket JSON-RPC Service
      • GraphQL
    • Monitoring: Hyperledger Besu allows you to monitor node and network performance.
      • Node performance is monitored using Prometheus or the debug_metrics JSON-RPC API method.
      • Network Performance is monitored with Alethio tools such as Block Explorer and EthStats Network Monitor.
    • Privacy: Privacy in Hyperledger Besu refers to the ability to keep transactions private between the involved parties. Other parties cannot access the transaction content, sending party, or list of participating parties. Besu uses a Private Transaction Manager to implement privacy. 
    • Permissioning: A permissioned network allows only specified nodes and accounts to participate by enabling node permissioning and/or account permissioning on the network.


Besu POA - Proof of Authority Consensus Options: IBFT, Clique

Understanding Proof of Authority via Clique and IBFT 2.0 Private Networks (Part 1)

https://consensys.net/blog/quorum/hyperledger-besu-understanding-proof-of-authority-via-clique-and-ibft-2-0-private-networks-part-1/ url

POA - Proof of Authority Consensus

Can select block builders, validators randomly or based on policy

Generally in any PoA consensus mechanism, validators alternate adding blocks to the blockchain in a series. In addition to adding blocks, they can choose to vote to add or kick out a validator. This allows malicious validators to be removed from the network, and trusted validators to be added. This gives PoA resistance against certain kinds of attack vectors

Compare Clique vs IBFT

PropertyCliqueIBFT 2.0
FinalityForks / Reorgs possibleImmediate Finality
Validators Required14
Liveness½ validators live>= ⅔ validators live
Relative SpeedFaster than IBFT 2.0

Slower than Clique


Note in Firefly testing, Clique was significantly slower than IBFT

Use Case Questions for BESU Consensus


What are my finality requirements?

  • Does my use case require that each block created instantly be confirmed?
  • If a block is not instantly confirmed, what are the potential impacts?

How many validators do I intend my network to have?

  • How many will I have at the start?
  • How many could be added to the network over time?
  • Do I think validators could leave my network? 
  • Would I stop running the network if a certain number of validators left?
  • Do I need participants to join the network without being validators? Should they be able to submit transactions?

What fault tolerance does my network require?

  • Does the number of validators that will participate at start allow for the network to continue running if one goes down? 
  • What happens if two or more validators go down?

How fast do I need to be able to create new blocks?

  • Will the speed at which I need to create new blocks stay constant or can it slow down if new validators are added?



Documentation

Documentation on Hyperledger Besu can be found here: https://besu.hyperledger.org/

Repositories

https://github.com/hyperledger/besu/

https://github.com/hyperledger/besu-docs



Besu Overview 101 Blockchains

https://101blockchains.com/introduction-to-hyperledger-besu/

Hyperledger Besu, the latest addition among the Hyperledger projects.

  • It provides a reliable platform for building public network use cases by leveraging the Ethereum public network. It also allows the creation of permissioned networks.
  • It operates according to the Enterprise Ethereum Alliance standard, a standard reference for the creation of common interfaces between different closed and open source projects in the Ethereum ecosystem.
  • It facilitates the adoption of different consensus mechanisms.
  • Peer-to-peer networking represents one of the prominent features of Hyperledger Besu.
  • Monitoring the performance of nodes and networks is another important element of Hyperledger Besu.
  • Privacy ensures that external parties cannot access the list of parties involved in the transaction, or the transaction content, or reference of the sending and receiving parties.

One of the most wide-ranging applications associated with Hyperledger Besu is in the pharmaceutical industry. In the Save Pharmaceutical project, unused medicines are returned and provided to patients who need them through a platform based on Hyperledger Besu that connects drug repositories (e.g., pharmacies), drug donors (e.g., clinics), individual patients, and assisted living facilities and patients. The platform ensures a permissioned enterprise-level network to operate as a drug repository system.

Video Intro to Besu - 7 minutes

Let us discover the definition of Hyperledger Besu alongside its architecture and features. Most important of all, the following discussion would emphasize on the functionalities and its notable use cases.

Hyperledger Besu


Functionalities Supported on Hyperledger Besu

The functionalities of Hyperledger Besu are also one of the prominent reasons for driving its popularity. It provides the CLI (Command-Line Interface) along with WebSocket & HTTP-based APIs to ensure proper running, maintenance, and monitoring of nodes on the Ethereum network. Client APIs provide adequate support for general Ethereum functionalities, including smart contracts, dapp development, use cases involving operations, and deployment.

The tools like web3j, Truffle, and Remix help in supporting these activities. Furthermore, the Hyperledger Besu client also ensures support for the implementation of common JSON-RPC APIs. Therefore, users don’t have to face difficulties with integration and ecosystem tooling. The Hyperledger Besu client also provides support for the creation of private consortium networks with permissions.

Hyperledger Besu currently doesn’t have support for key management with the client owing to security issues. On the other hand, users can leverage the EthSigner or other Ethereum-compatible wallets for the management of private keys. Tools such as EthSigner also facilitate access to the key store alongside signing transactions through tools such as Microsoft Azure and Hashicorp Vault.

As mentioned already, it also supports node & account permissioning on the basis of local configuration and smart contracts. In addition, the zero-knowledge methods associated with the client can also facilitate private transactions in unison with the Aztex protocol. If the case involves an off-chain approach, then you can use Orion, which is an open-source private transaction manager.

Also Read: Future of Blockchain Technology

Practical Use Case of Hyperledger Besu

The final concern in any introduction to Hyperledger Besu would primarily refer to its practical use cases. One of the most wide-ranging applications associated with it is in the pharmaceutical industry. The problem of pharmaceutical waste in the US is one of the prominent issues with wastage of almost $2 billion worth of prescription drugs annually.

Massive volumes of prescription drugs remain unused in clinics, individual patient homes, and assisted living facilities. Therefore, the most plausible solution, in this case, might point towards destroying unused medication. However, the cost of disposing of unused drugs is another critical setback.

Furthermore, the legal precedents for disposing of unused drugs through incineration could create prominent environmental concerns. So, the most productive solution, in this case, would be a mechanism that can return unused medicines and provide them to patients who need them. Such a solution must comply with the following practical aspects for better efficiency.

  • Motivation for pharmacies to serve as facilities to accept unused drugs
  • Motivation for patients and clinics to donate unused drugs
  • Comprehensive control and transparency over the quality and expiration of donated drugs
  • Data security

One of the best examples of the use of Hyperledger Besu in creating such a solution is the Save Pharmaceutical project. The platform leverages Hyperledger Besu for connecting drug repositories, i.e., pharmacies, drug donors such as clinics, individual patients, and assisted living facilities and patients.

The Save Pharmaceutical project is currently under development and would turn out to be an exceptionally multi-functional product. It can be the ideal platform for donors to donate medications they are not using, and pharmacies could easily approve or reject the donated pharmacies. As a result, patients who need drugs and cannot avail of them due to financial difficulties can get the best quality drugs.

Hyperledger Besu serves as the ideal option in this use case because of its facility for operations on a public network. Therefore, patients could access information about the availability of drugs at pharmacies. In addition, the facility of permissioning can help pharmacies maintain better control over the acceptance and verification of quality of drugs.

As a result, Hyperledger Besu can ensure a permissioned enterprise-level network for working as a drug repository system. One can clearly notice that It is ideal for mission-critical applications on private Blockchain while utilizing features of permissionless protocol.

If you are a beginner in the world of blockchain technology, you should know about the Types of Blockchain.

Conclusion

The introduction of Hyperledger Besu in the Hyperledger ecosystem would spell new opportunities for enterprises to avail benefits of public network use cases. Most important of all, It ensures simple and flexible setup and installation through its general system requirements.

It is easier to establish system requirements for Hyperledger Besu with a clear impression of the network specifications such as query complexity, world state size, block gas limit, and the number of transactions. Furthermore, the open community of Hyperledger Besu also drives additional contributions to its ecosystem every day. The adoption of Hyperledger Besu is slowly gaining momentum. Learn more about Hyperledger Besu right now to capitalize on the opportunity!


Besu Performance Best Practices 


Besu-Performance-Analysis-ofHyperledger-Besu-in-PrivateBlockchain-2022IEEEDapps.pdf file



consensus method impact

Block Time: Another critical parameter, block time, deter-
mines the block frequency, which directly impacts the latency

and throughput of Besu. This parameter should be carefully
configured according to the application’s needs in practice.
On the one hand, if a block period is very short (e.g., 1s),
Besu will generate blocks very frequently. This results in high
throughput and low latency for consensus algorithms with
finality properties such as QBFT and IBFT 2.0. However,
a short block period will cause more forks in a Clique
network, which in turn degrades the performance.


Load balancing impact



Using Caliper to Measure Besu Performance

https://wiki.hyperledger.org/display/INTERN/Performance+analysis+and+Benchmarking+of+Besu+using+Caliper+with+complex+workloads




Besu Comparison To Fabric

Compare Besu and Fabric - student paper




Potential Value Opportunities



Potential Challenges


Ethereum Proof of Stake Concepts

https://consensys.net/blog/blockchain-explained/what-is-proof-of-stake/


Ethereum Client Architecture after Merge

https://etherworld.co/2021/12/20/an-overview-of-expected-changes-with-the-ethereum-merge-upgrade/



Ethereum Merge from POW to POS impacts Besu role **

https://consensys.net/blog/news/the-state-of-the-merge-an-update-on-ethereums-merge-to-proof-of-stake-in-2022/

Old vs New Ethereum Network Model: POW to POS

The reason the change from PoW to PoS is called “the Merge” is because the already running beacon chain will merge with the existing Ethereum mainnet chain. This preserves the history of the network, its functionality, but crucially changes the consensus mechanism. The beacon chain will coordinate data and the production of new blocks via network validators, which will use economic incentives to secure the blockchain (more info can be found here). At its core, the merge to PoS reduces network energy usage by at least 99.95%! Currently, the network has about the same carbon footprint as the entire nation of Finland and the ecosystem knows we need to do better. The Merge will also alleviate:

  • The Proof of Work consensus mechanism is not sustainable and not scalable long-term.
  • Proof of Stake makes participating in the network more attainable for many more users and not just large miners.
  • More equal distribution of network rewards to incentivize good behaviors and open up yield to many more users, despite a decreased issuance rate of ETH and smaller block rewards.


How To Buy   038  Send ETH  And Use MetaMask Mobile  8217 s Browser


Architecturally, the Merge is making use of the existing technology in Ethereum and supplementing it with what we need for the future. Current Ethereum clients, like Hyperledger Besu, will become known as “execution clients” and will handle state storage, block production, and smart contract interactions. “Consensus clients,” like Teku, will handle synchronizing state across the network and submitting transactions to the beacon chain. A new piece of technology called the “engine API” will allow these two clients to talk to each other extremely efficiently. All together, this new stack powers PoS with existing technologies and formats (like JSON RPC) and new ones such as REST APIs for the consensus clients. 





Candidate Solutions



Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps



  • No labels