Holochain Code Review and Distributed Computing Thoughts
Share this article
Holochain is not really like anything I’ve seen before, so this code review won’t be quite like anything you’ve read from me before. The Holochain scalable distributed computing model seems to be taking decentralization to a new level, but bloody hell, is this thing just too good to be true?
Agent-centric, this is an interesting concept, something like blockchain is data centric, the consensus engine focuses on what bits of data they agree upon and then share this with each other to reach consensus.
Now we need to quickly talk about another protocol called git. Git is used for source control management. Git is a DAG, but it isn’t managed in a data-centric way. Instead, let’s say you have 3 developers, each one is working on their own version of the code, when developer 1 is happy, he commits his code into git. When developer 2 is happy he also commits his code, git automatically merges 1 and 2 (because there aren’t any conflicts) when developer 3 merges however, we have a conflict, now developers 1, 2, and 3 have to come to consensus on their data.
Holochain is calling this agent-centric. User driven consensus, as it were.
The interesting implication here is the differentiation of shared consensus. In the example above 1 and 2 originally had shared consensus since they needed to agree, 3 (until he did his commit), didn’t need any consensus from 1 and 2.
This is what holochains are accomplishing, each node can hold its own source of truth, and only if this needs to be shared with another do I need to do so. So I could build my own hosted dApp (or hApp) in my own hosted environment on top of Holochain, and unless I wanted to, I didn’t ever have to interact with the rest of the shared distributed hash table (DHT).
I think the above is an important distinction. “A holochain is a validating distributed hash table (DHT) where every node enforces validation rules on data against the signed chains where the data originated, this is not consensus, and that is why this is “blockchain-like”.
So the thing to note here, each person has their own copy of their hashchain, if I want to transfer funds to you, we both sign this in our own local copies, and then we share it to the outside world.
The idea here, is that not all data needs to be shared with everyone. If A and B wish to transfer value, and they agree, C doesn’t have to know about it. This is a good idea for systems where not all parties need to participate, social networks, chat programs, p2p platforms, things like shared document updates. It’s essentially a large scale hosted shared git repository for collaboration.
Holo, Holochain, Ceptr, and MetaCurrency are all the same thing, this is confusing at first, but MetaCurrency is the root, they have their next generation Operating System (Ceptr) and Ceptr is Holochain with Holo being their first real world application system.
Project started around in December 2016. Back when dinosaurs ruled the Internet.
Lots of commits (of substance) good branch management, large contributor sample size.
The repo is a bit difficult to navigate, all the files are just thrown into the root, but we won’t care too much about that.
First impressions, this is really good code. New standard kind of good.
A lot of production considerations already in. This code is scary good.
I love this code. File after file after file is just amazing. I’m going to be spending a lot more time here.
Credit given and optimization added. I can’t get enough of this code. (Editor’s note: cold water thrown at Andre about this point.)
Finally a mistake, sure, it’s just a spelling mistake, but I was started to get worried this code didn’t have any!
Guys, this is something else, after seeing the above code, I started exploring a bit more.
Clutter, a fully distributed twitter built on holochain.
Holo Vault, built in permissioned, user controlled KYC. Just because.
Holochat, a distributed Slack. This is actually insane. There is so much here already. Everyone is going on about the new distributed Internet, here it is. Ready to be used.
And their model? What is the Holo token all about? So along with the new distributed Internet, comes the new distributed web hosting solution, that’s exactly what Holo is, if you are willing to host some websites in a distributed fashion, you get paid in Holo, you want to host your website? You pay some Holo. That simple.
Now I know I normally only stick to the code, but I figured I need to look at some of their token metrics, this honestly seems too good.
What? Ok, so let’s break it down (and I had to read it a few times).
Total Supply? However many tokens are sold + 33%, essentially they are selling 75% of all tokens. Last time I checked, they were sitting at 8k ETH raised. So right now it’s $4.5m for 75% of tokens sold.
Oh, and did I mention they have a plug and play device you can buy?
Buy it, plug it in, start earning Holo. Surely it can’t be this easy? Right?
Holochain Code Review – Conclusion
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repo’s made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time. Information contained herein should not be used as any comment or advice on the project as a whole.
Holochain Code Review Timestamp: April 18th, 2018 at 20:46 GMT