As Blockchain for business gathers steam, different frameworks have come up to cater to varied business requirements. While the underlying use of Blockchain-based ledger to store data immutably remains consistent across platforms, the architecture of each framework varies significantly.
Hyperledger Fabric, Quorum, Ethereum are some of the frameworks under active development. Of these, Fabric has been developed to provide a foundation for developing applications or solutions with a modular architecture.
One of the major distinctions of Fabric is that it underpins for a permissioned blockchain unlike the multitude of permission-less blockchain frameworks. Its architecture, therefore, merits a closer inspection.
A typical implementation of Hyperledger Fabric begins with the setting up of nodes. The number of nodes depends upon the number of organizations (separate entities) participating. Each organization has a certificate authority and each node of the organization may or may not have a copy of the ledger depending on the type of node. Apart from all these, a specific set of ordering nodes has to be deployed to take care of communication between nodes. All deployments including certificate authority and databases for each node take place in separate docker containers.
Committing Node: Maintains ledger and state. Commits transactions. May hold smart contract (chaincode).
Endorsing Node: Specialized committing peer that receives a transaction proposal for endorsement, responds granting or denying endorsement. Must hold smart contract.
Ordering Nodes (service): Approves the inclusion of transaction blocks into the ledger and communicates with committing and endorsing peer nodes. Does not hold the smart contract. Do not hold the ledger.
For interacting with the network, identity needs to be created which is issued by the Certificate Authority. The identity is created using the private key of the particular node and a public certificate of the certificate authority. The security artifacts are generated using the cryptogen tool.
The certificates follows X.509 standard and the infrastructure is analogous to Public Key Infrastructure.
Hyperledger Fabric also provides the facility to implement any other method to establish identity.
Once a network has been setup, and smart contracts have been installed, the following chain of events occur for a successful event.
Hyperledger Foundation also provides two pluggable tools to speed up development.
Hyperledger Composer: The smart contracts (chain code) which contain the business logic can be developed using Composer and deployed as a packaged BNA (Business Network Archive) file. The integrated modeling language provided considerably speeds up development. Moreover, Composer helps in the easy development of the rest server to interact with the network.
Hyperledger Explorer: This tool can be integrated with a running blockchain network to have a blockchain explorer functionality. The tool provides view-only access to all blocks as well as other information about the network. The transaction data, however, remains encrypted.