an-introduction-to-hyperledger-fabric.png

An Introduction to Hyperledger Fabric

10/November/2017
Hyperledger Fabric is a blockchain framework implementation initially developed by Digital Asset and IBM and now hosted by Linux Foundation under the hyperledger project. Fabric joined the hyperledger project for incubation in the early 2016 and after 1 year of incubation, it became the first project get into the ‘active’ state. On July 11, 2017, the hyperledger Technical Steering Committee announced their first production-ready distributed ledger codebase, Hyperledger Fabric V1.0.

The Fabric platform is intended as a foundation for developing blockchain applications, products or solutions. The fabric is a Private and Permissioned system which delivers a high degree of confidentiality, resiliency, flexibility, and scalability. It adopted a modular architecture and supports pluggable implementations of different components like consensus, membership services etc. Like other blockchain technologies, Fabric has a ledger, smart contracts, and it is a system by which participants manage their transactions. The smart contract in the fabric is known as chaincode and it is in the chaincode the business logic is embedded. The following features impart high degree of security and privacy for the fabric framework.

 - Channels:  The Blockchain network can be partitioned into channels, where each channel consists only the authorized partners
 - Visibility settings: It is possible to restrict who can see the input data using visibility settings
 - Data Encryption: The data can be Hashed or Encrypted before calling the chaincode
 - Data Access Restriction: By embedding access controls into the chaincode logic, it is possible to restrict data access to certain roles in the organization.
 - File encryption: Ledger data at rest can be encrypted using file system encryption, and data-in-transit can be encrypted using TLS protocol. 

Fabric v/s Ethereum
Both the Fabric and Ethereum are two prominent blockchain technologies available today. But there are several differences in Structure, Mode of Operation and many other aspects of both technologies. It is worth to understand the difference between these two. 

Governance:
As discussed earlier, Fabric is governed by the Linux Foundation and Ethereum is hosted and governed by Ethereum Developers community.

Platform: 
Ethereum is a generic blockchain platform for any kind of application whereas Hyperledger is a modular blockchain platform which is customized mainly for supporting different business domain

Targeted Crowd:
Ethereum is targeted towards applications that are distributed in nature, on the other hand, Hyperledger is meant for business domains including banking, health, goods delivery etc.

Network Structure:
In Ethereum, network partitioning is not possible. Therefore, the transactions are visible to everyone in the network including the competitors. Obviously, it is not suitable for the business environment. Hyperledger supports partitioning of the public network into channels. Each channel consists of only the authorized partners. In addition to that, there is ‘Endorsing Node’ which are designated to approve a transaction

Mode of operation:
Ethereum is a permission-less system, which means any node is allowed to participate in the network. On the other hand, hyperledger being a private and permission system, the members who are enrolled through MSP (Membership Service Provider) can only participate in a network

Consensus:
In Ethereum consensus is based on PoW (Proof of Work) scheme. All participants have to agree upon a common ledger and all participants have the access to all entries ever recorded. This may affect the transaction processing as a network grows. In Fabric, the consensus can be achieved in different ways. The process of endorsing is based on an endorsing policy. Nodes can take a certain role called Endorsing Peers (endorser), who are responsible for endorsing transactions based on the policy. All this results in a better performance and security.

Smart Contracts:
In Ethereum, business logic is included in smart contracts written in Solidity language. In fabric, smart contract is implemented using chaincode and it can be written in either Go or Python language

Currency:
In Ethereum, there is a built-in cryptocurrency called Ether. And digital tokens for custom use-case can be also be built. In fabric, since the consensus is not reached through mining, there is no need of built-in cryptocurrency. However, it is possible to develop a currency or a digital token for specific use-case

Even though a full-fledged application development process has not yet taken place in Fabric, the initial results and the features it provides indicate that the Fabric is a promising technology for future enterprise level application.