In our previous article or Hyperledger Design Philosophy and Framework Architecture, we discussed the nine components of Hyperledger framework architecture. Specifically, we said that the consensus layer and Smart Contract layer are fundamental to a business blockchain. We also briefly reviewed the consensus layer component. To continue our exploration of hyperledger framework components, this article sheds more lights on Hyperledger Smart Contracts which are the most important part of blockchain application development.
For those who are not familiar with Hyperledger project, reading Intro to Hyperledger Family and Hyperledger Blockchain Ecosystem article is a must prior to reading this article.
Hyperledger Smart Contract Overview
A Smart Contract is code that contains the business logic. It can be a simple data update, or it can be a more complex transaction with various conditions and involving multiple parties. These programs are stored on a blockchain network and can be executed on all nodes simultaneously. Business logic pre-installed on the validators in the blockchain before the network is launched is called an installed Smart Contract.
Another type of Smart Contract is called an on-chain Smart Contract. The code becomes part of the ledger when business logic is deployed to the blockchain as a committed transaction, which is then used by subsequent transactions. The Smart Contract layer works very closely with the consensus layer, including consensus on other peers, the identity service, and the client application.
The job of the Smart Contract layer is to process transaction requests and execute business logic to determine whether transactions are valid. Currently, there are four Hyperledger frameworks that support Smart Contracts:
- Hyperledger Fabric
- Hyperledger Sawtooth
- Hyperledger Burrow
- Hyperledger Iroha
It is important for all blockchain Hyperledger developers to know that a Hyperledger framework may choose to implement the workflow differently. Refer to the official Hyperledger website for more information (https://www.hyperledger.org/).
Let's take a look at the high-level generic workflow that shows how Smart Contracts process transaction request in a blockchain network. This is common in all Hyperledger frameworks, as illustrated in the following diagram:
When a request is sent to the Smart Contract, the contract ID, the transaction request information, the current ledger state, and any dependencies, are processed by the contract interpreter, where the Smart Contract code is executed. The contract interpreter either rejects the request if it is invalid, or generates results accordingly.
After reading this article, readers have two paths to take: 1- Learn more about Hyperledger use cases and its business applications and 2- Learn more about Hyperledger application development. For the former, we recommend Blockchain Solution Architect course by High School Technology Services. However, for the latter, you should move on to understand Hyperledger Fabric Architecture and Components. Taking Blockchain Hyperledger Development in 30 hours course by Coding Bootcamps school is also highly recommended. Lastly, as of this writing, Hyperledger Foundation offers the following two Hyperledger certifications: The Certified Hyperledger Fabric Administrator (CHFA) and The Certified Hyperledger Sawtooth Administrator (CHSA), both of which are highly regarded in the industry. Hyperledger Foundation is in the process of creating Hyperledger Developer certification program, which may be released in early or middle of 2020.