Hyperledger - Distributed Ledger for Enterprise

Hyperledger - Distributed Ledger for Enterprise

The Hyperledger project is the first open source distributed ledger platform for enterprise application scenarios.

With the support of the Linux Foundation, the Hyperledger project has attracted contributions from many technology and financial giants including IBM, Intel, Cisco, DAH, JPMorgan Chase, R3, etc., as well as active applications in banking, supply chain and other fields practice. Since its establishment more than a year ago, the Hyperledger community has also received extensive attention and rapid development, and currently has more than 140 corporate members.

This chapter will introduce the development history and community organization of the Hyperledger project, as well as the situation of many of its top open source projects, and will also demonstrate a number of efficient development tools provided by the open source community. Finally, it introduces to developers how to participate in the Hyperledger project and make code contributions.

1. Introduction to the Hyperledger Project

In December 2015, led by the Linux Foundation, the flagship organization in the open source world, 30 initial corporate members (including IBM, Accenture, Intel, JPMorgan, R3, DAH, DTCC, FUJITSU, HITACHI, SWIFT, Cisco, etc.) jointly announced the The Hyperledger joint project was established. The Hyperledger Project provides an open source reference implementation for transparent, open, and decentralized enterprise-level distributed ledger technology, and promotes the development of blockchain and distributed ledger-related protocols, specifications, and standards. The official website of the project is hyperledger.org.


write picture description here

Since its establishment, Hyperledger has received numerous open source technical contributions. IBM contributed more than 40,000 lines of existing Open Blockchain code, Digital Asset contributed resources related to enterprises and developers, R3 contributed a new financial transaction architecture, and Intel also contributed code related to distributed ledgers.

As a collaborative project, Hyperledger consists of sub-projects for different purposes and scenarios. Currently, there are eight top-level projects including Fabric, Sawtooth, Iroha, Blockchain Explorer, Cello, Indy, Composer, and Burrow. All projects comply with the Apache v2 license and agree to abide by the following basic principles:

  • Emphasis on modular design: including technical scenarios such as transactions, contracts, consistency, identity, and storage;

  • Pay attention to code readability: ensure that new functions and modules can be easily added and extended;

  • Sustainable evolution route: With the deepening of requirements and more application scenarios, new projects are continuously added and evolved.

The corporate membership and technology projects of the Hyperledger project are developing rapidly, as shown in Figure 8-1.


write picture description here
Figure 8-1 The rapid growth of the Hyperledger project

The Hyperledger community currently has more than 140 members of world-renowned companies and institutions (most of them are leaders in their respective industries), including more than 30 companies from China, such as: Aiyishurong Technology Co., Ltd. (joined on 2016.05.19) ), Onchain (joined on 2016.06.22), Belink Information Technology Co., Ltd. (joined on 2016.06.22), BitSE (joined on 2016.06.22), Bubi (joined on 2016.07.27), Sany Heavy Industry (2016.08. 30), Wanda Technology (2016.09.08), Huawei (2016.10.24), etc.

If the digital currency represented by Bitcoin provides a prototype of blockchain technology applications, and the smart contract platform represented by Ethereum extends the functions of blockchain technology, then the Hyperledger project that further introduces permission control and security guarantees It has opened up a new field of blockchain technology. For the first time, Hyperledger introduced blockchain technology into the application scenario of distributed consortium ledger, which laid a solid foundation for building an efficient business network based on blockchain technology in the future.

The emergence of the Hyperledger project actually announced that blockchain technology is not only limited to a single application scenario, nor is it limited to a completely open public chain model. The blockchain technology has been officially recognized by the mainstream enterprise market and adopted in practice. . At the same time, many innovative designs and concepts have been proposed and implemented in the Hyperledger project, including complete authority and review management, fine-grained privacy protection, and a pluggable and extensible implementation framework. development will have far-reaching effects.

Tip: The Apache v2 license is a well-known business-friendly open source agreement that encourages code sharing, respects the original author's copyright, and allows modification and redistribution of the code (as open source or commercial software).

The organizational structure of the community

Every successful open source project is inseparable from a healthy, thriving community. Since its establishment, the Hyperledger community has learned from the experience of many open source community organizations, and has formed an application-oriented architecture with technology development as the main body.

