Private blockchain platforms
Private blockchain platforms are specialized blockchain networks that are intended for use exclusively by a specific group of users, like a business or an organization. These networks provide enhanced privacy and security since access to the blockchain is limited only to authorized users. In general, private blockchains require permission for users to access them, meaning they must be granted access or permission by the network administrator before they can participate in the network.
Private blockchain platforms are customizable and can be tailored to meet the specific requirements of businesses. They allow businesses to design their blockchain network according to their specific use case, creating customized governance models and network rules.
Compared to public blockchains, private blockchain platforms offer improved performance, lower transaction costs, and better scalability. They are also more suitable for enterprises that require compliance with specific regulations and legal requirements, like those in the finance and healthcare industries.
[CIMG ID=ef5e941a-ebe4-4b04-9464-57d09e4fd300]
Overall, private blockchain platforms offer businesses more control over their blockchain networks, resulting in enhanced privacy, security, cost-effectiveness, and compliance.
Private blockchain platforms that are well-known and widely used
- Hyperledger Fabric: A blockchain platform that is open-source and tailored for enterprise use cases, allowing for the creation of private and permissioned networks that can be customized to meet specific business needs. (https://www.hyperledger.org/use/fabric)
- Corda: A decentralized blockchain platform designed for the financial industry, built to handle complex financial transactions and enable direct transactions between parties. (https://www.corda.net/)
- Quorum: A permissioned version of Ethereum designed for enterprise use cases, offering private transactions, contract management tools, and other enterprise-grade features. (https://consensys.net/quorum/)
- EOSIO: A blockchain platform designed for high-volume applications in enterprise environments, offering fast transaction speeds and high scalability. (https://eos.io/)
- IBM Blockchain: A private blockchain platform designed for enterprise environments, offering a suite of tools for building and deploying blockchain applications, including smart contract tools, network management tools, and more. (https://www.ibm.com/blockchain)
- R3 Corda Enterprise: An enhanced version of Corda designed for large enterprises, offering additional features such as high availability and disaster recovery. (https://r3.com/)
- MultiChain: A private blockchain platform designed for enterprise environments, offering features such as asset issuance and permissions management, which make it a suitable choice for businesses. (https://www.multichain.com/)
What is Hyperledger Fabric?
Hyperledger (or the Hyperledger Project) is an umbrella project of open source blockchains and related tools, started in December 2015 by the Linux Foundation, and has received contributions from IBM, Intel and SAP Ariba, to support the collaborative development of blockchain-based distributed ledgers. It was renamed Hyperledger Foundation in October 2021.
[CIMG ID=9daea903-af10-48e9-e4f5-2594e12f4400]
Among the private blockchain platforms, Hyperledger Fabric, a product of Hyperledger, is a widely-used platform for building blockchain applications:
- Its modular architecture allows for customization and flexibility, making it suitable for various enterprise use cases.
- Additionally, Hyperledger Fabric is a permissioned blockchain (a distributed ledger that is not publicly accessible, it can only be accessed by users with permissions) making it a suitable choice for enterprises that require privacy and confidentiality.
- Moreover, its architecture is designed for scalability, with the ability to handle thousands of transactions per second. Hyperledger Fabric also provides support for smart contracts, or "chaincode," which allows for the implementation of complex business logic and automation of business processes.
- Finally, Hyperledger Fabric is designed to be interoperable with other blockchain networks, as well as traditional enterprise systems, making it a suitable choice for organizations with existing IT infrastructures.
As a result, these features make Hyperledger Fabric a popular choice for enterprises looking to build blockchain applications that are secure, scalable, and customizable. Read more at https://www.ibm.com/topics/hyperledger
In this blog, we will delve into the fundamental aspects of Hyperledger Fabric, including its network components and transaction flow.
The use cases of Hyperledger Fabric
Hyperledger Fabric is a versatile and customizable blockchain platform that can be used for a variety of enterprise use cases. Hyperledger Fabric can be used in various industries to create secure and private systems.
[CIMG ID=b23aa4de-f913-4f4b-0a10-114565d6c400]
Here are some examples:
- Supply Chain Management: Hyperledger Fabric can be used to create a transparent and secure supply chain management system. By creating a shared ledger that all parties in the supply chain can access, it becomes possible to track the movement of goods and ensure their authenticity. This can help to prevent fraud, reduce waste, and improve efficiency.
- Healthcare: Hyperledger Fabric can be used to create a secure and private healthcare information exchange. By creating a shared ledger that all healthcare providers can access, it becomes possible to share patient information securely and in real-time. This can help to improve patient outcomes, reduce costs, and enhance the overall quality of care.
- Finance: Hyperledger Fabric can be used to create a secure and private financial transaction network. By creating a shared ledger that all financial institutions can access, it becomes possible to conduct financial transactions in a secure and efficient manner. This can help to reduce costs, improve efficiency, and enhance the overall security of the financial system.
- Government: Hyperledger Fabric can be used to create secure and transparent voting systems. By creating a shared ledger that all voters can access, it becomes possible to ensure the integrity of the voting process and prevent fraud. This can help to increase voter turnout and enhance the overall legitimacy of the democratic process.
- Insurance: Hyperledger Fabric can be used to create secure and transparent insurance claim systems. By creating a shared ledger that all parties involved in the insurance claim can access, it becomes possible to process claims more quickly and efficiently. This can help to reduce costs and improve the overall customer experience.
Components of the Hyperledger Fabric Network
The components of a Hyperledger Fabric network (for simplicity, channels are not shown)
[CIMG ID=59d2c538-830e-428e-8b9e-2b9547b6cf00]
The components of a Hyperledger Fabric network include:
- Assets: In a Hyperledger Fabric network, assets are items that hold value, possess ownership, and have a state. These assets are structured as a set of key-value pairs.
- The ledger, which comprises two elements, records the status and ownership of an asset:
- The world state: The database of the ledger is comprised of the world state, which represents the state of the ledger at a specific point in time.
- The blockchain: The blockchain serves as a comprehensive transaction log, recording the entire history of all transactions.
- Peers: Peers are essential nodes in the network as they act as hosts for ledgers and smart contracts. Their functions include executing chaincode (chaincode is a program, written in Go, Node.js, or Java that implements a prescribed interface), accessing ledger data, endorsing transactions, and interfacing with applications. The network may include endorsing peers or endorsers, also known as approvers among the peers. To ensure transaction endorsement validity, each chaincode can define an endorsement policy that specifies the required and adequate conditions.
- Channel: A channel is a virtual framework created by a group of peers, enabling them to establish a distinct ledger of transactions. This feature enables peers to form a logical structure.
- Organizations: The Hyperledger Fabric network is established by integrating the peers that are possessed and offered by various organizations that are part of the network. Organizations pool their resources to create the network, and each peer is allocated an identity (digital certificate) by a Membership Service Provider from its respective organization. Furthermore, peers belonging to distinct organizations can operate on the same channel.
- Membership Services Provider (MSP): The Membership Services Provider (MSP) functions as a Certificate Authority that regulates the authentication of member identities and roles using certificates. The Hyperledger Fabric network does not allow transactions from unknown identities. The MSP governs user IDs and verifies the identities of all participants on the network. This ensures that Hyperledger Fabric is a private and permissioned network (a network where only pre-selected parties can validate transactions and perform other operations).
- Ordering service: The Ordering service is responsible for assembling transactions into blocks and dispatching them to peers on a channel. Its primary role is to ensure the reliable delivery of transactions throughout the network. The Ordering service interacts with both peers and endorsing peers. Currently, the supported configuration mechanisms for the Ordering service are Solo and Kafka.
In Hyperledger Fabric, Solo is a consensus mechanism utilized during development, specifically for providing a basic form of the ordering service. Its purpose is to allow developers to focus on chaincode and application development, without the need to be concerned with the intricacies of the ordering service. However, it is not recommended for use in production environments. Instead, Fabric 1.4.0 offers Kafka, a distributed streaming platform used for constructing dependable real-time data pipelines and streaming applications. Kafka facilitates the creation of real-time streaming data pipelines that ensure reliable transfer of data between various systems and applications.
Several types of peers
[CIMG ID=2d0ab95f-5beb-4f3f-c405-326393029800]
- Normal Peers: Normal peers are the nodes that participate in the blockchain network and maintain a copy of the ledger. They execute chaincode and endorse transactions, and can also be responsible for endorsing and validating transactions for specific channels.
- Orderer Peers: Orderer peers are responsible for managing the ordering of transactions and creating new blocks on the blockchain. They ensure that transactions are executed in the correct order, and they maintain the shared ledger of all transactions.
- Anchor Peers: Anchor peers are specific normal peers that are designated to represent an organization in the network. They maintain a direct communication channel with other organizations' anchor peers, allowing cross-organization communication.
- Certificate Authorities (CA) Peers: These are nodes responsible for issuing and managing digital certificates for all network participants. They verify the identity of network participants and provide them with the necessary credentials to join the network.
- Endorsing Peers: These are nodes that validate and endorse transactions by executing the chaincode associated with the transaction. They ensure that the transaction meets the rules and regulations of the network and can approve or reject a transaction.
- Committer Peers: These are nodes that are responsible for committing validated transactions to the blockchain. They receive validated transactions from endorsing peers and ensure that they meet the consensus rules of the network before committing them to the shared ledger.
Overall, in a Hyperledger Fabric network, each type of peer serves a specific purpose and plays a critical role in the functioning of the network.
Several types of chanels
[CIMG ID=6d5744ba-9b0e-4d6f-4bfc-c76052a2cb00]
- Public channel: The default channel created when a network is initialized. It is visible to all members of the network and allows all peers to interact with each other.
- Private channel: A channel that is created between two or more specific members of a network. It allows for private communication and data sharing between the members of the channel.
- System channel: A special channel that is used to manage the configuration of the network and its components. It is created during network initialization and cannot be deleted.
- Application channel: A channel that is created specifically for an application or a set of related applications. It allows for private communication and data sharing between the participants of the channel.
- Orderer channel: A channel that is used to manage the ordering of transactions in the network. It is responsible for ensuring that transactions are processed in the correct order and that they are included in the ledger.
- Consortium channel: A channel that is used to connect different organizations that are part of a consortium. It allows for private communication and data sharing between the members of the consortium.
Note that this is not an exhaustive list, as channels can be customized and configured to meet specific requirements of the network.
How a blockchain solution works
A blockchain solution operates by using the Hyperledger Fabric network as a backend, which interacts with an application front-end. To facilitate communication between the two, software development kits (SDKs) like Node.js and Java are available. These SDKs enable users to execute chaincode, make transactions, and monitor events.
To create a blockchain application, you must:
- Use a supported programming language, such as Go, Node.js, or Java, to write the chaincode.
- Deploy the chaincode on the Hyperledger Fabric network.
- Develop a client application with an SDK.
Transaction Flow in Hyperledger Fabric Network
The transaction flow in Hyperledger Fabric consists of the following steps:
Step 1: Endorsement
The client sends a transaction proposal to endorsing peer nodes on a specific channel in the first step. The endorsing peer nodes execute the chaincode and return the results along with an endorsement signature.
Step 2: Ordering
Endorsed transactions are sent to the orderer nodes, which validate the transactions and create a block. The orderer nodes then broadcast the block to all the peer nodes on the channel.
Step 3: Validation
Peer nodes validate transactions and check if they comply with the endorsement policies. If transactions are valid, peer nodes commit them to their ledgers.
Step 4: Consensus
Different consensus algorithms can be used depending on network requirements because the consensus mechanism in Hyperledger Fabric is pluggable. The default consensus mechanism is the Kafka ordering service.
[CIMG ID=b0bc80f4-a45b-41cf-1061-12e046358c00]
Step 5: Commitment
After consensus is reached, the committed transactions become immutable and are added to the ledger. The ledger is updated on all peer nodes in the network.
Conclusion
Hyperledger Fabric provides a sturdy framework for creating blockchain applications for diverse industries. Its network components, which consist of nodes, channels, chaincode, and MSP, play a crucial role in securing, scaling, and optimizing the network's performance. The transaction flow in the Fabric network validates and endorses transactions exclusively by authorized participants and adds them to the ledger in a consistent and immutable way. As the adoption of blockchain technology is on the rise, it is essential to comprehend the fundamental aspects of the Fabric network's transaction flow to leverage its capabilities for creating innovative applications.