Deciding Between Ethereum or Hyperledger : Contributing Towards Open Source Development

So…In the Blockchain world there’s a ton of super cool development opportunities, and I would go as far as saying life changing opportunities. Currently the Blockchain open source development community is surrounded by 2 similar yet different technology’s. Those two are Hyper Ledger and Ethereum.

See, Ethereum is a fully running and public Blockchain, similar to Bitcoin, but many people would say it is the improved offspring of Bitcoin. Whereas, Hyper Ledger is an attempt at organizing an ‘enterprise’, open-source, and consortium for the creation of business Blockchain applications. I say attempt because, although their development and growth has been pretty active, anything involving ‘enterprise’ and ‘open-source’ I find pretty scary. I draw examples from RedHat & any CRM ever, but even then I think more of the scary fact is that it is a consortium of the world’s largest corporation's as well as FinTech’s in the Blockchain space. I’m just skeptical to a degree only because, can these organizations really work together to create a well functioning, and applicable enterprise Blockchain? Part of the reason is, as a consultant from Accenture I’ve build a fair bit of a resume working with some of these organizations and even FinTech’s that it has me questioning whether there will be real input and organizational structure within this consortium. Not only that, but will their development resources be able to correctly pool together to actually build the product? Enterprise products can only go so far with simply open source contributions, which is currently how Fabric is moving forward at the moment. Fabric being Hyper Ledger’s main Blockchain infrastructure for any noobie out there.

Anyways, regardless of the fact that Hyper Ledger is an enterprise consortium for the development of a few open source Blockchain technologies, I think it still definitely has some potential. As I mentioned earlier, there main ‘open source’ product is Fabric, which is essentially a private Blockchain any developer or person can setup and run smart contracts, crypto currencies, and other standard DT stuff. Overall, I think there’s a definite difference from the fundamental Ethereum protocol and platform. The main difference being that Ethereum is a fully running public Blockchain, which facilitates the exchange of their crypto-currency Ether, which you can of course convert to other CC’s using Exchanges. Not only that, but it has everything else such as DAOs, Smart Contracts, and the ability to create a custom private Blockchain. I would also offer the caveat of the fact that just recently the Ethereum foundation made a partnership with major consulting and financial organizations, to also build a consortium behind creating an enterprise/banking grade Ethereum platform.

So all in all, safe to say both platforms are both magnificent in their feats and capabilities. But I think, as a developer it’s important to make the distinction in terms of what’s best from a growth and open source development perspective. Now, from looking at the Hyperledger & Fabric docs:
https://www.hyperledger.org/community/projects
https://hyperledger-fabric.readthedocs.io/en/latest/

This definitely isn’t easy stuff, just to get the dev environment setup you have to:

  1. Setup a couple Docker containers
  2. Setup Golang
  3. Bootstrap VM using Vagrant
  4. Build & Run Repo

I would say these steps are relatively standard, but it’s Golang is what really pisses me off here. I mean don’t get me wrong, it’s a pretty sick, innovative, and a functionally written language, but does the average person have experience with it? Hyperledger has taken this into account and is working on a few SDK’s like Java and Node, but are still in their infancy stages. Overall, this just feels and seems like a pretty big rabbit hole to setup, deploy, contribute, and merge. I would also add, the open developer community on gitter, slack, etc. is no where as big as on Ethereum. So let’s do a similar check with Ethereum and the open source contribution possibilities there too.

First off, Ethereum comes with many GUI applications, like the wallet, command line tools (not gui but still cool), and a Blockchain GUI app. Not only that, but you can setup clients to connect to the Blockchain, they’ve created web socket libraries and clients that may be deployed through Windows, OSX, etc. to connect & perform development. Docs linked here:

Now here’s the thing, even though the platform is live and running it’s still incredibly massive. In my case, as a beginner open source developer and intermediate Blockchain developer I have to make the call between a project that will allow me to get involved as well as work on tasks that are of enough important that allows me to grow and gain some what of a reputation. The other thing is, I think I need a project that gives me enough support in terms of a community, manageable issues/tasks, and an easy to start dev environment.

So…I found exactly that:

It’s a Java Client for Ethereum and you can easily setup and deploy using Intellij IDEA (which I’ll also be doing a blog post on with me testing out EMACS too). It also has a pretty decent and active community on gitter: 
http://ethereumj.io/
https://gitter.im/ethereum/ethereumj

Overall, I think I’m going to start with setting up Etherem J, running the client, and figuring out how I can contribute, as well as some great issues for me to look into.

Thanks for joining me on the journey.
Cheers,
Arsalan