The project development work of the Hyperledger community is guided by the Technical Steering Committee (TSC), whose first chairman is CTO Chris Ferris from IBM's Open Source Technology Department; the management committee is chaired by Blythe Masters, CEO of Digital Asset Holdings. In addition, since May 2016, Brian Behlendorf, founder of the Apache Foundation, has served as the first Executive Director of the Hyperledger project.

The community attaches great importance to the application landing and development in the Greater China region. In December 2016, the "Greater China Technology Working Group" was formally established to promote the construction of local community organizations and related technology development and application work.

2.1. Basic structure

The Hyperledger community is currently dominated by a troika-led structure (see Figure 8-2):


write picture description here
Figure 8-2 Hyperledger community organization structure

  • Technical Steering Committee (TSC): Responsible for technology-related work, there are several working groups under it, which specifically drive the development of each project and direction;

  • Governing Board: Responsible for the overall decision-making of the community organization, and representatives elected by the Hyperledger members;

  • The Linux Foundation (LF): Responsible for fund management and assist the Hyperledger community to develop under the support of the Linux Foundation.

2.2. Greater China Technical Working Group

With the popularization of open source spirit and open source culture in China, more and more enterprises and organizations have begun to realize the importance of building a healthy ecosystem together, and are willing to make certain contributions to the open source cause.

The Linux Foundation and the Hyperledger community attach great importance to the application and implementation of the project in Greater China, and hope to provide convenience for Chinese technical personnel to contribute to the open source community. In this context, Brian Behlendorf, the first executive director of Hyperledger, proposed the establishment of a "Technical Working Group in Greater China" (TWG-China) on December 1, 2016, which was unanimously supported and approved by TSC members. The Wiki homepage address of the working group is http://wiki.hyperledger.org/groups/tsc/technical-working-group-china .

The main responsibilities of the technical working group include:

  • Lead and guide technology-related activities in Greater China, including contributing code, guide documents, project proposals, etc.;

  • Promote technology-related exchanges, promote cooperation between member companies and the implementation of practical cases;
    promote technical exchanges among community developers through mailing lists, RocketChat, forums, etc.;

  • Assist in hosting community events, including Meetups, hackathons, Hackfests, tech sharing, training, etc.

Currently, the working group consists of dozens of technical experts from Hyperledger member companies such as IBM, Wanda, and Huawei, and is supported by many volunteers in the community. The content of each meeting and activity of the working group is open, and relevant participation methods can be found on the Wiki homepage.

3. Introduction of top projects


write picture description here

All Hyperledger project code is hosted on Gerrit and GitHub (read-only, automatically synced from Gerrit).

At present, it mainly includes the following top-level projects:

  • Fabric: Including Fabric, Fabric CA, Fabric SDK (including languages ​​such as Node.Js, Python and Java) and fabric-api, etc., the target is the basic core platform of blockchain, supports new consensus mechanisms such as PBFT, and supports rights management, Originally initiated by IBM and DAH;

  • Sawtooth: including arcade, core, dev-tools, validator, mktplace, etc. It is a blockchain platform mainly initiated and contributed by Intel, and supports a new consensus mechanism Proof of Elapsed Time (PoET) based on hardware chips;

  • Iroha: Ledger platform project, implemented based on C++, with many features for Web and Mobile, mainly initiated and contributed by Soramitsu;

  • Blockchain Explorer: Provides a Web operation interface, through which you can quickly view and query the status (number of blocks, transaction history) of the bound blockchain, etc., developed and supported by DTCC, IBM, Intel, etc.;

  • Cello: Provides deployment and runtime management capabilities for blockchain platforms. Using Cello, administrators can easily deploy and manage multiple blockchains; application developers don't need to care about how to build and maintain the blockchain, initiated by the IBM team;

  • Indy: Provides a digital identity management mechanism based on distributed ledger technology, initiated by the Sovrin Foundation;

  • Composer: Provides high-level language support for chaincode development, automatically generates chaincodes, etc., initiated and maintained by the IBM team;

  • Burrow: Provides support for the Ethereum virtual machine, and implements a permissioned blockchain platform that supports efficient transactions, initiated and supported by Monax.

