In my last article, I mentioned that we picked Hyperledger as the choice for building our blockchain platform. Hyperledger is actually an umbrella project under which there are multiple projects that we will make use of. More description about the projects goes here:
It is the core framework implementation for private and permissioned business networks. It has a modular/plug-and-play architecture for ledger database, consensus mechanism and membership services. Key concepts for this model are:
- Assets — Asset definitions enable the exchange of almost anything with monetary value over the network, from whole foods to antique cars to currency futures.
- Chaincode — Chaincode execution is partitioned from transaction ordering, limiting the required levels of trust and verification across node types, and optimizing network scalability and performance.
- Ledger Features — The immutable, shared ledger encodes the entire transaction history for each channel, and includes SQL-like query capability for efficient auditing and dispute resolution.
- Privacy — Channels and private data collections enable private and confidential multi-lateral transactions that are usually required by competing businesses and regulated industries that exchange assets on a common network.
- Security & Membership Services — Permissioned membership provides a trusted blockchain network, where participants know that all transactions can be detected and traced by authorized regulators and auditors.
- Consensus — A unique approach to consensus enables the flexibility and scalability needed for the enterprise.
Hyperledger composer is a sub-project to assist users to simply and facilitate the creation of Hyperledger Fabric blockchain applications. Using composer, developers or even business users can build chaincode and blockchain applications with ease. This is handy when a company wants to build a POC (Proof of Concept) before the actual production platform without spending too much time and resources. Hyperledger composer models the business network by creating the following files:
- Network model file (.cto). As part of your business network model, you define the assets as well as the transactions and participants that can interact with those assets. The model file contains definitions of assets, participants, and transactions.
- ACL file (.acl). This file contains the access control rules that define the rights of the different participants in the business network.
- Query file (.qry). This file defines the query that can run in a network.
The above files are exported as archive file Business Network Archive (.bna) file, pictured as:
This is another sub-project designed to create a user-friendly Web application on which user can view, invoke, deploy or query blocks, transactions and associated data, network information (name, status, list of nodes), chain codes and transaction families, as well as any other relevant information stored in the ledger. We can also make use of the API provided to build a tailor web application. The function can be similar to what is provided by etherscan for Ethereum.
The understanding of the above concepts are essential before we can build out our platform.
In the next article, I am going to define the project scope for our supply chain blockchain platform.