The Hyperledger Ecosystem
When Hyperledger was announced in December 2015 and then further refined through early 2016, I saw all the corporations getting involved and I was immediately skeptical over the number of corporations getting involved. My cynical self assumed they would just try to own this growing technology segment. Since that time I ended up using Fabric and looked seriously at Sawtooth and Iroha, but in the former case, it wasn’t the right solution, and in the latter case, it wasn’t ready yet. I thought with the new Besu announcement that it might be an interesting time to run through the various technologies under the Hyperledger umbrella and what they do.
Hyperledger is essentially broken into three categories, there is the Distributed Ledger Technology (DLT), basically blockchain, the libraries, and the tools. So let’s dive in in alphabetical order grouped in the aforementioned sequence.
DLT’s
Besu is the new kid on the block, it comes from ConsenSys and was known as Pantheon. Besu is an interesting beast, it is a Java-based Ethereum client that implements the Ethereum Virtual Machine (EVM) that supports both permissioned and public networks, including test networks such as Ropsten, Rinkeby, and Görli. Supported consensus algorithms include Proof of Work (PoW), Proof of Authority (PoA) and IBFT2, which is a p2p based protocol. Besu includes web socket, HTTP and command-line interfaces for working and interacting with the Ethereum network. Smart contracts are supported.
Burrow is a modular blockchain client that contains a permissioned smart contract interpreter that is partially developed to the EVM specification and is intended to run EVM smart contracts. It makes use of the Tendermint proof-of-stake consensus engine. The project promises high transaction throughput so organizations can build EVM smart contracts and deploy them locally. Honestly though, this project doesn’t seem to be making huge headway in the last year, most of the updates on github seem to be minor, but I didn’t make an exhaustive look.
Fabric is probably the 800-pound gorilla in the Hyperledger universe, it is robust, it is being used and it has a lot of features. Fabric is a permissioned DLT framework that is enterprise-grade, with a modular design that gives you a great amount of flexibility in what you can do, I used this myself for a gaming marketplace and was really impressed. Basically you can deploy your own blockchain on your own computers and control your costs and environment.
Indy is rather interesting, it provides a self-sovereign identity ecosystem on top of a distributed ledger. So the idea is to have a blockchain stored identity system that can be used across other software systems. I like the idea here and it seems to be in active development.
Iroha is another interesting beast, I was looking at it for a gaming project a year ago and it would have been perfect, but it wasn’t far enough along. It is oriented around the manipulation of accounts and digital assets with a small set of fast commands and queries. The validation nodes can distribute half signed transactions using the Gossip protocol as part of multi-signature transactions. The blocks are stored in files while the ledger state is stored in PostgreSQL. There are a lot of possibilities here if you let your mind go free to contemplate.
Sawtooth another one I looked at for my gaming platform last year, but it wasn’t the right model for what we wanted to do, which is how we ended up with Fabric. The consensus initially used was Proof of Elapsed Time and requires some Intel software running on the computer to manage it, but now you have a variety you can choose from like RAFT and PBFT. What is really nice is that you can use a variety of languages for smart contracts, in a lot of ways it reminds me of Dragonchain. Sawtooth can execute Ethereum smart contracts via SETH (Sawtooth/Ethereum, get it?). If you are looking at deploying a permissioned blockchain, then Fabric and Sawtooth are the ones to look at.
Libraries
Aries is an infrastructure for blockchain-rooted, peer-to-peer interactions. It’s not a blockchain and it’s not an application and it is also not ready for use. The goal is to provide peer-to-peer interaction, secrets management, verifiable information exchange, and secure messaging for different decentralized systems. There is a tie in with both the Hyperledger Indy and Ursa projects. There are some interesting ideas here, but certainly not usable yet.
Quilt offers the ability to interoperate between ledger systems using the Interledger Protocol, which is typically used as a payment protocol. The library is used to transfer value across ledger systems by providing atomic swaps that even supports non-blockchain systems. Looking at Git, it appears to be very actively worked on right now and is certainly useful for people needing that functionality.
Transact is a pretty new project and there isn’t even a Git project for it. The idea is to create a standard interface for executing smart contracts, which is abstracted from the actual distributed ledger implementation. I like the idea of this as a way to simplify the whole smart contract process and open it up to other languages (I’m not a Solidity fan). I can’t really get a sense of where this is at currently, but the guy behind it has solid chops. Another one to keep in mind as you develop.
Ursa is a shared cryptographic library that is meant to avoid duplicated cryptographic work (get people using the same library) with the objective of also increasing security. It’s built using C and Rust (I’m not a fan of Rust) and has an honorable objective of reducing redundant work. It’s a bit hard to tell from Git how active it is developed or widely used yet, but they are far from a 1.0 release and there hasn’t been a new release since April 2019.
Tools
Caliper is a performance measuring tool used to gauge the performance of a specific blockchain implementation within predefined use cases. It will produce reports with a number of performance indicators, such as TPS (Transactions Per Second), transaction latency, resource utilization and more. It’s a useful tool to give you visibility on the technology implementation and where you might need to make changes. According to Git, it is live and useful across a number of current Hyperledger projects.
Cello brings an on-demand “as-a-service” deployment model to the blockchain to make it easier to create, manage and terminate blockchains. It provides a multi-tenant chain service on top of various infrastructures, such as bare metal, virtual machines, and in containers. Think of it a bit like Docker Swarm or Kubernetes but for Blockchains. It is often used in combination with Hyperledger Explorer.
Composer as of the end of August 2019, this project had been deprecated in deference to Fabric 1.4+. It makes things more convenient, but that one caught me by surprise, I’d used it a lot last year.
Explorer is a user-friendly Web application thst can view, invoke, deploy or query blocks, transactions and associated data, network information, chain codes and transaction families, and other relevant information stored in the ledger. This is an app that is going to be your friend if you are working in the world of Hyperledger, very actively developed and popular.
Finally, there is Grid, which is a framework for building supply chain solutions. I’m not really going to dive into it, it’s a collection of frameworks and libraries that work together to build supply chains. If you are looking at supply chain, then take a gander, but at the moment it really isn’t ready for primetime.
And there you have it, some very interesting projects, some of them are live and usable and some, not so much, which can be frustrating when you see one that looks like it can satisfy your needs. I do like what is happening in the Hyperledger universe though and it is certainly worth looking at. I really like being able to know what my infrastructure and costs are going to be when I’m deploying technology and things like EOS and Ethereum just make me nervous when people are talking about putting stuff like medical records on there.