These top-level projects work together to form a complete ecosystem, as shown in Figure 8-3.


write picture description here
Figure 8-3 Top-level project

All projects generally need to go through five life cycles: Proposal, Incubation, Active, Deprecated, and End of Life.

Any project wishing to join the Hyperledger community must first have a proposal written by the sponsor. Describe important information such as the purpose, scope and development plan of the project, and the technical committee will conduct a review and vote. After the review, it can enter the community for incubation. After the project is mature, it can apply to enter the active state, release the official version, and finally withdraw from the community and end.

3.1. Fabric project

Fabric is the first top-level project to join the Hyperledger project. Fabric was submitted to the community by IBM, DAH and other companies at the end of 2015. The project is on GitHub at http://github.com/hyperledger/fabric .

The project is positioned as an enterprise-oriented distributed ledger platform, innovatively introduces permission management support, and is designed to be pluggable and extensible. It is the first open source project for consortium chain scenarios.

Fabric is implemented in Go language, and the number of submissions has exceeded 5,000, and the core code exceeds 80,000 lines.

The Fabric project is currently active and has released the official version 1.0. It also includes Fabric CA, Fabric SDK and other related sub-projects.

3.2. Sawtooth Project The
Sawtooth project was submitted to the community by Intel and other companies in April 2016. The core code is on GitHub at http://github.com/hyperledger/sawtooth-core .


write picture description here

The positioning of the project is also a distributed ledger platform, which is implemented based on the Python language and has been submitted more than 3,000 times.

The Sawtooth project uses the exclusive functions of Intel chips to realize the low-power Proof of Elasped Time (PoET) consensus mechanism, and supports the Transaction Family, which is convenient for users to use it to quickly develop applications.

3.3. Iroha Project

The Iroha project was submitted to the community in October 2016 by businesses such as Soramitsu. The core code is on GitHub at http://github.com/hyperledger/iroha .


write picture description here

The project is positioned as a distributed ledger platform framework, implemented based on C++ language, and has been submitted more than 2,000 times.

The Iroha project is similar to Fabric in design, and provides a C++-based blockchain development environment, taking into account some of the needs of mobile and web.

3.4. Blockchain Explorer Project


write picture description here

The Blockchain Explorer project was submitted to the community in August 2016 by Intel, DTCC, IBM and other companies. The core code is on GitHub at http://github.com/hyperledger/blockchain-explorer .

The positioning of the project is the browser of the blockchain platform, which is implemented based on the Node.js language and provides a Web operation interface. Users can use it to quickly view the operation information of the underlying blockchain platform, such as the number of blocks, transaction status, network status, etc.

3.5. Cello project


write picture description here

The IBM technical team of the Cello project contributed to the community in January 2017. The repository addresses on GitHub are http://github.com/hyperledger/cello (core code) and http://github.com/hyperledger/cello-analytics (focusing on data analysis).

The project is positioned as a blockchain management platform, while providing blockchain-as-a-Service (Blockchain-as-a-Service) to achieve rapid deployment of the blockchain environment and runtime management of the blockchain platform. Using Cello, blockchain application personnel can focus on application development without caring about the management and maintenance of the underlying platform.

The main development languages ​​of Cello are Python and JavaScript, and the underlying support includes bare metal, virtual machine, container cloud (including Swarm, Kubernetes) and other infrastructures.

3.6. Indy project The
Indy project is led by the Sovrin Foundation for development, and is committed to building a digital central management platform based on blockchain and distributed ledger technology. The platform supports decentralization, supports cross-blockchain and cross-application operations, and enables global identity management. The Indy project officially joined the Hyperledger project at the end of March 2017.

The project is mainly developed by the Python language, including service nodes, clients and general libraries, etc., and has more than 1000 submissions so far.

3.7. Composer project The
Composer project was contributed to the community by the IBM team at the end of March 2017, trying to provide a development assistance framework for Hyperledger Fabric. Using Composer, developers can use JavaScript language to define application logic, plus models and access rules such as resources, participants, transactions, etc., to generate chaincode supported by Hyperledger Fabric.

The project is mainly developed by NodeJs language and has more than 4000 commits so far.

