Hyperledger: Comparison
Please note this is a comparison between Version 1 by zeqi leng and Version 2 by Sirius Huang.

Internet of things (IoT) systems based on blockchain have significant shortcomings in terms of scalability, flexibility, robustness, and privacy. To address these issues, Hyperledger is considered as an ideal technology and attracted a lot of attention. In addition to having the general characteristics of blockchain, Hyperledger achieves new empowerment in four aspects: security, interoperability, consensus, and performance.

Hyperledger (or the Hyperledger project) is an umbrella project of open source blockchains and related tools, started in December 2015 by the Linux Foundation, to support the collaborative development of blockchain-based distributed ledgers.
  • hyperledger
  • blockchain

1. Introduction

Hyperledger is committed to developing an enterprise-grade standard blockchain. At the official conceptual level, Hyperledger is a “greenhouse” system, where all technology is developed by the community. It provides an open source and secure collaborative environment for users, developers, and vendors across all domains. As a result, Hyperledger encourages interoperability between participants in similar domains, each of whom communicates to obtain the necessary information. This effective collaboration greatly reduces the duplication of work for each participant, allowing participants to have more energy to incubate new ideas. To improve code quality, the Technical Steering Committee (TSC) regularly checks the community’s code and projects, and substandard code and projects are discarded. In addition, Hyperledger encourages the achievement of specialization [1], i.e., more people focus on fewer tasks and increase the level of expertise of the participants. Developing the specialization of the participants also helps to promote uniformity of intellectual property rights, and any participant contributing to the Hyperledger community does not have to worry about hidden legal issues.
A generic architecture for Hyperledger should have nine components: a consensus layer, a contract layer, a communication layer, a data storage module, an encryption module, an identity services module, a policy services module, application programming interfaces (APIs), and an interoperability module [2]. These components form a highly modular structure in which the failure of any one component does not affect the overall operation.
As one of the largest open source projects, Hyperledger currently has 18 top projects (including one that was phased out). These top projects provide key technologies for Hyperledger and enable Hyperledger to be widely used in various fields. On the technology side, Hyperledger covers areas such as cross-system authentication, permission control, multi-channel (multi-chain) platform, visualization interface, mobile application, benchmarking, encryption library, Ethernet client, and its business logic development. In terms of applications, Hyperledger is used in the mainstream fields of the internet of things, digital healthcare, supply chain traceability, finance, digital evidence, artificial intelligence, etc.
Hyperledger divides the current top projects into four categories, including distributed ledgers, domain specific, libraries, and tools. Each project contributed to Hyperledger requires regular maintenance by the developers, which means that in addition to maintaining the normal operation of the project, the developers also have to solve problems for members who want to participate in the project in a timely manner. TSC regularly reviews the maintenance status of each project and decides whether the project will move to the next stage. When a project is no longer recommended for use, it will be abandoned by the community after 6 months. However, the abandoned project information and part of the code remain in the community. Each project in Hyperledger must possess the five features of being modular, highly secure, interoperable, cryptocurrencyagnostic, and complete with APIs. Modular components are suitable for developing distributed solutions with different requirements, and high security ensures enterprise-grade blockchain implementation. Interoperability and rich APIs give large enterprise distributed networks easy information interaction.
In general, all projects in Hyperledger go through six phases (status): proposal, incubation, gradated (active), dormant, deprecated, and end of life. The status of each project is dynamic and is jointly determined by the maintainer of the project and the TSC with multiple reviews. At this stage, the top projects in Hyperledger have only two statuses, graduated and incubation. The projects in graduated status are the most active projects with the most members and the most contributed code. Due to constant updates, active projects provide a more mature technology and infrastructure for Hyperledger.  Based on the information provided on the official website, the following sections dissected the core architecture and innovative design of the project in graduated status.

2. Fabric

Fabric is the cornerstone of Hyperledger; its innovative design enables Hyperledger to be widely used in various fields [3]. Fabric pioneered the introduction of the authority mechanism, giving the possibility of confidential transactions and ledger isolation in various industries. Fabric’s architecture consists of membership services, certificate authorities (CA), nodes, peers, and four types of components. Membership services provide digital certificates for blockchain nodes, CAs provide identity certificates for all nodes in the network, which complete transactions with private and public keys, nodes consist of nodes that are allowed to join the network, and peers are roles that perform different tasks in the blockchain network.

3. Sawtooth

