Hyperledger Architecture, Projects, Tools and Libraries- Outline

I. Background

Since you know what Hyperledger is, we assume that you have a basic knowledge of what is blockchain technology and how it works. So to follow topics discussed in this article, you need to know the fundamental concepts of blockchain as well as key concepts and terminologies that are common among all blockchain platforms such as consensus, shared ledger, cryptography smart contracts, etc.

In this article, we introduce you to the Hyperledger ecosystem by reviewing its projects, tools and libraries along with explaining Hyperledger key terms and concepts in detail. Specifically, we review all Hyperledger Fabric components like peer, channel, chaincodes that are essential for building blockchain applications. In short, thorough understanding of all Hyperledger Fabric components is highly recommended for building, deploying and managing enterprise-level Hyperledger Fabric applications.

This article mainly targets those who are relatively new to Hyperledger. The primary goal is to explore projects and tools that are developed under Hyperledger and to equip you with the necessary knowledge and important technical designs of the Hyperledger ecosystem, and then apply these technologies through real-world use cases. The materials included in this article will help you understand Hyperledger as a whole and use its high-level overview as a guideline for making the best of each Hyperledger project.

As a reminder, in order to design and deploy Hyperledger Fabric blockchain applications, you need not to thoroughly understand all tools and projects discussed in this article. Just use this article as your reference for better navigating through the Hyperledger projects. As such, this article shall not be deemed as a definitive guide for all Hyperledger projects.

For those who already have a good knowledge of the Hyperledger ecosystem, this article would be a good “scratch the surface” review.

Let’s kick off this article by slightly expanding on the evolution and phases of blockchain before diving into Hyperledger family architecture and ecosystem. Thus, we will move to our first topic which is evolution and phases of blockchain technology.

 

One-to-One Live Blockchain Classes

Coding Bootcamps school offers One-to-One Live Blockchain Classes for Beginners.

 

II. Evolution and Phases of Blockchain Technology

Blockchain technology is still evolving. It will take several years before it becomes mature and its true potential to be discovered and harnessed. Currently, there is no universally agreed classification or definition of blockchain generation.

In her book on blockchain, Melanie Swan defined blockchain 1.0 to 3.0 based on the use cases that blockchain platforms are created to serve

“Blockchain 1.0 is currency, the deployment of cryptocurrencies in applications related to cash, such as currency transfer, remittance, and digital payment systems.Blockchain 2.0 is contracts, the entire slate of economic, market, and financial applications using the blockchain that are more expensive than simple cash transactions: stocks, bonds, futures, loans, mortgages, titles, smart property, and smart contracts. Blockchain 3.0 is blockchain applications beyond currency, finance, and markets – particularly in the areas of government, health, science, literacy, culture, and art.”

SourceBlockchain: Blueprint for a New Economy 1st Edition by Melanie Swan from O’Reilly Media 2015

One way to view the advances of blockchain technology is to categorize its evolution into four generations. Thus, we briefly survey blockchain generations from 1.0 to 4.0 as below:

Blockchain 1.0: The initial generation of blockchain came to existence by the advent of cryptocurrencies like Bitcoin. The role of blockchain technology was to improve the existing monetary system by allowing people to send transactions relying on cryptography instead of banks. During this generation of blockchain, the network was peer-to-peer, decentralized, anonymous, and at the same time transparent. However, its major drawback was its use of Proof-of-Work which required lots of mining.

Blockchain 2.0: Blockchain technology turned a corner around 2015 when tech innovators started exploring its trustless feature besides monetary transactions. It led to the creation of the Ethereum platform which brought about two majors innovations: 1-Use of other digital assets beside cryptocurrency that were used as a basis for other decentralized projects, and 2- The advent of smart contracts which added security to transactions by automatically controlling the execution of all conditions by all actors while automating the transaction processing for all actors in a blockchain.

Blockchain 3.0: The third generation of blockchain followed its predecessors by focusing on improving its flaws and deficiencies while expanding its use cases. For instance, Proof-of-Work consensus was replaced with Proof-of-Stake. Indeed, other features and functionalities were added to boost blockchain performance and make it adoptable by different industries. For example, blockchain architectures such as consortium or cross-chain transaction processing were invented. Likewise, other changes regarding regulatory compliance and governance, privacy and smart contracts were introduced.

Blockchain 4.0: Currently there is no agreement among professionals regarding exact features or directions that fourth generation blockchain technology will take. Some believe that it will merge with other emerging technologies like the Internet of Things or AI and others think it just followed its proceeding generations by improving its features to make it more efficient, scalable and accessible to masses.

