Hyperledger Fabric v1.0: Multi-Ledgers, Multi-Channels, and Node.js SDK
Conceived as enterprise technology
Blockchain architect made a return visit as a Hyperledger speaker, taking attendees through a technical tour of Hyperledger Fabric 1.0 at a recent webinar. Two keys to his talk included a look at the addition of multiple ledgers and a demonstration on how to create a network with Fabric. In the course of the webinar, Thomas also revealed what is available in the Fabric’s v1.0 alpha release—introduced to public in late March.
Thomas started with noting a distinction between Blockchain “1.0,” which is focused on transactions, and “2.0,” which is focused on smart contracts.
“There is no cryptocurrency involved with permissioned enterprise blockchains such as Hyperledger Fabric, and transactions are validated by peers in your network.” —Thomas Marckx
He also stressed that Hyperledger has been conceived from its beginnings in December 2015 as an enterprise technology, quoting a statement from the Linux Foundation (which oversees the project): “The Hyperledger Project is a collaborative effort created to advance blockchain technology by identifying and addressing important features for a cross-industry open standard for distributed ledgers that can transform the way business transactions are conducted globally.”
On the way from v0.6 to v1.0
Thomas showed how roles called endorsing peers and ordering peers have been created for v1.0 versus v0.6, thereby allowing members of a permissioned blockchain to choose specific peers to execute their transactions. No longer must the entire network be involved to validate transactions. This characteristic is designed to reduce network performance bottlenecks.
In line with this flexibility, version 1.0 allows members to create their own certificate authorities (CA), thus eliminating what was a single point of failure with version 0.6 and its central CA.
Thomas also highlighted how Fabric’s v1.0 simplifies the certification process across multiple membership services.
“If you are a user, you have to enroll yourself on a membership service, but instead of getting back a self-created certificate, they may go and have a look at different CAs that you have. For example, a digital entity that the existing government may use, or something from your Google account, or whatever you can think of, you can now link those to the membership services, which means it makes it usable. We already have all those institutions there, why shouldn’t we use them? On the other hand, you will have these certificates and use them for the client app to interact with blockchain.” —Thomas Marckx
Multi-channels and multi-ledgering
As noted above, multi-channels and “multi-ledgering” are also salient new abilities within version 1.0, allowing users to create separate ledgers (along separate channels) for different types or categories of transactions within their businesses.
In other words, form follows function rather than the other way around with other blockchains and with Fabric v0.6.
Thomas then focused on those of a more technical bent, overviewing a Node.js SDK development example, showing how to:
- create a blockchain fabric
- deploy a smart contract
- submit a transaction
- query data
He said this is a simple example, with 300 or so lines of code, with just a single chain, single channel, and two peers. The end-to-end testing samples Thomas was talking about can be found here and here. You can also check out this documentation on the Fabric’s Node.js SDK.
In his summary, Thomas outlined that blockchain itself is simply a part of a full-stack solution within enterprise IT. It fits comfortably into deployments running hosted or on-premises infrastructures, as well as with common technologies and components found today.
Want details? Watch the webinar recording.
- Hyperledger Fabric’s Chaincode, Practical Byzantine Fault Tolerance, and v1.0
- Hyperledger Fabric Approaches v1.0 with Better Scalability and Security
- Hyperledger Fabric v1.0 to Bring Improved Transactions and a Pluggable Data Store
About the speaker