Hyperledger was founded by Linux Foundation in 2015 to develop blockchain technology. Hyperledger Fabric project is being developed with the active involvement of IBM company, which contributed most of the code from its own developments within IBM Blockchain.
Hyperledger Fabric is a platform (written in GO programming language) for creating distributed data storage systems based on a modular architecture that provides a high degree of confidentiality, fault tolerance, flexibility and scalability.
Hyperledger Fabric should be the starting point for development of corporate blockchain solutions that will be created on the basis of tested, open source code.
At the core of Hyperledger is the expectation that soon there will be a lot of blockchain networks, each of which will solve its own problem. Despite the high level of independence, Hyperledger assumes the availability of address communication, which will allow transactions of one network to detect and use transactions and chain codes (smart contracts) of other networks.
Hyperledger Fabric differs from other blockchain systems in that it is “private and controlled”. Unlike open systems that allow unidentified individuals to participate in the network (for example, PoW consensus building mechanism in Bitcoin), Hyperledger Fabric blockchain participants have to register and receive a certificate. In the future, the level of access to individual blockchain structures can be configured by analyzing identifiers. For example, individual groups of members can create channels that will be a separate transaction register that is accessible only to them.
Hyperledger Fabric does not have its own token. Without creating their own coin, developers are trying to avoid political and legal difficulties that may arise from the need to maintain a stable currency.
However, it is possible to develop own currency or digital token on the base of Fabric blockchain, using chain codes.
In Hyperledger Fabric, there is an Ordering Service, consisting of a specific set of service nodes (members) of the network that collect transactions into blocks. Service nodes exist independently of the rest members of the network. This service is a common connection for the entire blockchain and contains cryptographic identification information associated with each member of the blockchain. Hyperledger Fabric modular architecture provides the ability to select the type of service that will best meet the needs of each particular blockchain. The choice of the type of service, thereafter, is the choice of the type of consensus building mechanism.
The main consensus building mechanism in Hyperledger Fabric is Practical Byzantine fault tolerance (PBFT) algorithm. PBFT is a voting-based mechanism. This algorithm was proposed in 1999 by a group of researchers from the Massachusetts Institute. The advantage of PBFT algorithm is its resistance to two main classes of functioning errors of distributed systems: a complete component failure and a Byzantine failure. The first class of errors includes errors related to the unavailability of one of the components of the distributed system (for example, the node has stopped working). Byzantine failures are characterized by the fact that the node continues to work, but at the same time it can do it incorrectly, giving out false information. The second class of errors is more difficult to recognize, but, as mentioned above, PBFT algorithm is resistant to it. Also, BFT algorithms differ in that the result of their work is always the final state of the system, there are no cases of uncertainty.
In distributed systems, the task of Byzantine generals is the task of consensus in the network of unreliable nodes. It sounds like this: the task of interaction of several remote nodes, which received a message from one control center. Some nodes may be compromised, but the right decision has to be made. PBFT algorithm works under the assumption that (n-1)/3 nodes may be compromised.
In simple terms, PBFT algorithm can be described as follows: each node publishes a key. Any message passing through the node is signed by it for verification. Then the message is sent again to other nodes and is being tested. After a sufficient number of identical responses have been reached, the transaction is considered valid. However, it must be considered that the more nodes are involved in the algorithm, the longer it will take to reach consensus. A detailed description of the algorithm (the original document) in English is available at http://pmg.csail.mit.edu/papers/osdi99.pdf
The project documentation also mentions a mechanism based on Kafka Apache cluster with Zookeeper service, which also applies to open voting mechanisms. Kafka is a hybrid of distributed database and message queue. Zookeeper ensemble is a distributed configuration and synchronization service.
In Kafka cluster, service nodes form an ordered invariable sequence of transaction records that are constantly added and at the right time (depending on the settings) these transactions are formed into blocks.
Documentation states that the use of such consensus building mechanism is suitable for those who need high system performance and, at the same time, for those to whom Byzantine failure is insignificant. Kafka system is resistant to fault tolerance, but not resistant to Byzantine failure.
A detailed description of the mechanism and ways to solve possible difficulties are presented in the official document:
https://docs.google.com/document/d/1vNMaM7XhOlu9tB_10dKnlrhy5d7b1u8lSY8a-kVjCO4/edit
Another, simplest, consensus building mechanism is SOLO: one node serves all clients. Consensus is not required because there is a “central government”. However, this is more of a test specification.
Hyperledger Fabric is a Linux Foundation project. Linux Foundation is a non-profit organization founded in 2007 through the merge of Open Source Development Labs and Free Standards Group. The organization’s goal is promotion and development of resources and open source services. Linux Foundation consists of large companies that annually allocate funds for projects development.
For Hyperledger project participants, there are regulations that specify the nuances associated with the project’s mission, code licensing, membership, voting system, budget allocation, etc.
The open source code of the project is available under Apache License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0). Any code additions must also be accompanied by “Developer Certificate of Origin sign-off” (http://developercertificate.org). All project documentation is provided in accordance with “Creative Commons Attribution 4.0 International License” (http://creativecommons.org/licenses/by/4.0/). If, in accordance with the mission of the project, it becomes necessary to use a code with another license, the governors board may vote on this issue, as an exception: an exception can be made only when ⅔ votes are reached. Also, all participants are required to follow Linux Foundation antitrust policy (http://www.linuxfoundation.org/antitrust-policy).
Another point to pay attention — the absence of own Hyperledger Fabric token. As mentioned above, this decision was made based on the ambiguity of the legal status of digital tokens. Thus, there can not be claims from this side.
Hyperledger Fabric consists of two main components: world state and transaction log. World state describes the state of the network at a given time — it is the network database. Transaction log records all transactions that resulted in the current state of the network — it is the update history. Each participant has a copy of database of each Hyperledger Fabric network to which it belongs. An interesting possibility is to perform special requests, like SQL requests, to the database for effective network auditing and resolution of controversial issues.
To make the blockchain controlled, Hyperledger Fabric provides a user identification service that verifies the authenticity of network members and assigns a public key to each of them. Having a public key allows to create cryptographic certificates connected with organizations, network components, users, or client applications. Access lists can be configured in the network, clarifying capabilities of each specific user. For example, a user may use existing chain codes, but cannot create a new one. The idea is that the users know each other — identification, but do not know who does what — privacy.
In Hyperledger Fabric, blockchain members are divided into several categories:
This separation of network roles provides a kind of parallelism in the work of the blockchain and makes its work process more efficient.
Chain code is a program written in GO, Java, that provides rules for reading and modifying assets or other information components of database. They can be called business logic agreed by network members; they can be considered as smart contracts. In the network architecture, chain codes work on the basis of special containers.
Transactions in Hyperledger Fabric are divided into two types:
Hyperledger Fabric supports networks in which confidentiality is a key requirement, which is especially important for B2B networks (business to business). This is done through special private channels: limited messaging paths that can be used by certain subgroups of participants. Hyperledger Fabric channels are also called subnets. All data about the made transactions and channel members is not available to other users on the network who do not have access to this private channel. Each channel is defined by the following parameters:
Since Hyperledger Fabric is more focused on the corporate segment, the ability to create channels within the overall blockchain will allow to effectively distribute functionality between the participants.
Hyperledger Fabric makes possible interworking of almost any assets with a cash equivalent, from products and cars to currency futures. An asset can be either tangible (real estate) or intangible (contracts). In the network, an asset presents a key-value whose state changes are recorded as transactions in the accounting system.
Consensus building mechanism — 5 points out of 5
Blockchain (architecture) — 7 points out of 7
Licensing and legal aspects — 2 points out of 2.
The outlook is positive. Extensive possibilities of architecture assembling for specific tasks, innovative idea of channels with privacy settings, demanded in corporate use.
On July 31, 2017, Fujitsu company (one of Hyperledger participants) announced the development of technology that improves performance of Hyperledger Fabric v0.6.1 network by about 2.7 times. Using this technology, performance reached 1350 transactions per second (TPS 1350). Because of this, in terms of performance, Hyperledger Fabric has become applicable to online transaction systems that require more than 1000 transactions per second. Now Fujitsu continues to research and develop technologies and adapts it to the latest version of Hyperledger Fabric. Fabric developers additionally explore development in consensus building mechanisms that can also improve performance.
Project documentation emphasizes that Hyperledger Fabric architecture implies the division of blockchain participants into three categories mentioned above: clients, peers, orderers. Due to this division, a parallelization effect occurs when endorser peers are orthogonal to the oderers nodes.
Transaction order can be divided into several stages:
Since only signatures and read and write sets are transmitted over the network, and the transaction process is split, scalability and performance are optimized.
Using PBFT consensus algorithm (which is the main consensus building mechanism), fault tolerance = (n-1)/3 is achieved for a system consisting of n nodes. The system is resistant to complete component failures (the node does not work), as well as to Byzantine failures (the node does not work correctly). Also PBFT-based systems stay unchanged: after final confirmation, the transaction cannot be canceled.
The principal difference between Hyperledger Fabric networks and other blockchains is that they are permissioned. In order for a user to become a member of the network and, thereafter, to have the right to make changes to the blockchain, his candidacy must be “approved by the central authority”. Special mechanisms (Certificate Authority, Membership Service Providers) verify the “access levels” of users by checking certificates and identifiers. Thus, the probability of security breach by a random person is minimized. On the other hand, network owners should understand, that because of this, the responsibility of control falls on them to some degree. From a technical point of view, BFT consensus building mechanism is well studied and reliable (despite this, the developers have declared a renewal of research on BFT protocols). So a comparison of these two aspects should have a good result.
A special framework called Error handling framework, that makes it easier to track and recognize errors that occur, has been created for developers of blockchains.
CA is a modular component for managing the network identifiers of all member organizations and their users. It is used to register a network member and to issue certificates. With the help of certificates, users will be able to “sign” actions in the blockchain. Certificates are divided into two types:
MSP is a component that abstracts cryptographic mechanisms and protocols which underlie user authentication and certificate validation. It determines user identities and verifies certificates. Hyperledger Fabric blockchain can be managed by one or more MSPs. For example, an organization can customize its MSP for each unit: either for management independence or for confidentiality reasons. In this case, the network participant will be able to identify only those nodes that belong to its unit, and not the entire organization. A reverse situation is also possible: several organizations use the same MSP. Such architecture is possible in the case of organizations consortium. Also the possibility for determining the type of personality by its identifier is implemented. With its help the network members can be divided according to the type of functionality: full clients, customers, etc.
HFC SDK allows developers to create applications that interact with blockchain. With their help, it is easier to control the operation of channels and chain codes. Hyperledger Fabric version 1.0 supports SDK in Java and Node.js programming languages .
SDK provides the following functions:
In Hyperledger White Paper it is noted that, despite the large number of blockchain networks and their level of independence, Hyperledger needs an address system that will allow transactions from one network to interact with transactions from another network.
It is not completely clear what is meant: interaction exclusively with blockchains based on Hyperledger Fabric or with other systems. Hyperledger Fabric documentation on the official website does not provide mechanisms for such address communication, but at the moment it does not contain information on all sections.
Thus, there should be connection between network blockchains, but it is difficult to speak about the connection with “outside world” yet.
It should be noted that on August 22, 2017, Hyperledger announced the launch of a new technology — Sawtooth Ethereum, which provides integration of their other project — Hyperledger Burrow with Ethereum Virtual Machine. Hyperledger Burrow has long been positioned as a mechanism that will help EVM interact with other Hyperledger projects, so the work on integration with other large projects is really underway.
Hyperledger has its own Wikipedia, which has a section dedicated to the development of different use cases for Hyperledger projects, including Fabric. (https://wiki.hyperledger.org/groups/requirements/use-case-inventory#pre-wiki_document_history). The section is in active work and each scenario has its own development level status.
Business cases are divided into categories, each of which contains scenarios for use in different degrees of description completeness.
Among them are:
Hyperledger Fabric is provided with very detailed documentation designed for blockchain developers based on Fabric. Each component of the network is accompanied by a description of its installation, etc.
Hyperledger Composer should be separately noted (https://composer-playground.mybluemix.net/login). It is a framework for developing applications based on Fabric blockchains. Composer is designed to simplify the development and launch of blockchain applications for beginners and those who have not previously dealt with blockchain development and Fabric-based development.
The first version of the platform was Hyperledger Fabric v0.6.0. It was released in the fall of 2016. After that, the company continued to develop, adding new mechanisms at each stage, gradually approaching the final version.
On July 1, 2017 the first production version — Hyperledger Fabric 1.0 was launched.
Unlike the previous ones, it has already implemented SBFT Simplified BFT consensus building mechanism — a PBFT-based mechanism. The developers announced that the study and development of PBFT continues to improve scalability and performance. One of the key areas for further development is integration of Fabric with other Hyperledger projects.
Github of the project contains instructions for upgrading to a new version of the platform for those who already have experience based on previous versions.
On November 2, 2017 a preview version of Hyperledger Fabric v1.1.0-preview became available (https://www.hyperledger.org/blog/2017/11/02/hyperledger-fabric-v1-1-0-preview-is-now-available). Among the innovations are the possibility to create chain codes using Node.js, simplifying the possibility to customize configuration of organization, the expansion of data encryption and smart contracts, access control based on attributes and others. The company notes that it is not yet ready for a full release of this version, but would like to hear early community feedback on the work of the new functionality.
The full release of this version of Hyperledger Fabric v1.1.0-alpha is scheduled for January 31, 2018.
Performance and scalability — 2 points out of 2
Built-in mechanisms and functions — 3 points out of 3
Product — 4 points out of 4 (the first production version is already available, but the development activity of the next versions is not reduced)
Integration options — 1 point out of 1.
The outlook is positive. Blockchain built-in functions related to user access control and their identification solve current problems of corporate systems. The presence of the first production version and the high activity of the development of the following versions, combined with a large number of well-known projects that intend to implement Hyperledger Fabric, do not doubt the successful expansion of the use of blockchain.
Hyperledger has a common White Paper for all projects, which describes the key points necessary for successful implementation in business industry.
https://docs.google.com/document/d/1Z4M_qwILLRehPbVRUsJ3OF8Iir-gqS-ZYe7W-LE9gnE/pub
Hyperledger Fabric platform is accompanied by very detailed official documentation covering all the features of the platform. https://hyperledger-fabric.readthedocs.io/en/latest/
Project documentation stands out with the presence of a large number of tutorials for blockchain developers based on Fabric. These include tutorials on creating a network, developing applications, writing chain codes, etc. All tutorials are provided with excerpts from the code and examples of what the developer will see on his screen after performing certain operations. Such detailed documentation should work towards the active and successful implementation of Hyperledger Fabric technology.
Github of the project also has readme files with a detailed description of all the steps and nuances of using embedded mechanisms. In general, the team‘s activity on github is high and stable.
The project doesn’t have Road Map in its pure form.
There even appeared a post on the official website on this topic
(https://hyperledger.org/blog/2017/11/28/update-on-the-hyperledger-fabric-1-1-roadmap),
which explains what the team wants so that their work plans regarding the next version are transparent. All information is collected on the project Wiki:
https://wiki.hyperledger.org/projects/fabric.
Also, the work activity can be monitored at JIRA:
https://jira.hyperledger.org/secure/Dashboard.jspa?selectPageId=10104,
where the statistics of the project development are collected.
White Paper — 5 points out of 5.
Road Map — 3 points out of 5 (the project does not have a Road Map in its usual form, there is no clear time plan, but there are other tools to follow the progress of development).
The outlook is positive. The project documentation updates in accordance with the addition of new functionality, a large number of tutorials are provided for developers. Despite the lack of a Road Map, it is possible to use services with detailed statistics covering different aspects of the project.
Hyperledger was founded in 2015 by Linux Foundation.
Management team structure is presented on the official website: https://www.hyperledger.org/about/leadership
Management team has extensive competencies in IT, banking, consulting, legal, marketing, etc. Each representative has experience in leading companies in the industry.
Separately represented a committee that manages technical issues. The committee consists of 11 people with impressive experience and reputation in the technical field. Representatives of the committee have, among other things, experience in specialized fields such as cryptography, distributed systems architecture, etc.
Hyperledger consortium includes more than 130 leading companies, and the list of participants is constantly updated with new members.
Premium participants, whose members are the part of Hyperledger governing board include:
The main participants include another 120 companies, such as Oracle, Nokia, Sberbank, Samsung, Paxos, Huawei, Deloitte and others.
Premium and main members of the consortium must be active members of Linux Foundation.
Investing in development within Hyperledger is made by consortium members who are premium or main members.
Another category of consortium members is Associate Member category. It includes non-profit organizations, open source projects and government agencies. Joining members of this category requires approval by governing board with the establishment of criteria for joining.
Separately, Hyperledger Fabric documentation contains a list of people — maintenance specialists with their email addresses and nicknames on Gerrit, GitHub, Rocketchat.
http://hyperledger-fabric.readthedocs.io/en/latest/MAINTAINERS.html
The number of the team — 2 points out of 2.
Team structure — 3 points out of 3.
Team competencies — 3 points out of 3
Affiliated persons — 2 points out of 2.
The outlook is positive. Work on the project is conducted by top representatives of the industry. New members join the consortium, which should contribute to its development.
Blockchain platforms with smart contracts, such as Ethereum, Corda, NEM, etc., can be considered as the project's competitors.
Ethereum is a public blockchain with smart contracts, on the basis of which any applications can operate without being connected to a specific industry. Smart contracts in Ethereum should be written in a special Solidity programming language, while in Fabric and Corda smart contracts can be written in popular Java language.
R3 banking consortium is working on Corda project, functionality and architecture of the platform are developed specifically for financial industry. Corda is intended for private use and there is no native token in it, as well as in Fabric.
On NEM blockchain platform smart contracts can also be created, however, they differ in that they are executed outside the blockchain. NEM also has a private blockchain version — Mijin. Another popular project is a blockchain platform with smart contracts — Cardano, but it is still under development.
The unique difference of Hyperledger Fabric is a modular architecture that can be expanded and configured depending on the scope of application and the tasks to be solved. Fabric also has a customizable consensus building mechanism. An important Fabric feature is the creation of private channels that certain members have access to. The private nature of access to Fabric and its architecture provide good scalability and custom privacy, making it an almost universal platform for business.
Direct competitors — 4 points out of 4.
Industry competitors — 2 points out of 4 (high competition).
Project monitoring of competition — 0 points out of 2 (absent).
The outlook is positive. Despite the high competition in general among blockchain platforms with smart contracts, Hyperledger Fabric stands out with a modular architecture and a wide variation in setting all parameters.
The project's popularity is rapidly growing due to the fact that in July 2017 the first “production” version of Hyperledger Fabric was released and a number of large companies announced the development of blockchain solutions based on it.
The project is often mentioned in various publications related to blockchain technologies. And it is famous mainly due to the cooperation with large corporations. Since Hyperledger Fabric is, in fact, a framework for creating corporate blockchain solutions, there is little interest for it from private individuals and is limited to theoretical curiosity rather than practical use, since there is no possibility for private investment, no token and accordingly, there is no interest from crypto traders.
Social networks activity, in confirmation of the above, is quite low:
At the moment, many projects have announced their intention to develop systems based on Hyperledger Fabric. Among these projects are:
The new platform should be built in such a way as to allow organizations of any scale to freely use it anywhere in the world to make transactions for all types of trade. Batavia should allow various organizations to build cross-border trading networks and monitor all phases of trading operations.
(http://finance.liga.net/cryptoeconomics/2017/9/28/news/54910.htm)
New projects are constantly being added, since Hyperledger Fabric is the main blockchain technology for corporations.
The team includes well-known people in IT industry, such as Brian Behlendorf, who was the main developer of Apache web server; Arnaud Le Hors — IBM developer who was an editor of several key web specifications, including HTML and DOM, and participated in open-source projects such as Xerces, Apache XML parser, and X Window System; and other IBM technical specialists.
Citation, social networks — 2 points out of 3 (low level of interest for the project from wide audience).
Projects based on technology — 5 points out of 5.
Famous persons in the team — 1 point out of 2 (there are people known in IT industry, but there are no well-known blockchain persons).
The outlook is neutral. The project is of interest only to corporations and for a long time was not very advertised at all, and there was no need to it.
RATING. “Hyperledger Fabric” evaluation: 56 points out of 64 — 87.5%. The outlook is positive.
The outlook is positive. The project is clearly distinguished by the respectability of the companies that joined the consortium and the number of projects that intend to use Hyperledger Fabric technology. The extensive options for setting up the blockchain to meet the specific needs of the corporate sector make Hyperledger Fabric a leader in private blockchain industry.
Hyperledger Fabric is definitely a leader in the field of private blockchains.
The project's popularity is rapidly growing due to the fact that in July 2017 the first “production” version of Hyperledger Fabric was released and a number of large companies announced the development of blockchain solutions based on it.
The participants of Hyperledger blockchain consortium are large reputable companies, which cannot but cause interest. The team is constantly modifying the product, as evidenced by the high activity on github. The project documentation is very detailed and a special emphasis in its construction is made on attracting potential developers. In chat rooms, users can ask any question about the operation of the platform.
Hyperledger Fabric is focused on the corporate sector. It is assumed that Fabric-based solutions will be introduced by “giants” of the industry and, accordingly, will take blockchain technologies to a new level.
However, in the Russian-language Internet there is practically no information on Fabric technical nuances. Basically, all publications are devoted to either joining new members to the consortium, or announcements of new projects based on Fabric.
One of the brightest events in RuNet was the holding of the first in Russia banking payment transaction between Sberbank and Alfa-Bank using the Hyperledger Fabric-based blockchain:
https://abnews.ru/2017/11/29/sberbank-i-alfa-bank-blokchejn/.
By the end of January 2018, the release of a new version of Hyperledger Fabric v1.1.0-alpha is planned, a preview version with updated functionality is now already available.
Official website: https://www.hyperledger.org/projects/fabric
Project documentation: http://hyperledger-fabric.readthedocs.io/en/latest/
Facebook: https://www.facebook.com/hyperledger/
Github: https://github.com/hyperledger/fabric
Slack: https://hyperledgerproject.slack.com
Gerrit: https://gerrit.hyperledger.org/r/#/q/status:open
Twitter: https://twitter.com/hyperledger
In connection with the above changes, the overall rating of the project has changed from 44 points out of 46 — 95.6% to 50 points out of 54 — 92.59%.