Among enterprise-level blockchain platforms, Hyperledger Fabric is one of the most popular entities. Since its introduction in 2017, it is updated regularly over time to better cope with the industrial requirements. Being under the care of the Linux Foundation and getting wide community support, the platform has grown and got adopted to production environments across the globe at a faster pace than its competitors. Last month, the hyperledger team came with a new major update. That is Hyperledger Fabric v2.0. In this blog, we are discussing those much-awaited changes in v2.0.
Read our previous blogs for knowing more about hyperledger fabric.
1) Overview of Hyperledger
2) An Introduction to Hyperledger Fabric
3) Basic Terminologies of Hyperledger Fabric
The following are the major changes that v2.0 brings,
* Improvisation in decentralized governance over chaincode
* Private data enhancements
* External chaincode launcher
* Reduced read operation latency
* Lightweight docker images
Improvisation in decentralized governance over chaincode
Until this update, the permission to set the chaincode parameters on behalf of all other participants in that channel resides in a single organization. Even though the others had the power to refuse its installation and are not endorsing the transaction, it was not easing that situation but messing it up further.
With the new chaincode life cycle, the participant organizations are allowed to reach a consensus on chaincode parameters like its endorsement policy before interacting with the ledger.
Similar to this, before upgrading a chaincode, a sufficient number of organizations must approve.
Now, without repackaging or reinstalling the chaincode, it is possible to change the endorsement policy or private data collection configuration. That is good, as it saves time in the development and testing stages.
There is also a change in the default endorsement policy. The new endorsement policy requires endorsement from a greater number of organizations. This will also get automatically updated every time a new organization gets added or removed.
Another cool feature is that the organizations can now make changes to the chaincode version they are installing. For example, this allows organizations to add automated checks based on their use cases, which will be performed just before endorsing a transaction. As long as the required number of endorsements from organizations is a must for transactions to occur, the ledger remains stable.
This will bring more decentralization, which implies more confidence inside the network participants.
Private data enhancements
Hyperledger Fabric supports the private data feature, which enables the communication between organizations, long before this update. But a problem that remained here was, the organizations have to create a collection for each communication combination between them. With Fabric v2.0, the organizations are allowed to communicate with each other privately without creating collections between them. The new architecture provides several configurations to achieve this much level of flexibility.
External chaincode launcher
During the development and testing phases, there needs to install several chaincode and needs to upgrade them several times. This is a very cumbersome process as the chaincodes are running inside a docker container. Each time, we have to kick start the container for the upgraded version. For that sole purpose, we have to run a Docker daemon. This is a bad thing while working in a production environment. It also required to shut down the unused old chaincode containers manually. Most of the time this is achieved by running some shell script. Altogether, this makes development painful.
Thanks for the new update. In v2.0, by utilizing the Docker API, chaincode can be built and launched by the developers and operators with the technology of their wish. Therefore, there is no need for running Docker daemon. Another important update is that the chaincodes no longer need to be run inside docker containers. It is the choice of operators to choose where to run a chaincode including the docker container.
The most important change in v2.0 is, it supports to run chaincode as an external service. That’s incredible! Imagine that the chaincode is being deployed and managed independently outside the fabric environment. This will raise the development experience to a whole new level. This will also open up many more flexible solutions like deploying chaincode on Kubernetes. A peer can then connect to this service for chaincode execution.
Reduced read operation latency
In endorsement and validation phases several read operations from the state database are performed. The delays in this process slow down the entire network speed by being a performance bottleneck.
In v2.0, read operation latency from the state database is reduced by using a state database cache on CouchDB. This reduces the expensive lookups from the state database, thus improves the performance.
Lightweight docker images
In v2.0, Hyperledger Fabric Docker images are using Alpine Linux. It is a high security-focused lightweight Linux distribution. This enables building lightweight Docker images. As a result, faster download and startup time, less disk storage space, improved security, etc. are achieved.
This blog is featuring only the main changes in the latest version. The intention is to introduce you to the ever-changing blockchain environment. There is much more in it. We’ll be providing more blogs for more information.