The innovative design of Sawtooth is to simplify the development process of the blockchain application by separating the central system from the application layer [4]. Each Sawtooth node consists of a fixed component validator, and a possible components transaction processor, REST (representational state transfer) API, and client [5]. In the Sawtooth network, the initial node sends broadcast packets to get nearby nodes, and neighboring nodes can join the network according to the rules and broadcast their neighbor’s one-hop-away node. As long as there is a response, the node can join the network.
Sawtooth architecture has five core components, including a peer-to-peer network, distributed log, state machine/smart contract logic layer, distributed state storage, and consensus algorithm. The peer-to-peer network allows nodes to communicate via TCP, including information about blocks, peers, etc. [6]. The Sawtooth network broadcasts transactions via gossip protocol. The distributed log includes an ordered list of transactions, which is sorted by nodes according to the consensus algorithm. Sawtooth extends the functionality of smart contracts by treating them as state machines or transaction processors. In the smart contract logic layer, Sawtooth uses radix Merkle. The consensus component provides a consensus interface that allows various consensus algorithms.

4. Iroha

Iroha also provides a distributed framework that is designed to feature privilege management, fault tolerance, and performance efficiency [7]. Compared to other platforms, Iroha requires authorization to read and write data in addition to the authorization required for nodes to join the network. Iroha allows rich built-in commands for simpler asset management, unlike other platforms that require predefined assets [8]. It is designed with a fault-tolerant consensus algorithm, Crash, which allows Iroha to have lower latency.
Iroha architecture has 11 components, including Torii, MST processor, peer communication service (PCS), ordering gate, ordering service, verified proposal creator (VPC), block creator, block consensus (YAC), synchronizer, Ametsuchi blockstore, and world state view (WSV) [9]. In a typical Iroha transaction, client-initiated transactions are received by Torii and forwarded to the MST processor, which typically has two tasks, including forwarding transactions to the PCS and receiving transaction messages (multiple signatures) from other peers. The ordering gate verifies the stateless transactions with other peers, and the ordering service in the peer creates a transaction proposal (each node contains an ordering service) and verifies that the stateless transaction passes the first verification. The VPC performs state verification of the transaction, and the block creator creates new blocks and sends them to the YAC to perform consensus. The YAC forwards the final message to multiple peers. The synchronizer is responsible for downloading blocks from the block store and adding the missing blocks from the peers to the peers. At this point, the Iroha network updates the WSV.

5. Indy

The innovative design of Indy lies in a decentralized identity system [10]. The core feature of this authentication is the self-sovereign identity [11]. This means that once an identity is established, it cannot be revoked, selected, or associated by any institution or person without the permission of the identity owner. There are only two types of nodes in the Indy network, including verification nodes (which are few in number) and observer nodes (which are many in number). Among them, authentication nodes are responsible for processing write requests and participating in consensus. Observer nodes are responsible for reading requests and have the opportunity to become verifying nodes depending on their reputation level. Indy can provide users with portable proof of identity and does not require centralized authentication by a third party.

6. Aries

As the only technology of the six active projects that is not a distributed ledger platform, Aries is a way to provide secure communications for decentralized identity management and verifiable credentials. Aries has four core components, including agents, DID communications, protocols, and key management [12]. Agents provide trusted agents for self-sovereign identity authentication. Specifically, trusted agents help people or organizations send bytes and store data directly. The user downloads or writes the appropriate agent according to the requirements of the agent, such as IoT agents, cloud agents, protocols, scale, and privacy requirements. DID communications is meant to provide information exchange for multiple trusted agents [13]. It is based on decentralized protocols, and its main paradigms are message-based, asynchronous (request–response messages), and simplex. Key management provides a distributed key management system that uses three types of keys, including master keys, key encryption keys, and data keys. The distributed key management system allows any identity owner to perform network connectivity, key exchange, and recovery without relying on any organization, free from the central failures of third-party organizations.
The emergence of Aries facilitates the implementation of decentralized authentication, and peer-to-peer certificate authentication will eradicate the surveillance economy. This authentication method is highly portable and applicable, allowing users to store their proof of employment, or other identification, in a wallet and decide which part of the information can be publicly queried.

7. Besu

Besu is an enterprise class Ethereum platform [14]. Besu has seven core modules, including Ethereum virtual machine (EVM), P2P network, storage, permissioning, privacy, user-facing API, and monitoring.
In terms of privacy, Besu ensures private interactions through Tessera nodes [15]. For example, if a private transaction is sent by Bob, this transaction must first be passed to Bob’s Tessera node and complete the information exchange with Alice’s Tessera node (the Tessera node involved in the transaction) before being passed to Alice. For better enterprise orientation, permissioning enables node permissions and account permissions so that only specific Storage will store the blockchain and world state, where world state includes account state, account storage, and code storage. Besu provides users with a monitoring interface to demonitor nodes and networks.
Besu supports two node types, including full nodes and archive nodes. Full nodes store only the current block state, ensuring the current up-to-date state. Archive nodes are responsible for storing all the historical states of the blocks since the creation of the world, in addition to the latest state. In addition, Besu provides three APIs for users, including JSON-RPC based on HTTP/WebSockets, RPC publish/subscribe based on WebRocket, and GraphQL based on HTTP.
Besu is compatible with the main Ethernet network and supports both public and private networks. It gives the possibility of building an enterprise class Ethernet platform.

