If you are a blockchain enthusiast, you must have heard about Hyperledger fabric architecture by the Linux Foundation. There are two major types of blockchain technology. Public and private, often referred to as permissionless or permissioned blockchain. The Hyperledger Fabric is a permissioned blockchain framework that runs on a modular architecture (plug-and-play).
Hyperledger Fabric leverages container technology to host its smart contact (Chaincode) that contains the application logic. Back in 2015, the Linux Foundation started Hyperledger as an umbrella body of open-source projects and tools. In this article, we will explore the basic components of Hyperledger Fabric architecture.
IBM leads the Hyperledger Fabric. It is specifically designed to create blockchain applications that are scalable using the flexibility of permissions. Before we discuss the Hyperledger fabric architecture, let’s understand the concept of Hyperledger fabric.
Hyperledger Fabric is a permissioned blockchain system that allows permits unknown identities to be part of the network. The unknown identities have to register through the Membership Service Provider (MSP). The design of Hyperledger Fabric was to develop solutions using a modular architecture.
It gives users the ability to create channels; therefore, a group of participants can create a separate ledger of transactions. As a permissioned blockchain system, Hyperledger fabric has some advantages over other blockchain systems. Some of such advantages include the following:
The use of permissions ensures that members are held accountable, and access rights are controlled effectively.
Hyperledger fabric gives businesses the flexibility and security needed to make transactions visible to selected parties. The use of correct encryption keys makes it possible to achieve this.
Hyperledger fabric does not require mining and other expensive computations to assure transactions.
With the inbuilt logic in the smart contract you can automate business process across your network.
Before we delve fully into the Hyperledger fabric architecture, let us consider the key features that made it a customizable enterprise blockchain.
They enable users to exchange of monetary value over the Hyperledger fabric network.
It helps to limit the required levels of trust and verification across the different node types. Also, it helps to optimize Hyperledger network scalability and performance.
The channels allow multi-lateral transactions that involve a high degree of privacy and confidentiality.
It encodes the entire transaction history for each channel on the Hyperledger network.
All transactions on the Hyperledger fabric network can be detected and tracked by authorized regulators and auditors.
It allows network starters to select a consensus mechanism that is the best representation of the relationship existing between participants.
In a nutshell, blockchain developer makes up the Hyperledger fabric architecture. Firstly, the developer codes the application and smart contract on the network. Then, the developer deploys the app on a server, and the smart contract on a peer using DEPLOY. Every registered user interacts with the app by sending an order (INVOKE) or retrieving information (QUERY) via the smart contract. Also, the smart contract can, in turn, emit an event that the app subcscribes.
Now, let us go a little deeper into the Hyperledger architecture. The channel allows participating organizations to communicate with one another. You can see the channel as a tunnel that permits an organization to secretly exchange information with other participating organizations joining the same channel. In fact, if an organization is not part of the channel in question, it will not have access to information or transactions associated with that channel. An organization can be part of multiple channels all at once.
The Hyperledger fabric architecture I made up of the following components:
It is a blockchain node that stores all transactions on a joining channel. A peer can be a part of one or more channels as required. However, each channel on the same peer is stored separately. Hence, an organization can ensure that the sharing of confidential information is only to permitted participants on a channel.
This is one of the most important components of the Hyperledger fabric consensus mechanism. It ensures the creation of new blocks of ordered transactions, and it is responsible for ordering transactions. The orderer also distributes newly created blocks to all peers on a relevant channel.
The CA is responsible for managing all user certificates like user enrollment, user registration, user revocation, and so on. But, as a permissioned network, only permitted users can access information (query) or create a new transaction (invoke) on a granted channel. Hyperledger Fabric uses an X.509 standard certificate to represent permissions, roles, and attributes to every use of the channel. Therefore, a user’s ability to query or invoke any transaction on any channel is dependent on the permission, role, or attribute he/she possesses.
This is an application that interacts with the Hyerledger fabric blockchain network. Therefore, the Client can interact with the fabric network according to its permissions, roles, and attributes. Also, These attributes are as specified on the certificate derived from the associated organization’s Certificate Authority (CA) server.
This is a concept of smart contracts in the Hyperledger fabric. It can be programmed in three languages which include Golang, Node.s, and Java. Before the deployment of chaincode, the network admin must install the chaincode onto target peers. Then, the admin invokes an orderer to instantiate the chaincode onto a specific channel. As an admin, you can define an endorsement policy while also instantiating the chaincode. An endorsement policy defines which peers need to sanction the authenticity of a transaction result before adding the transaction onto the ledgers of all peers on the channel.
The peer that is saddled with the responsibility of the endorsement policy is called an endorsing peer. It consists of an already installed chaincode and a local ledger.
The fabric issues a transaction with derived certificates. These certificates cannot be linked to the owning participant. Every user or participant on the fabric’s network must register proof of identity to membership services. Also, The registration gives the participant access to the system. On the learned fabric, the content of each transaction is encrypted. Therefore, It ensures that only the intended participants can see the content.
Every transaction is secure, private, and confidential on the fabric network. Only the consensus of the peers on the network can update the Hyperledger fabric. As a matter of fact, Each transaction executes without a cryptocurrency, and the events are structured as transactions and distributed among the different participants. Every transaction relies on a smart contract system (chaincode) which every participant on the network runs in Docker containers.
There are three distinct types of peers on the Hyperledger fabric network, and they include:
This peer commits the transaction and maintains the ledger.
It receives a transaction proposal for endorsement, and either grants or rejects endorsement.
This peer is responsible for approving the inclusion of transaction blocks into the ledger and communicates with peer and endorsing peer nodes.
The strategic goal of Hyperledger to build business solutions clearly separates it from currency based blockchain systems. With scalability as a huge advantage, Hyperledger fabric allows for the development of almost any type of business network. We hope you enjoyed your read and learnt something new. For your contribution and questions regarding this topic, kindly use the comment box below.
Also Read, Chainlink: An In-Depth Explanation
Xord is a blockchain development company providing blockchain solutions to your business processes. Connect with us for your projects and free blockchain consultation at https://xord.solutions/contact/