The development of Holochain RSM and the milestones of the Holochain application suite
Author: Holochain
Compiled by: ChainCatcher
A few weeks ago, we announced and opened the code repository for Holochain RSM—the new version of Holochain with a restructured state model (RSM). If you have followed some more technical articles or AMAs where Holochain co-founder and chief architect Arthur Brock described the fundamental principles of the changes, you may already know that it’s not just the state model that has changed. The reception of this news has been profound. Developers are excited to see progress and are fully engaged in testing this new version of Holochain, and the feedback so far has been astonishing. We repeatedly hear the chorus, "It's so fast" and "It's surprisingly simple." This is great news for Holochain and for Holo, as the adoption of the ecosystem is one of the keys to our success. What we've been saying for years is that blockchain is interesting in how it handles cryptography, security, and trustworthy data, but it also has limitations because it misses everyday network users, which is key to adopting distributed technology.
If we want the technology to succeed, we must be able to build distributed applications (dApps) that can go mainstream.
The projects that have the potential to go mainstream are the ones we are starting to see being built with Holochain. In our ongoing video series of ecosystem meetings with David Atkinson, he outlines in conversations with project leaders why Holochain is their preferred framework for maintaining distributed data control. These and other upcoming projects that support useful consumer applications—without canceling user agency—are key to Holo's value proposition and growth.
To understand the diversity of use cases, check out these upcoming projects, many of which have been waiting for Holochain RSM to truly showcase its working potential:
There’s more in the works, including our own Elemental Chat, which we will share later in this article.
Before we begin, let’s pull it in a bit and talk about our development path at Holo. We know that for many who have invested in the success of this project, you are most eager to know, "When will we have open alpha testing—then beta?" Let’s try to answer that question.
Last Friday, the final Holo version using "Holochain Redux" (what we called the previous version of Holochain) passed QA testing and began testing by selected community members, this week for our first hosted demo hApps accessible via web browsers. As you might imagine, expanding community participation in this old version makes little sense as we transition to Holochain RSM. However, as we deploy the hosted network infrastructure, HoloFuel and the Redux version of Holochain are currently running well for browser-to-HoloPort testing, even as we begin integrating with Holochain RSM, supporting our continued learning. As we have shared in recent blog posts and updates, this hosted infrastructure includes aspects like DNS, routing, pairing, and browser-based key management.
Here’s a chart to help you understand what Paul d'Aoust described in more detail in this week’s Dev Pulse regarding what is happening at a high level:
So how exactly is Holochain RSM changing our Beta path? To achieve this, there must be two sets of clear milestones. The first set includes two "infrastructure milestones," each showing specific end-to-end functionality of applications used on the Holo network after updating the applications we have built to work with Holochain RSM. The second "Holo application suite milestone" involves specific functionalities required for the Holo product suite (as described below), which depend on the underlying Holochain backend applications (DNA) and multiple integrated business services.
While these milestones require integration or new builds using Holochain RSM, a significant amount of work has already been completed by meeting many of the necessary applications and tools required for these milestones. There will be no pause between where we are today (using the Redux version of Holochain) and where we will be with the full deployment of Holochain RSM, but rather a transition. This is what you can expect to see as we continue forward.
We are moving towards achieving the first infrastructure milestone, which means HoloPorts can provide RSM applications for their host owners. In the past few weeks, we have redesigned the HoloPort operating system to use the new keystore binaries in Holochain RSM and generate keys. We have also built RSM on our HoloPort update server (Hydra), which assures us that the deployment pipeline to HoloPorts is ready. We have further reviewed and deployed the initial algorithms for matching published applications with available hosts.
More excitingly, the Elemental Chat application, which only allows users to create channels and join discussions, is already running on Holochain RSM.
This week we are working to ensure that host credentials are configured so that when hosts log into their HoloPort, the chat application will automatically use them. So, in short, the team has been rapidly advancing this transition process, and we hope to start testing RSM applications on HoloPorts in the coming weeks, followed by community testing.
The second infrastructure version will closely follow the host version of Elemental Chat and will focus on accessing the same RSM applications via the browser so that the community, apart from HoloPort owners, can start using the hosted Holochain RSM dApp. The second infrastructure version will showcase end-to-end hosting using RSM dApp on Holo. At the time of this version's release, we will be running three backend Holochain applications (Elemental Chat, Service Logger DNA, and Holo Hosting DNA) using Holochain RSM, allowing us to conduct more thorough testing and benchmarking. Our goal is to perform load testing to measure applications running on thousands of nodes while maintaining acceptable levels of concurrent transactions. After that, we will expand testing to volume and endurance rounds.
Once everyday network users prove that Elemental Chat can run in the browser, our focus will shift to the user experience on the Holo platform. At that point, we will continuously iterate on many small feature releases of the Holo application suite. This suite consists of the Host Console, Publisher Portal, and HoloFuel.
Compared to how we have talked about Holo in the past, the way we describe the Holo product suite (with primary interfaces dedicated to hosts and publishers) sounds straightforward. It’s not that the architecture has changed significantly, but rather that after the release of the two infrastructure versions, our approach will shift from dealing with the underlying components (with all their quirky names) to providing an excellent user experience for hosts and publishers. Many of the foundational components required for these versions have already been developed or are being ported to RSM.
The advanced features of the Host Console include:
The advanced features of the Publisher Portal include:
From the features mentioned above, you may see that both the Host Console and Publisher Portal utilize the HoloFuel backend as components of the platform. That is to say, the HoloFuel application can also serve as a standalone Holochain application for sending and receiving HoloFuel transactions unrelated to hosting.
What is not visible from these feature lists are the backend applications, components, and services, as well as the ecosystem tools required to run the Holo application suite. In addition to all the infrastructure components described in the first part of this update, the platform also requires the following components. Most of these are in progress or being built and are being migrated to RSM.
Additional backend applications and business services
Service Logger DNA (migrating to RSM—used for infrastructure milestone 2) The Service Logger is inherent to hosting and tracking all backend requests and responses that web users make to and from HoloPorts, allowing for measuring hosting work and invoicing.
Holo Hosting DNA (migrating to RSM—used in infrastructure milestone 2) Holo Hosting DNA contains the host and publisher information required to operate the hosting marketplace, such as pricing, performance requirements, and hApp registration data.
HoloFuel DNA (migrating to RSM) HoloFuel DNA is the data and business logic for the hosting payment settlement application in the Holo hosting ecosystem, supporting HoloFuel transactions, validations, and hosting invoices as well as reserve accounts.
Verifiable Claims DNA (new feature of RSM) Verifiable Claims will support KYC, and because it is based on the W3C Verifiable Credentials standard, it will more broadly allow users to express credentials on the web in a cryptographically secure, privacy-respecting, standardized, and machine-verifiable manner.
hApp Store DNA (new feature of RSM) The hApp Store is for publishers and Holochain users, allowing them to search for all hApps available for use on Holochain and/or published on Holo.
DeepKey DNA (Holochain Core to build for tight integration to RSM keystore) DeepKey is a public key management tool that allows users to declare multiple keys as belonging to the same person, replace keys, and regenerate them. It does not directly store seeds or keys.
Infrastructure for HOT reserves for purchasing, exchanging, and redeeming (in progress) The HOT reserve infrastructure connects ERC-20 transactions with HoloFuel, enabling cross-chain validation of purchase and redemption transactions.
Developer Tools & DevHub (in progress) Developer Tools help new developers model and build Holochain DNA and UI, while DevHub is the developer console where hApps are uploaded and tested, as well as a place for other ecosystem developers to review/rate.
It is important to understand that without a product-based UI for the Host Console and Publisher Portal, it is difficult to demonstrate the components and DNA work described in the previous section. As we integrate and release the functionalities of these two products, we will test the usability of each component. Following the two infrastructure versions described earlier, the milestones we will strive for in the Holo application suite are as follows:
Each of these major milestones will consist of smaller feature releases that will be tested with the community before being rolled out and more widely used for Open Alpha UI/UX testing. At the end of these milestones, the entire cycle of publishing, hosting, invoicing, and payments using HOT reserves will be testable.
Throughout the entire process of achieving the full functionality of the Holo platform, we will intermittently announce other achievements and outcomes as they relate to the functionality releases of Holochain, developer ecosystem tools, and operational workflows.
Next Monday, October 19, we will hold an AMA where David, Arthur, and I will answer your and others' questions about Holochain RSM and Holo. We are very grateful for all the participation from our various groups and community members (including Holo hosts, Holochain application developers, community leaders, HOT holders, and especially our testers) in the ecosystem. I want to reiterate another thank you to the teams inside Holo and Holochain for the incredible commitment and perseverance you have shown time and again, especially over the past year, given many external circumstances and challenges. Thank you.