Are Hyperledger Fabric and Ethereum locked in mortal combat…or are they stronger together? I’ll try to answer that with a quick look at the two challengers, their history, and future.
Ethereum platformThere’s little question that the Ethereum platform is popular with many blockchain developers. However, many enterprise developers tell me that while they appreciate the simplicity of developing and deploying a smart contract on Ethereum, they still have concerns with the public and anonymous nature of permission-less blockchain platforms that are driven by crypto-currency mining to achieve byzantine fault-tolerant consensus. They are also concerned about the performance (throughput and latency) of public blockchains as well as their susceptibility to forking, which means that finality can be slow to achieve and could be compromised in the event of a fork.
I believe that the mature tooling and ease of use, combined with the constraints imposed on smart contracts by the Ethereum virtual machine (EVM), have made the Enterprise Ethereum Alliance (EEA) so popular and filled with promise. The goal of the EEA, as I understand it, is to deliver specifications that define the qualities and characteristics of enterprise-grade Ethereum platforms that are interoperable with public Ethereum networks. The EEA, however, is not developing software. They anticipate others will do that, whether in open or closed source development.
HyperledgerThe Hyperledger organization was founded with the mission to develop open source blockchain technology for the enterprise. The first of the incubated (and the first to graduate incubation) was Hyperledger Fabric.
Hyperledger Fabric is an enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts. Fabric has a highly modular and configurable architecture, enabling innovation, versatility, and optimization for a broad range of industry use cases including banking, finance, insurance, healthcare, human resources, supply chain, and even digital music delivery.
Hyperledger also hosts other blockchain frameworks including Sawtooth, Burrow, Indy, and Iroha. We’ll talk a bit more about Burrow, below.
Early attempts to bring Ethereum to HyperledgerAll too often, I hear the nattering nabobs of negativism (falsely) claim that Ethereum and Hyperledger, the community in which IBM and over 235 other organizations are collaborating on delivering open source blockchain and distributed ledger technologies for the enterprise, are in some sort of cage match for blockchain, recalling “Mad Max: Beyond Thunderdome.” The reality? Nothing could be further from the truth.
There was a major effort underway in 2016 to relicense the C++ Ethereum client under the Apache Software License (ASL2.0) so that it could be contributed to Hyperledger, which mandates use of the ASL2.0 license for all its projects. Unfortunately, that endeavor was unsuccessful, though I give major props to my friend Bob Summerwill for all his efforts in trying to bring these two important communities together.
All was not lost, though. Hyperledger incubated Hyperledger Burrow, its first Ethereum-based project, a year ago this past week. In the year since Monax contributed Burrow, the Hyperledger community has collaborated on two hybrid platforms: sawtooth-seth (an integration of the Burrow EVM in Hyperledger Sawtooth) and fabric-chaincode-evm (an integration of the Hyperledger Burrow EVM in Hyperledger Fabric as a plug-able system chaincode).
The collaboration among the teams has been terrific, and it makes this Hyperledger TSC Chair very pleased to see this level of cooperation and collaboration. This is exactly the vision that we had when we launched Hyperledger in early 2016, and that Brian Behlendorf brought with him when he joined as Hyperledger’s Executive Director. We’ve dubbed this incubator for blockchain projects the Hyperledger Greenhouse.
Making it real!All of this has been a long-winded means of getting to the main point of this blog post: to announce that the team collaborating on the fabric-chaincode-evm project has reached a milestone with a stable Burrow EVM chaincode plugin, and a (very early, but functional) Web3 proxy server for Hyperledger Fabric! We’ve published a simple sample Dapp that includes a Web3.js client and a proxy server that can be deployed to Cloud Foundry, along with a version of Hyperledger Fabric that has the fabric-chaincode-evm plugin deployed that you can provision to a Kubernetes platform such as the IBM Container Service. We’ve also tested our proxy with Remix, and are pleased with the preliminary results.
So, the phrase “Two Enter, One Leaves” from Mad Max takes on a whole new meaning in the context of the Hyperledger Greenhouse; the merger of these two important technologies yields a unique capability with the benefits of both. This isn’t a zero-sum game, nor should it be.
We’ll be looking to publish an IBM code pattern that details the steps to provision your very own version of this demo, once the excitement of Consensus 2018 is over.
Speaking of Consensus 2018, please stop by the IBM booth where we’ll be happy to show you the demo and discuss its implementation and future plans. In the meantime, please feel free to check out the YouTube video where we show you how to get started with your own enterprise-grade, permissioned Ethereum smart contract engine based on Hyperledger Fabric and Hyperledger Burrow’s EVM library.
Next stepsThese are indeed exciting times for Blockchain. If you want to help the team deliver this important capability into a formal release of Hyperledger Fabric, we would most definitely welcome the help! There’s still plenty to be done.
In the meantime, try it yourself! We’ve published everything as open source along with instructions to deploy your very own Hyperledger Fabric + EVM + Web3.js mashup application.
You might also be interested in over a dozen other IBM code patterns for Blockchain that provide you with step-by-step instructions and code to solve a number of use cases using Hyperledger Fabric, Hyperledger Composer, and the IBM Blockchain Platform.