I had the opportunity to explorer the Hyperledger project in more detail and my first impression was:
“It is an inter web mess of “stuff” that takes a bit of time to understand. “
It took me a few days to slowly build a picture of what Hyperledger is and my second impression is:
“It’s actually pretty neat once you breakdown the various components and there is a lot of potential.”
The biggest challenge at the beginning was understanding all the terminology involved. Fabric, Sawtooth, Iroha, Composer, Indy etc, then figuring out how they fit together. Hint: They don’t. The next step involved taking 1 technology and peeling back the layers and understanding the architecture and concepts. If you have a current understanding of blockchains or even bitcoins it helps a lot because you can draw parallels.
So what is Hyperledger?
Some define Hyperledger by defining what it is not. This is helpful. It is not a company, not a cryptocurrency and not a blockchain. The definition that made sense straight away to me was:
“Hyperledger is an umbrella project of open source blockchains and related tools”
From here, let’s look at the components and rename them slightly.
- Fabric: Let’s call this IBM Fabric because this is IBM’s blockchain design and architecture.
- Sawtooth: This should be called Intel Sawtooth Lake. Intel’s flavoured blockchain.
- Iroha: This one, Soramitsu Iroha. Soramitsu flavoured blockchain.
All these blockchain platforms are independent of each other and generally focus on different areas. Broadly speaking IBM Fabric is a multi-purpose pluggable framework, Intel Sawtooth for IOT and Iroha for mobile. Corda (another blockchain platform from R3) is looking to contribute their flavour as well to the Hyperledger umbrella and their area, finance.
Tooling (at a high level)
- Hyperledger Cello: Deployment tooling
- Hyperledger Composer: Package management tooling
- Hyperledger Explorer: Analytics tooling
- Hyperledger Indy: Supporting independent identity
Let’s take a look at one particular blockchain and explore the architecture in more detail.
Although a little dated (Nov 16), this presentation by Arnaud Le Hors whose a Senior Technical Staff Member on IBM’s blockchain team explains Fabric really well. I recommend watching the video within.
Fabric whitepaper mystery
For the true enthusiasts, the Hyperledger whitepaper is a must read. Warning: Although it is informative, it can add to the confusion if you are not clear on terminology. The whitepaper talks in terms of Hyperledger but then refers to Chaincode (the smart contract aspect of Fabric) and Docker which is how one can run Fabric.
Attempts to get an updated whitepaper led me to the Hyperledger whitepaper working group which has been inactive for over a year. I have a feeling it has probably moved elsewhere. There is a link to a 2.0 whitepaper that has feedback comments from as early as 6 months ago so maybe this working group is still relevant? Who knows.
Key concept of Fabric
Fabric has been engineered and architected with practical real world use cases in mind. In whatever business application whether it be supply chain, asset management & tracking or smart contracts there are several important requirements. They include:
- identity and auditability
- private transactions
- confidential contracts
- modular consensus
- chaincode/smart contracts
Fabric has, is working on or improving on these concepts.
One of the design philosophies of Fabric is for a modular & extensible approach with interoperability. An example is a pluggable consensus algorithm. Think of WordPress and the plugin ecosystem or Atlassian with all their 3rd party plugins. Corda also has a similar approach. This is good because it provides the most flexibility where different components can be used based on the requirements.
Something that is mentioned a lot is the reference architecture. The whitepaper does a good job of explaining each part in detail.
Another popular image that shows the Fabric architecture is as follows:
What is interesting here is that there are different types of peers. In the Bitcoin blockchain, there are 2 types of nodes. Mining codes and validating nodes. ie not every node is a mining node in the network. In Fabric, there are also different types of nodes. Endorser nodes, Orderer and Committers.
Where’s the token?
The one glaring omission from this architecture is the token. The cryptocurrency or as some say the lubricant or oil that makes the blockchain work.
In a public open blockchain where participants are free to join, incentivising participants to do the right thing and penalising them for bad or undesirable behaviour is very important. In a private and permissioned blockchain, of which Fabric and the others are, this is not so much of a concern because the penalty from a bad participant would potentially be the lost of business.
Having said this, it would be very interesting to see what the effects are if a token is introduced into the tool kit.
With this new found knowledge, the next step is to give it a try. There are some detailed docs at https://hyperledger-fabric.readthedocs.io/en/release/ There’s a lot to go through. Take your time and go through it step by step.
Hyperledger is a collection of open source blockchains and toolsets driven and backed by various companies and they all have their unique angle. They are all private and permissioned based blockchains and targeted towards business use case. Fabric for instance has a modular design and targeted towards most general applications such as supply chain and asset management. Fabric has centered its design around core features important in any business network namely identity, privacy, confidentiality, performance and scalability. Modularity provides flexibility and smart contracts allow for “self” execution of business rules.
- A gentle introduction to The Hyperledger Project