By Matt Zand
In our previous article (Review of Five popular Hyperledger DLTs- Fabric, Besu, Sawtooth, Iroha and Indy), we discussed the following Hyperledger Distributed Ledger Technologies (DLTs).
- Hyperledger Indy
- Hyperledger Fabric
- Hyperledger Iroha
- Hyperledger Sawtooth
- Hyperledger Besu
To continue our journey, in this article we discuss three Hyperledger tools (Hyperledger Caliper, Cello and Avalon) that act as great accessories for any of Hyperledger DLTs. It is worth mentioning that, as of this writing, all of three tools discussed in this article are at the incubation stage.
Caliper is a unique general tool and has become a useful reference for enterprises to measure the performance of their distributed ledgers. The Caliper project will be one of the most important tools to use along with other Hyperledger projects (even in Quorum or Ethereum projects since it also supports those types of blockchains). It offers different connectors to various blockchains, which gives it greater power and usability. Likewise, based on its documentation, Caliper is ideal for:
- Application developers interested in running performance tests for their smart contracts
- System architects interested in investigating resource constraints during test loads
To better understand how Caliper works, one should start with its architecture. Specifically, to use it, a user should start with defining the following configuration files:
- A benchmark file defining the arguments of a benchmark workload
- A blockchain file specifying the necessary information, which helps to interact with the system being tested
- Smart contracts defining what contracts are going to be deployed
The above configuration files act as inputs for the Caliper CLI, which creates an admin client (acts as a superuser) and factory (being responsible for running test loads). Based on a chosen benchmark file, a client could be transacting with the system by adding or querying assets.
While testing is in progress, all transactions are saved. The statistics of these transactions are logged and stored. Further, a resource monitor logs the consumption of resources. All of this data is eventually aggregated into a single report. For more detailed discussion on its implementation, visit the link provided in the References section.
As blockchain applications eventually deployed at the enterprise level, developers had to do a lot of manual work when deploying/managing a blockchain. This job does not get any easier if multiple tenants need to access separate chains simultaneously. For instance, interacting with Hyperledger Fabric requires manual installation of each peer node on different servers, as well as setting up scripts (e.g., Docker-Composer) to start a Fabric network. Thus, to address said challenges while automating the process for developers, Hyperledger Cello got incubated. Cello brings the on-demand deployment model to blockchains and is written in the Go language. Cello is an automated application for deploying and managing blockchains in the form of plug-and-play, particularly for enterprises looking to integrate distributed ledger technologies.
Cello also provides a real-time dashboard for blockchain statuses, system utilization, chain code performance, and the configuration of blockchains. It currently supports Hyperledger Fabric. According to its documentation, Cello allows for:
- Provisioning customized blockchains instantly
- Maintaining a pool of running blockchains healthy without any need for manual operation
- Checking the system’s status, scaling the chain numbers, changing resources, etc. through a dashboard
Likewise, according to its documentation, the major Cello’s features are:
- Management of multiple blockchains (e.g., create, delete, and maintain health automatically)
- Almost instant response, even with hundreds of chains or nodes
- Support for customized blockchains request (e.g., size, consensus) — currently, there is support for Hyperledger Fabric
- Support for a native Docker host or a Swarm host as the compute nodes
- Support for heterogeneous architecture (e.g., z Systems, Power Systems, and x86) from bare-metal servers to virtual machines
- Extensible with monitoring, logging, and health features through employing additional components
According to its developers, Cello’s architecture follows the principles of the microservices, fault resilience, and scalability. In particular, Cello has three functional layers:
- The access layer, which also includes web UI dashboards operated by users
- The orchestration layer, which on receiving the request from the access layer, makes a call to the agents to operate the blockchain resources
- The agent layer, which embodies real workers that interact with underlying infrastructures like Docker, Swarm, or Kubernetes
According to its documentation, each layer should maintain stable APIs for upper layers to achieve pluggability without changing the upper-layer code. For more detailed discussion on its implementation, visit the link provided in the References section.
To boost the performance of blockchain networks, developers decided to store non-essential data into off-the-chain databases. While this approach improved blockchain scalability, it led to some confidentiality issues. So, the community was in search of an approach that can achieve scalability and confidentiality goals at once; thus, it led to the incubation of Avalon. Hyperledger Avalon (formerly Trusted Compute Framework) enables privacy in blockchain transactions, shifting heavy processing from a main blockchain to trusted off-chain computational resources in order to improve scalability and latency, and to support attested Oracles.
The Trusted Compute Specification was designed to assist developers gain the benefits of computational trust and to overcome its drawbacks. In the case of the Avalon, a blockchain is used to enforce execution policies and ensure transaction auditability, while associated off-chain trusted computational resources execute transactions. By utilizing trusted off-chain computational resources, a developer can accelerate throughput and improve data privacy. By using Hyperledger Avalon in a distributed ledger, we can:
- Maintain a registry of the trusted workers (including their attestation info)
- Provide a mechanism for submitting work orders from a client(s) to a worker
- Preserve a log of work order receipts and acknowledgments
To put it simply, the off-chain parts related to the main-network are executing the transactions with the help of trusted compute resources. What guarantees the enforcement of confidentiality along with the integrity of execution is the Trusted Compute option with the following features:
- Trusted Execution Environment (TEE)
- MultiParty Commute (MPC)
- Zero-Knowledge Proofs (ZKP)
By means of Trusted Execution Environments, a developer can enhance the integrity of the link in the off-chain and on-chain execution. Intel’s SGX play is a known example of TEEs, which have capabilities such as code verification, attestation verification, and execution isolation which allows the creation of a trustworthy link between main-chain and off-chain compute resources. For more detailed discussion on its implementation, visit the link provided in the References section.
Note- Hyperledger Explorer Tool (deprecated)
In our upcoming article, we move on covering the below four Hyperledger libraries:
- Hyperledger Aries
- Hyperledger Quilt
- Hyperledger Ursa
- Hyperledger Transact
To recap, we covered three Hyperledger tools (Caliper, Cello and Avalon) in this article. We started off by explaining that Hyperledger Caliper is designed to perform benchmarks on a deployed smart contract, enabling the analysis of four indicators (like success rate or transaction throughout) on a blockchain network while smart contract is being used. Next, we learned that Hyperledger Cello is an automated application for deploying and managing blockchains in the form of plug-and-play, particularly for enterprises looking to integrate distributed ledger technologies. At last, Hyperledger Avalon enables privacy in blockchain transactions, shifting heavy processing from a main blockchain to trusted off-chain computational resources in order to improve scalability and latency, and to support attested Oracles.
For more references on all Hyperledger projects, libraries and tools, visit the below documentation links:
- Hyperledger Indy Project
- Hyperledger Fabric Project
- Hyperledger Aries Library
- Hyperledger Iroha Project
- Hyperledger Sawtooth Project
- Hyperledger Besu Project
- Hyperledger Quilt Library
- Hyperledger Ursa Library
- Hyperledger Transact Library
- Hyperledger Cactus Project
- Hyperledger Caliper Tool
- Hyperledger Cello Tool
- Hyperledger Explorer Tool
- Hyperledger Grid (Domain Specific)
- Hyperledger Burrow Project
- Hyperledger Avalon Tool
About the Author
Matt Zand is a serial entrepreneur and the founder of 3 tech startups: DC Web Makers, Coding Bootcamps and High School Technology Services. He is a leading author of Hands-on Smart Contract Development with Hyperledger Fabric book by O’Reilly Media. He has written more than 100 technical articles and tutorials on blockchain development for Hyperledger, Ethereum and Corda R3 platforms at sites such as IBM, SAP, Alibaba Cloud, Hyperledger, The Linux Foundation, and more. As a public speaker, he has presented webinars at many Hyperledger communities across USA and Europe.. At DC Web Makers, he leads a team of blockchain experts for consulting and deploying enterprise decentralized applications. As chief architect, he has designed and developed blockchain courses and training programs for Coding Bootcamps. He has a master’s degree in business management from the University of Maryland. Prior to blockchain development and consulting, he worked as senior web and mobile App developer and consultant, angel investor, business advisor for a few startup companies. You can connect with him on LI: https://www.linkedin.com/in/matt-zand-64047871
The post Review of Three Hyperledger Tools – Caliper, Cello and Avalon appeared first on Linux Foundation – Training.