Regardless of how blockchain technology is divided into multiple generations, it is certain that the technology is rapidly evolving.  New ideas and implementations will be incorporated into the existing platforms to deal with challenges of real-life problems. Eventually, the technology will find its feet among enterprise application development projects in both private and public sectors.

The latest trends in blockchain are more often reflected in private blockchain projects, also known as distributed ledger technology (DLT). These DLT projects are usually based on three very common use cases.

Traceability of assets

These projects leave a notarized record within the DLT system that makes this information backed up and immutable to ensure data that will later be accessible. This data can be displayed publicly to ensure certain sensitive data flows in which until now there was little transparency, or they can serve to exploit this data internally and improve internal processes in companies. In the end, what you want is to record a series of events that occurred in a physical or digital asset.

Digital identity

This use case is subject to the regulations of each country or union of countries and is the most persecuted by many of the companies and governments that want to digitize the user’s credentials. This use case has a lot of legal components and there are different ways to approach it, but almost always from a private point of view, that is, with DLT technology. More and more companies have implementations of self-sovereign digital identities seeking to be accepted by regulation, either by hybridizing existing solutions based on digital certificates or by using already developed identity standards. This will be one of the main projects on blockchain.

Digital currency

This has been one of the main use cases since Ethereum appeared, and it is still a project that continues to undergo improvements, evolutions and new companies such as Facebook or Telegram try to have their new payment system based on this type of digital currency. The end of this new type of currency has not been reached either, so we will still see new implementations since surely both banks and governments end up using this technology for these monetary purposes.

 

III. Hyperledger Family, Architecture and Ecosystem

In December 2015, The Linux Foundation announced the Hyperledger project as an open source environment for analyzing, building, and collaborating on the development of distributed ledger systems. The creation of the Hyperledger project helped attract many major participants including IBM, Oracle, Cisco, Red Hat, and Accenture. Also, we noted that in comparison to Ethereum (which is a public blockchain), Hyperledger focuses primarily on building distributed ledger solutions for permissioned blockchains and consortium networks. As a result, It is gaining popularity among large technology companies as well as enterprise blockchain developers and solution providers.

Fundamentally, Hyperledger is an umbrella project of modular open source frameworks and tools for building and experimenting with blockchains. According to the Hyperledger website, Hyperledger refers to its design as “the greenhouse for enterprise blockchains”. It aims to be an incubator for developing practicalapplications and business solutions with blockchain technology. As of this writing, some of Hyperledger tools and frameworks are at the incubation stage, whereas others are active.

Hyperledger comes with 16 projects that can be classified in 4 categories: Distributed Ledger, tools, libraries, and domain-specific. We will review the 16 projects of Hyperledger in more detail later in this article. For comprehensive review of individual projects and latest updates or news on said projects, you should visit the Hyperledger Foundation website at hyperledger.org

III.1. The Hyperledger Design Philosophy Overview

Before we discuss in detail on how the Hyperledger framework works, it would be a good idea to have a basic understanding of the Hyperledger philosophy. To respond to the diversity of requirements from different industries, all Hyperledger projects must follow the same design philosophy which consists of the following principles.

 

Modula

The Hyperledger architecture working group defines functional modules to address common issues, including policy, consensus, cryptography, identity, and smart contracts. This modular approach allows different developer communities to work independently, while developing extensible frameworks using reusable common building blocks.

 

Highly secure

It is essential to provide robust security for distributed ledgers to keep valuable data safe and enable enterprise blockchains to participate. Hyperledger projects follow the best practices, specified by The Linux Foundation’s core infrastructure initiative, and support security by design. All Hyperledger algorithms and protocols are reviewed and audited by security experts and open source communities on a regular basis. More information can be found at https:/​/​www.​coreinfrastructure.​org/.​

Interoperable

To support interoperability and increased demand for distributed ledger technologies, most Hyperledger smart contracts and applications should be portable across different blockchain networks.

Cryptocurrency-agnostic
Hyperledger projects are independent and agnostic of all tokens, altcoins and cryptocurrencies. However, Hyperledger will not issue its own cryptocurrencies. The purpose of Hyperledger is to build enterprise blockchain software, not to manage cryptocurrencies of any sort.

APIs

Each Hyperledger project provides a rich set of APIs to support interoperability with other systems. These easy-to-use APIs help blockchain technologies expand across a variety of industries.

 

Refer to the official Hyperledger website and publications for more detail about said features. Now let’s take a look at how the Hyperledger framework works.

 

III.2. The Hyperledger Architecture Overview

The Hyperledger architecture working group has defined nine business blockchain components, as shown in Table 2-1.

