A Big Leap Forward for Holochain & Holo
A New Holochain
Throughout 2020 we’ve shared about building, releasing and testing HoloFuel and the HoloPort Admin Console for application hosting. We’ve also been sharing just a little bit about the refactoring work in Holochain that was needed to bring Holo hosting and wide adoption of Holochain to fruition.
Today, we’re extremely happy to announce a new Holochain. Holochain RSM has a completely refactored state model (RSM) and represents a deep rethinking of some key architectural choices as compared to the previous version, which we now refer to as Holochain Redux. With Holochain RSM we’ve gone back to basics and have simplified the code base to achieve a quantum leap in performance.
How does Holochain RSM compare to the former version?
- Holochain RSM with Wasmer runs orders of magnitude faster
- Holochain RSM uses less memory
- Holochain RSM compiles a third faster
- Holochain RSM has much more maintainable code
- Holochain RSM is nearly ready now for the switch to full P2P networking
- Holochain RSM has improvements that simplify the work for app developers
- Holochain RSM integrates the capabilities model and is more secure
- Holochain RSM is more feature complete
Some of the new features include: user joining proofs to prevent Sybil nodes from joining the network, random number generation, system time being available from inside apps, and calling remote functions between network nodes using the unified capabilities security model.
If there is any downside, it is that because of significant changes to the Holochain Developer Kit (HDK), prior apps will need to be updated to run on this version of Holochain. But when they are updated, they will perform so much better!
We know there will be a ton of questions about this new release of Holochain and how it impacts our trajectory at Holo. We’ll cover a few high level-points here and we’ll post a deep dive article on the Holochain Blog tomorrow that explores all the technical and architectural aspects of this important leap forward for peer-to-peer application development.
Four Key Points about Holochain RSM
Holochain RSM is still built in Rust. It’s just built better. Performance optimisations which were necessary for Holochain to be the P2P infrastructure for IOT and microdevices come from significant redesign of the workflows that perform complex synchronous actions. Whereas the previous Rust version borrowed somewhat conceptually from the Redux pattern, Holochain RSM has its own ‘local first’ approach to state modeling and workflows.
Holochain RSM DNAs (back-end application code) still compile down to WASM. But now, it uses Wasmer to recompile down to machine code for even faster execution. We described the performance improvements in past Dev Pulse articles and now developers can see it working in Holochain.
Holochain RSM networking is based on QUIC protocols. These use a single layer end-to-end TLS encrypted connection between nodes, which has implications for performance improvements. This also means that we won’t be using sim2h or lib3h.
Holochain applications will now be easier to build. In addition to the simplified HDK, we’ve also created a new, clean API that hApp developers can use to bypass limitations of the HDK. Early reports from app developers say they can write the same app in about ⅓ as many lines of code.
The Path Forward & Holo’s Trajectory
Today, we opened the GitHub repository for Holochain RSM to the public. Over the past several months, some of the key developers in our community had early access, and have already begun building applications with the new code base. Feedback has been both helpful and extremely positive, and we’ve already prioritized some suggested features and fixes into our development schedule. Now, the Holo dev team is beginning to use Holochain RSM as well.
You may have heard about the mismatch errors we’ve encountered between sim2h and the Holochain conductor while testing HoloFuel. With Holochain RSM, these will no longer be a concern. The networking model of Holochain RSM is significantly simplified. Instead of using sim2h as a central switchboard, nodes maintain their own peer routing data in rrDHT. During testing we will use a central proxy to tunnel connections between nodes. After testing, nodes can specify their own proxy if they need one, so we’ll be immediately set up to switch over to full P2P networking. While sim2h enabled us to build and test the Holo hosting infrastructure, it has also become a source of delays in our ability to properly launch the hosting network beyond our Community Alpha Testers.
Development priorities for Holo have shifted to account for the release of Holochain RSM. We’ve moved away from continued troubleshooting of the mismatch issues in sim2h. The Holo dev team is still working towards a release of Holo hosting into our staging environment where it will be field tested with our Community Testers in all the ways we’ve recently described in the Dev Pulse. All of that work remains necessary, and while the testing of it will use the older version of Holochain, it will provide us critical feedback about our success integrating all the hosting platform components.
After that test release, the Holo dev team will be moving on to update the HoloPort operating system to use Holochain RSM and will enable a simple chat application to be ‘self-hosted’ on the HoloPorts, while we begin transitioning core hApps and HoloFuel to RSM. We are documenting our plans and will share our feature priorities for the key software products that run on and enable the Holo hosting platform: the Host Console, the Publisher Portal and HoloFuel.
Holochain RSM is still a work in progress, with a lot more updates coming, but it has crossed the threshold such that it is now better for us to develop on it rather than to continue with the Redux version of Holochain. Over the coming weeks we will provide deep dive technical examinations of the new code and will explore a wide variety of the implications it has for app developers, our partners and businesses around the world.
While Holochain has always been a unique and powerful framework, this leap in performance, consistency and usability with Holochain RSM is key for empowering creators of complex P2P applications to open up new models of tech and human endeavor.
A special thank you goes out to all the app devs in the community who have dug in to build, review, and give feedback on Holochain RSM. Kudos too, to the Holochain dev team for all their hard work and effectiveness these past few months. Finally we want to express deep gratitude for everyone in the broader Holo and Holochain community for your engagement and support.
Want to learn more about RSM? We’ll be holding a special AMA №42 RSM — The New Holochain with Art Brock our co-founder and CTO on Tuesday, September 22nd, at 8:30 PM UTC. If you have any questions please ask them in our quick form. If you’re a developer, you can find like minds by signing into the Holochain Forum.