The high-level role and responsibility of the client application are to compose a transaction request and submits it to the peer nodes. Peer nodes send the endorsements asynchronously. After receiving sufficient endorsements that satisfy the endorsement policy, it submits the transaction to the ordering service. In the end, it receives the acknowledgment from the peer nodes about the status of a transaction as an event to trigger external applications, if any.
The client application is developed by using the SDK provided by the Hyperledger Fabric. Currently, it supports major programming languages such as Python, Java, and Golang. So the client application can be developed using the supported languages by SDK.
Each client application can work with multiple channels, and these channels are kept separate. Each channel is associated with a particular set of peer nodes across the network. It receives events from multiple channels. The SDK needs to be connected to the local membership service provider to facilitate all the crypto-related operations required by the client application.
The client application may have to communicate to the same or different ordering services based on the initial setups based on the channels. So the client application has to be aware of the ordering services, and all this information is available in the genesis block of the individual channel’s shared ledger. The genesis block transaction possesses lots of information, such as who the peers in the channel are: the ordering service nodes, the ordering service algorithm, etc.
The peers in the channel can also be dynamic, which means peers can enter or leave channels dynamically. So one peer may leave the channel at some point, and another peer joins the channels. However, this information will be recorded as transactions on the blockchains, and these transactions are called channel configuration transactions. These are maintained in a decentralized fashion, similar to any other block. Once a new peer joins a channel, it synchronizes the ledger and starts receiving updates. Also, crypto relation information will be updated and recorded as a transaction inside a block.
References
- NPTEL lecture series on Blockchains Architecture, Design and Use Cases by Prof. Sandip Chakraborty, IIT Kharagpur.
132 total views, 1 views today