Table 2-1: Hyperledger Business Blockchain Components (Source: Hyperledger Cookbook by Xun (Brian) Wu, Chuanfeng Zhang, and Andrew Zhang from Packt Publishing in 2019)

Hyperledger key design philosophy

Here we briefly review the 9 business blockchain components of Hyperledger.

Consensus Layer

The consensus layer has undergone different modifications over time in Hyperledger Fabric. First there was Solo mode, followed by Kafka mode along with Zookeeper to put Fabric networks into production, and now Raft has finally appeared to replace Kafka and Zookeeper. This latest change has given greater power and simplicity in Fabric deployments and has brought a closer touch to blockchain technology. It is a success from the Hyperledger team.

Smart Contract Layer

Smart contracts, as with consensus, have evolved within the Hyperledger roadmap. At the beginning there was no clear definition of the supported languages within Fabric. The Fabric developer community, for example, removed Java and then included it again. Now they have also included the Typescript language. The installation of chaincodes in the previous versions of Fabric was quite centralized; however, Fabric V2 introduced the new governance which allows Fabric installations to be done in a much more decentralized way.

Communication Layer

Communication between peers is one of the most sensitive parts in all blockchains, especially to avoid attacks by middlemen. For this reason, it is recommended, in many cases, to use the TLS configuration that Fabric provides as one more security point in communications.

Data Store Abstraction

The way in which data is stored in Fabric is special because it allows us to store it either in a CouchDB or by default in a LevelDB. In comparison to LevelDB, the CouchDB comes with the many more features such as:

  • It supports more programming languages like Ruby and PHP
  • It supports APIs and other access methods like RESTful HTTP/JSON API
  • It supports Multi-source replication and Source-replica replication methods

Crypto Abstraction

The cryptography that Fabric uses within its operation is quite complex and works perfectly within the entire call flow between the network components. Within these cryptographic algorithms we can find the Zero Knowledge Proof (ZKP) which allows blockchain transactions within Fabric network to be verified while maintaining the user anonymity. Another, cryptographic protocol called Identity Mixer used by Fabric to protect the privacy of users when signing, authenticating, and during the transfer of certified attributes. It comes with underlying cryptographic algorithms that efficiently provide advanced privacy features such as “unlinkability” and minimal attribute disclosure.

Identity Service

The identity services available with Fabric are based on fairly configurable Certificate Authority architectures. Normally, it is advisable to have a root CA and then intermediate CAs that are the ones that manage the certificates. And if that were not enough, it also allows the management of all these certificates to be carried out with a Hardware Secure Module (HSM) connected to the CA.

API

This is, in our opinion, one of the fundamental pieces of Fabric since it is the part where the exploitation of blockchain data opens up to the outside world. The very intuitive and convenient Fabric SDKs are used to interconnect the blockchain with any external digitized system. There are SDKs in both Node.js and Go as well as Java and with a fairly complete documentation.

Interoperation

Since Fabric is continually evolving, there needs to be interoperability between different versions of Fabric networks. This is a characteristic that they have decided to maintain and it provides greater continuity to the projects.

OK, now let’s look into how we can utilize the Hyperledger ecosystem to solve real-world business problems. In the next two sections, we cover Hyperledger projects, tools and libraries.

IV. Overview of Hyperledger Projects

Since Hyperledger is gaining strong support from the open source community, new projects are being added to the Hyperledger ecosystem regularly. At the time of this writing, summer 2020, it consists of 6 active projects and 10 others which are at the incubation stage. Each project has unique advantages. The Hyperledger projects, as listed below in Table 2.1, are categorized into 4 types: distributed ledger (or framework), libraries, tools and domain-specific projects.

No

Hyperledger Projects

Project Type

Status*

Distributed Ledger

Libraries

Tools

Domain
Specific

1

Hyperledger Indy

X

Active

2

Hyperledger Fabric

X

Active

3

Hyperledger Aries

X

Active

4

Hyperledger Iroha

X

Active

5

Hyperledger Sawtooth

X

Active

6

Hyperledger Besu

X

Active

7

Hyperledger Quilt

X

Incubation

8

Hyperledger Ursa

X

Incubation

9

Hyperledger Transact

X

Incubation

10

Hyperledger Cactus

X

Incubation

11

Hyperledger Caliper

X

Incubation

12

Hyperledger Cello

X

Incubation

13

Hyperledger Explorer

X

Incubation

14

Hyperledger Grid

X

Incubation

15

Hyperledger Burrow

X

Incubation

16

Hyperledger Avalon

X

Incubation