3.8. Burrow project The
Burrow project was submitted to the community in April 2017 by companies such as Monax and Intel. The core code is on GitHub at http://github.com/hyperledger/burrow .

The predecessor of this project is eris-db, which is implemented based on Go language and has been submitted more than 1000 times.

The Burrow project provides a smart contract blockchain platform that supports the Ethereum virtual machine, and supports the Proof-of-Stake consensus mechanism and authority management, which can provide fast blockchain transactions.

Fourth, the development of necessary tools

If a worker wants to do a good job, he must first sharpen his tools. The open source community provides a large number of easy-to-use development collaboration tools. Mastering these tools is very important for efficient development. Some of the tools are described below.

4.1、Linux Foundation ID

The Hyperledger project is supported by the Linux Foundation and adopts the Linux Foundation ID (LF ID) as a community-unique ID.

Applying for an individual ID is completely free. You can go to http://identity.linuxfoundation.org/ to register.

With this ID, users can access development tools in communities including Jira, Gerrit, and RocketChat.

4.2, Jira - task and progress management


write picture description here

Jira is a tracking platform for task management and event tracking developed by Atlassian. It provides a Web interface and is very convenient to use.

The community uses jira.hyperledger.org as the entry point for all project development plans and task tracking, and you can log in with the LF ID.

After logging in, you can view items related to a project through the Project menu at the top, and you can also use the Create button to quickly create items (commonly include tasks, bugs, improvements, etc.).

After the user opens the item, he can assign it to himself through the assign button to receive the item.

In general, matters are divided into To Do (to be processed), In Process (in process), In Review (patch submitted, pending review), Done (completed) and other states, which are maintained by the owner of the matter. .

4.3, Gerrit - code repository and review management


write picture description here

Gerrit is an open source project responsible for code collaboration. Many companies and teams use it to manage code warehouses and review code. Gerrit is very convenient to use and provides a Web-based operation interface.

The community adopts gerrit.hyperledger.org as the official code repository, and synchronizes the code to github.com/hyperledger as a read-only mirror in real time.

After logging in with their own LF ID, users can view all project information, as well as patch and other information submitted by themselves. The modification history will be automatically tracked on the page of each patch. Reviewers can review the page through the page. If they agree to submit, they can add points. If they find a problem, they will indicate the problem and deduct points.

4.4. RocketChat-Online Communication


write picture description here

In addition to the mailing list, the community also provides developers with an online communication channel - RocketChat.

RocketChat is a very powerful online communication software that supports multimedia messages, attachments, reminders, search and other functions. Although it is an open source software, its experience is comparable to the commercial software Slack. Support web, desktop, mobile and other clients.

The community uses chat.hyperledger.org as a server. The simplest, users can access the website by logging in directly with their LF ID. You can then add channels of interest yourself.

Users can also download the RocketChat client and add chat.hyperledger.org as a server to access channels in the community and communicate with developers online.

Each project generally has a channel with the same name as the main channel, such as #Fabric, #Cello, etc. At the same time, each working group often has its own channel. For example, the channel of the Greater China Technical Working Group is #twg-china.

V. Summary

The Hyperledger Project is an enterprise-oriented distributed ledger platform supported by the Linux Foundation in recent years. It is also a historically significant cooperation between the technical forces of the open source community and the industrial world, and jointly provides a technical reference for the distributed ledger technology in terms of code implementation, protocols and specifications.

Since its establishment more than a year ago, the Hyperledger community has attracted a lot of attention from various industries at home and abroad, and has grown from an initial project with 30 members to nearly 10 top projects today with over 100 corporate members. These projects and leading companies in various industries have jointly constructed a complete enterprise-level blockchain ecosystem. At the same time, many innovative technologies and designs proposed in the Hyperledger project have been referenced and recognized by the corporate and open source communities.

The Hyperledger community attaches great importance to technology research and development, but also to the implementation of applications. At present, based on the related technologies of Hyperledger, a large number of enterprise application cases have appeared. These technical cases have brought a lot of reference for more enterprises to try to use blockchain technology to improve business efficiency.

Excerpted from: Blockchain Principles, Design and Applications

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325390578&siteId=291194637