1. History and Aims

In December 2015, the Linux Foundation announced the creation of the Hyperledger Project. The founding members of the project were announced in February 2016 and ten further members and the makeup of the governing board were announced March 29.[3] On May 19, Brian Behlendorf was appointed executive director of the project.[4] The objective of the project is to advance cross-industry collaboration by developing blockchains and distributed ledgers, with a particular focus on improving the performance and reliability of these systems (as compared to comparable cryptocurrency designs) so that they are capable of supporting global business transactions by major technological, financial and supply chain companies.[5] The project will integrate independent open protocols and standards by means of a framework for use-specific modules, including blockchains with their own consensus and storage routines, as well as services for identity, access control and smart contracts. Early on there was some confusion that Hyperledger would develop its own bitcoin-type cryptocurrency, but Behlendorf has unreservedly stated that the Hyperledger Project itself will never build its own cryptocurrency.[6] In early 2016, the project began accepting proposals for incubation of codebases and other technologies as core elements. One of the first proposals was for a codebase combining previous work by Digital Asset, Blockstream's libconsensus and IBM's OpenBlockchain.[7] This was later named Fabric.[8] In May, Intel's distributed ledger, named Sawtooth,[9] was incubated.[10] On 12 July 2017 the project announced its production-ready Hyperledger Fabric 1.0 and it started to gain popularity in the Initial coin offering market.[11] In July 2017, London Stock Exchange Group in a partnership with IBM announced that it will create a blockchain platform designed for digitally issuing shares of Italian companies with Hyperledger Fabric as the basis of the platform.[12] In August 2017, Oracle joined the Hyperledger consortium and announced its Blockchain Cloud Service offering.[13][14] In September 2017 the Royal Bank of Canada (RBC) started using Hyperledger for its US - Canada interbank settlements.[15]

2. Members and Governance

Early members of the initiative included blockchain ISVs, (Blockchain, ConsenSys, Digital Asset, R3, Onchain), well-known technology platform companies (Cisco, Fujitsu, Hitachi, IBM, Intel, NEC, NTT DATA, Red Hat, VMware), financial services firms (ABN AMRO, ANZ Bank, BNY Mellon, CLS Group, CME Group, the Depository Trust & Clearing Corporation (DTCC), Deutsche Börse Group, J.P. Morgan, State Street, SWIFT, Wells Fargo), business software companies like SAP, academic institutions (Cambridge Centre for Alternative Finance, Blockchain at Columbia, UCLA Blockchain Lab), systems integrators and others (Accenture, Calastone, Wipro, Credits, Guardtime, IntellectEU, Nxt Foundation, Symbiont). The governing board of the Hyperledger Project consists of twenty members chaired by Blythe Masters, (CEO of Digital Asset), and a twelve-member Technical Steering Committee chaired by Dan Middleton, Principal Engineer at Intel.

3. Hyperledger Frameworks

Hyperledger Burrow

Burrow[16] is a blockchain client including a built-to-specification Ethereum Virtual Machine. Contributed by Monax[17] and sponsored by Monax and Intel.[18]

Hyperledger Fabric

Hyperledger Fabric is a permissioned blockchain infrastructure, originally contributed by IBM[19] and Digital Asset, providing a modular architecture with a delineation of roles between the nodes in the infrastructure, execution of Smart Contracts (called "chaincode" in Fabric) and configurable consensus and membership services. A Fabric Network comprises "Peer nodes", which execute chaincode, access ledger data, endorse transactions and interface with applications. "Orderer nodes" which ensure the consistency of the blockchain and deliver the endorsed transactions to the peers of the network, and MSP services, generally implemented as a Certificate Authority, managing X.509 certificates which are used to authenticate member identity and roles.[20] Fabric is primarily aimed at integration projects, in which a Distributed Ledger Technology (DLT) is required, offering no user facing services other than an SDK for Node.js, Java and Go. Fabric supports chaincode in Go and JavaScript (via Hyperledger Composer, or natively since v1.1) out-of-the-box, and other languages such as Java by installing appropriate modules. It is therefore potentially more flexible than competitors that only support a closed Smart Contract language.

Hyperledger Iroha

Based on Hyperledger Fabric, with a focus on mobile applications. Contributed by Soramitsu.[21]

Hyperledger Sawtooth

Originally contributed by Intel, Sawtooth includes a dynamic consensus feature enabling hot swapping consensus algorithms in a running network. Among the consensus options is a novel consensus protocol known as "Proof of Elapsed Time," a lottery-design consensus protocol that optionally builds on trusted execution environments provided by Intel's Software Guard Extensions (SGX).[22] Sawtooth supports Ethereum smart contracts via "seth" (a Sawtooth transaction processor integrating the Hyperledger Burrow EVM).[23] In addition to Solidity support, Sawtooth includes SDKs for Python, Go, Javascript, Rust, Java, and C++ [24]

Hyperledger Indy

Indy[25] is a Hyperledger project for supporting independent identity on distributed ledgers. It provides tools, libraries, and reusable components for providing digital identities rooted on blockchains or other distributed ledgers. Contributed by the Sovrin Foundation.[26]

4. Hyperledger Tools

Hyperledger Caliper

Hyperledger Caliper is a blockchain benchmark tool and one of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Caliper allows users to measure the performance of a specific blockchain implementation with a set of predefined use cases. Hyperledger Caliper will produce reports containing a number of performance indicators, such as TPS (Transactions Per Second), transaction latency, resource utilisation etc. The intent is for Caliper results to be used by other Hyperledger projects as they build out their frameworks, and as a reference in supporting the choice of a blockchain implementation suitable for a user's specific needs. Hyperledger Caliper was initially contributed by developers from Huawei, Hyperchain, Oracle, Bitwise, Soramitsu, IBM and the Budapest University of Technology and Economics.[27]

Hyperledger Cello

Hyperledger Cello is a blockchain module toolkit and one of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Cello aims to bring the on-demand "as-a-service" deployment model to the blockchain ecosystem to reduce the effort required for creating, managing and terminating blockchains. It provides a multi-tenant chain service efficiently and automatically on top of various infrastructures, e.g., baremetal, virtual machine, and more container platforms. Hyperledger Cello was initially contributed by IBM, with sponsors from Soramitsu, Huawei and Intel.[28] Baohua Yang and Haitao Yue from IBM Research are committed part-time to developing and maintaining the project.

Hyperledger Composer

Hyperledger Composer is a set of collaboration tools for building blockchain business networks that make it simple and fast for business owners and developers to create smart contracts and blockchain applications to solve business problems. Built with JavaScript, leveraging modern tools including node.js, npm, CLI and popular editors, Composer offers business-centric abstractions as well as sample apps with easy to test devops processes to create robust blockchain solutions that drive alignment across business requirements with technical development.[29] Blockchain package management tooling contributed by IBM. Composer is a user-facing rapid prototyping tooling, running on top of Hyperledger Fabric, which allows the easy management of Assets (data stored on the blockchain), Participants (identity management, or member services) and Transactions (Chaincode, a.k.a. Smart Contracts, which operate on Assets on the behalf of a Participant). The resulting application can be exported as a package (a BNA file) which may be executed on a Hyperledger Fabric instance, with the support of a Node.js application (based on the Loopback application framework) and provide a REST interface to external applications. Composer provides a GUI user interface "Playground" for the creation of applications, and therefore represents an excellent starting point for Proof of Concept work.

Hyperledger Explorer

Hyperledger Explorer is a blockchain module and one of the Hyperledger projects hosted by The Linux Foundation. Designed to create a user-friendly Web application, Hyperledger Explorer can view, invoke, deploy or query blocks, transactions and associated data, network information (name, status, list of nodes), chain codes and transaction families, as well as any other relevant information stored in the ledger. Hyperledger Explorer was initially contributed by IBM, Intel and DTCC.[30]

Hyperledger Quilt

Hyperledger Quilt is a business blockchain tool and one of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Quilt offers interoperability between ledger systems by implementing the Interledger protocol (also known as ILP), which is primarily a payments protocol and is designed to transfer value across distributed ledgers and non-distributed ledgers. The Interledger protocol provides atomic swaps between ledgers (even non-blockchain or distributed ledgers) and a single account namespace for accounts within each ledger. With the addition of Quilt to Hyperledger, The Linux Foundation now hosts both the Java (Quilt) and JavaScript (Interledger.js) Interledger implementations. Hyperledger Quilt was initially contributed by NTT Data and Ripple.[31]