Table 2.1 List of Hyperledger projects and types (Based on information available from Hyperledger website as of July 2020.)

In this section, we cover the seven Hyperledger projects that are under the Distributor Ledger category. Further, we will briefly explain Hyperledger Grid which is a domain-specific project for building blockchain supply chains. In the next section, we will discuss the other two Hyperledger project categories (tools and libraries).

IV.1. Distributed Ledger Frameworks

The first seven projects (listed below) are frameworks for building blockchain distributed ledgers with Hyperledger. That is, the framework projects aim to provide platforms for building a variety of distributed ledgers and their components.

  1. Hyperledger Indy
  2. Hyperledger Fabric
  3. Hyperledger Iroha
  4. Hyperledger Sawtooth
  5. Hyperledger Besu
  6. Hyperledger Cactus
  7. Hyperledger Burrow

Hyperledger Indy

Indy is built explicitly for decentralized identity management. The server portion, Indy node, is built in Python, while the Indy SDK is written in Rust. It offers tools and reusable components to manage digital identities on blockchains or other distributed ledgers.

Hyperledger Fabric

Fabric is the most popular Hyperledger framework. Smart contracts (also known as chaincode) are written in Golang and JavaScript, and run in Docker containers. Fabric is known for its extensibility and allows enterprises to build distributed ledger networks on top of an established and successful architecture. A permissioned blockchain, initially contributed by IBM and Digital Asset, is designed to be a foundation for developing applications or solutions with a modular architecture. It takes plugin components for providing functionalities such as consensus and membership services. Like Ethereum, Hyperledger Fabric can host and execute smart contracts, which are named chaincode. A Fabric network consists of peer nodes, which execute smart contracts (chaincode), query ledger data, validate transactions, and interact with applications. User-entered transactions are channeled to an ordering service component, which initially serves to be a consensus mechanism for Hyperledger Fabric. Special nodes called Orderer nodes validate the transactions, ensure the consistency of the blockchain, and send the validated transactions to the peers of the network as well as to membership service provider (MSP) services.

Hyperledger Iroha

Iroha is designed to target the creation and management of complex digital assets and identities. It is written in C++ and is user friendly. Iroha has a powerful role-based model for access control and supports complex analytics.

Hyperledger Sawtooth

Sawtooth is the second project to reach 1.0 release maturity. Sawtooth-core is written in Python, while Sawtooth Raft and Sawtooth Sabre are written in Rust. It also has JavaScript and Golang components. Sawtooth supports both permissioned and permissionless deployments. It supports the EVM through a collaboration with the Hyperledger Burrow.

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 Gorli. Hyperledger Besu includes several consensus algorithms including PoW, PoA, and IBFT, and has comprehensive permissioning schemes designed specifically for uses in a consortium environment.

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 Cactus

Cactus aims to provide decentralized, secure and adaptable Integration between blockchain networks.

Hyperledger Burrow

Burrow is the first permissioned ledger that supports EVM. It is written in Go and heavily focuses on being a deterministic smart contract engine. Burrow is a permissively licensed (Apache 2.0) EVM smart contract machine and Byzantine Fault Tolerant permissioned ledger that uses Tendermint consensus and implements some novel extensions to the EVM whilst remaining EMV-compliant. It provides EVM execution within the Ethereum account model and an internal token to meter computation in the permissioned setting with transactions finality.  Burrow is named after the trans-dimensional intergalactic tubules used by marmots to communicate.

IV.2. Domain Specific

Now that we reviewed all framework projects of Hyperledger, we wrap up this section by briefly going over the Hyperledger Grid as the only domain-specific project.

Hyperledger Grid

Grid is a platform for building supply chain solutions that include distributed ledger components. It includes a set of libraries, data models, and SDK to accelerate development for supply chain smart contracts and client interfaces. This project will accelerate the development of blockchain-based solutions to cross-industry supply chain problems.

V. Overview of Hyperledger Tools and Libraries

In the previous section, we briefly reviewed the 7 Hyperledger framework projects for building blockchain distributed ledger. In this section, we continue exploring the remaining projects in two categories, tools and libraries, respectively.

V.1. Tools

The tool projects provide a set of utilities to make working with blockchain networks easier. These tools range from performance measurement, on-demand deployment, and building a business network with existing business models. The following is the list of 4 Hyperledger tools:

  1. Hyperledger Caliper
  2. Hyperledger Cello
  3. Hyperledger Explorer
  4. Hyperledger Avalon

Hyperledger Caliper

Caliper is a benchmarking tool for measuring blockchain performance and is written in JavaScript. It utilizes indicators such as Transactions Per Second (TPS), transaction latency, and resource utilization. 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 in 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.

Hyperledger Cello

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. It also provides a real-time dashboard for blockchain statuses, system utilization, chain code performance, and the configuration of blockchains. It currently supports Hyperledger Fabric.

Hyperledger Explorer

Explorer provides a dashboard for peering into block details which are primarily written in JavaScript. Explorer can also be integrated with authentication platforms and supports the Hyperledger Sawtooth framework with its typescript-based, Angular-built iteration.

Hyperledger 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

V.2. Libraries

The next 4 items in our project list belong to Hyperledger libraries as follows:

  1. Hyperledger Aries
  2. Hyperledger Quilt
  3. Hyperledger Ursa
  4. Hyperledger Transact

Hyperledger Aries

Hyperledger Aries is infrastructure for blockchain-rooted, peer-to-peer interactions. It includes a shared cryptographic wallet (the secure storage tech, not a UI) for blockchain clients as well as a communications protocol for allowing off-ledger interaction between those clients.  This project consumes the cryptographic support provided by Hyperledger Ursa, to provide secure secret management and decentralized key management functionality.

Hyperledger Quilt

Quilt is the interoperability tool between ledger systems and is written in Java by implementing the Interledger Protocol (ILP) for atomic swaps. Quilt is an enterprise-grade implementation of the ILP, and provides libraries and reference implementations for the core Interledger components used for payment networks.

Hyperledger Ursa

Ursa is a shared cryptographic library that would enable people (and projects) to avoid duplicating other cryptographic work and hopefully increase security in the process. The library would be an opt-in repository for projects (and, potentially others) to place and use crypto.

Hyperledger Transact

Transact makes writing distributed ledger software easier by providing a shared software library that handles the execution of smart contracts, including all aspects of scheduling, transaction dispatch, and state management.

VI. Summary

In this article, we started by reviewing the evolution and phases of blockchain and moved on to discussing design philosophy, core components and architecture of Hyperledger ecosystem. In doing so, you understand how different versions or generations of blockchain have brought about the adoption that we nowadays witness from the blockchain community in both private and public sectors. You also learned what are 9 key components (Consensus Layer, Smart Contract Layer, communication layer, Data Store Abstraction, Crypto Abstraction, Identity Service, Policy Service, API, Interoperation) that are embedded in Hyperledger architecture for making it number one choice for building enterprise permissioned blockchain applications.

 

We also briefly reviewed all 16 projects (consists of 6 active projects and 10 others which are at the incubation stage) that are part of the Hyperledger ecosystem. We proceed with explaining all 16 projects’ unique advantages and various functionalities by categorizing them into 4 types: distributed ledger, libraries, tools and domain-specific projects.

In the next article, we continue our journey by expatiate upon Hyperledger Fabric architecture and components and prepare you for building Hyperledger Fabric applications on our future articles.

For more references, visit the below documentation links:

 

XIV. Resources

Free Webinars on Blockchain

Here is the list of our free webinars that are highly recommended:

 

Free Courses

Here is the list of our 10 free self-paced courses that are highly recommended:

 

Self-Paced Blockchain Courses

If you like to learn more about Hyperledger Fabric, Hyperledger Sawtooth, Ethereum or Corda, taking the following self-paced classes is highly recommended:

  1. Intro to Blockchain Technology
  2. Blockchain Management in Hyperledger for System Admins
  3. Hyperledger Fabric for Developers
  4. Intro to Blockchain Cybersecurity
  5. Learn Solidity Programming by Examples
  6. Introduction to Ethereum Blockchain Development
  7. Learn Blockchain Dev with Corda R3
  8. Intro to Hyperledger Sawtooth for System Admins

 

Live Blockchain Courses

If you want to master Hyperledger Fabric, Ethereum or Corda, taking the following live classes is highly recommended:

 

Articles and Tutorials on Blockchain Technology

If you like to learn more about blockchain technology and how it works, reading the following articles is highly recommended:

 

Articles and Tutorials on Ethereum and Solidity

If you like to learn more about blockchain development in Ethereum with Solidity, reading the following articles and tutorials is highly recommended:

 

Articles and Tutorials on Hyperledger Family

If you like to learn more about blockchain development with Hyperledger, reading the following articles and tutorials is highly recommended:

 

Articles and Tutorials on R3 Corda

If you like to learn more about blockchain development on Corda , reading the following articles and tutorials is highly recommended:

 

Articles and Tutorials on Other Blockchain Platforms

If you like to learn more about blockchain development in other platforms, reading the following articles and tutorials is highly recommended: