On the Holo build out we’re really pleased with the fact that we passed 3 milestones in (less than) three months over the holidays. Here is a short description of those milestones as they appear on our roadmap, and why they matter.
A proof-of-concept app, Elemental Chat was designed to stress-test the Holochain framework and the Holo hosting network built on it–and it did exactly that. We hit 5,000+ peers on Elemental Chat, with as many as 1,000+ peers simultaneously chatting! We're pleased with those numbers for three important reasons: 1) Elemental Chat was hosted on HoloPorts in peoples' homes around the world; 2) We've learned a tremendous amount about Holochain and the Holo infrastructure; and 3) This version is unsharded, so there is even more potential once sharding is enabled making massive scaling of Holochain possible.
Over 50+ people engaged in two pre-release tests with us--and the majority of the feedback was similar across many people. This makes it easy to determine ways we can improve HoloFuel before the next round of testing. Though the details are often nuanced, we're happy to be finding and improving the HoloFuel app because it falls at a challenging intersection of app-types including: crypto, financial, and mutual credit.
Though it isn’t particularly flashy it represents the interconnection of the entire suite of Holo apps that make our distributed hosting network work possible including: Host Console, Publisher Portal, and HoloFuel. It also enables new Holochain-based secure identities so regardless of how a user is interacting with the network–or even if they’re engaging with all three applications–their identities will be integrated across all of them.
Until now, Holochain has never had a publicly defined roadmap; we instead simply highlighted a few key milestones on Holo’s roadmap. That said, we have completed a lot of amazing work on the latest rust version of Holochain and you can read about 23 of those accomplishments in our year-end Dev Pulse. Highlights are the Holochain RSM Launch and the subsequent 0.0.100-alpha.1 Release incorporating developer feedback, Countersigning for multi-party coordination, a Sharded Gossip MVP implementation, the user-friendly Launcher, a graphical Scaffolding Tool for rapid application development, and an Expanded HDK feature set including countersigning and many others.
We’re entering a very exciting phase for Holochain and it’s evident from all that is being said by the Holochain core team and so many of the community members about the growing maturity of the framework. Here are a few comments that caught our attention recently:
Holochain RSM has unlocked so many benefits to its users and the recent public releases have shown that. We are currently averaging 1,100 active agents on Holochain during a period when we do not have a running public release and this goes to show how much users are trusting Holochain more and more.Abe Njama, Holochain core Product Owner
Although there are many pieces to a fully working Holochain network, I think we’ve hit a flow that is allowing progress without convolution. Which is very hard to achieve using decentralized principles.Matthew Brisebois, Application Developer
Holochain has been improved and polished in terms of feature set and inconsistencies and bugs with the help of the community over several years, so it's gotten out of childhood.Jost Schulte, Application Test Developer
Below you will find the new Holochain roadmap milestones, descriptions of the milestones, and why each matters in the bigger picture framework. We’ve also included as well as some commentary from the dev team about the work. We’ll be updating the roadmap with more details, including past milestones, in the near future.
Sharded gossip that is performant, resilient and that works well at any scale. This will allow all peers to quickly come to consistency regardless of the number of peers in a DHT.
Why it matters: We’ve often talked about the limits to blockchain scalability; sharding is one of our key answers to those limits. Sharding is necessary for building scalable peer-to-peer networks that can drive everyday applications with good performance at zero cost. We’ve had the basic components of sharding working for a while, but it’s been going through a ‘hardening’ process where we test it in a variety of ways and ensure it’s ready for prime time. With this milestone, it becomes a default setting for Holochain.
Peers on the DHT can create warrants for invalid data or bad network behavior, broadcast them, and respond to them by taking defensive action against dishonest peers.
Why it matters: Holochain does not have a consensus mechanism that incentivises good behavior through threat of economic loss. Instead we’ve opted for a more nimble, adaptive approach — warrants are a low level mechanism in Holochain that use peers in the network to validate the integrity of entries. It’s why we call Holochain an integrity engine. When an entry is warranted, it means that another peer in the app has identified that a user’s source chain has broken the rules of the application and that the data on the chain is invalid. We call it an immune system because it is always on the ready and working in the background to protect everyone in the application network. It automatically empowers peers to recognize and neutralize threats in a distributed way.
There is a clear and universal format for storing references between distributed hash tables (DHTs), to and from private data on user chains, any type of DHT hash (including headers), and external resources.
Why it matters: This milestone enables developers to express more complex relationships between data, and these relationships are at the heart of any useful application. Developers will be able to link to and from headers, private entries, data that lives on other applications’ DHTs, and possibly even data that lives outside of Holochain. It might be helpful to think of HRLs as the URLs of the Holochain application framework.
A mature version of the Holochain Developer Kit (HDK) is released, considered stable and is well-documented.
Why it matters: The release of the first stable Holochain Developer Kit (HDK) 0.1.0 will essentially be two distinct HDKs— a minimal, frozen “Integrity HDK” and a “Coordination HDK.” This is an important milestone for production-ready hApps. It means that developers can split their hApp’s code into two pieces — ‘integrity’ code that defines the ‘rules of the game’ and remains stable over long periods of time, and ‘coordination’ code that reads, writes, and transfers that data and can be iteratively changed without forcing a migration on users. As core developer David Meister says, this “should make it much easier for teams to keep their code running for long periods while still performing maintenance and feature upgrades.”
A more secure version of Holochain that incorporates advanced network security protocols and addresses known Holochain security vulnerabilities.
Why it matters: Security matters, obviously. By making sure Holochain is secure, it will make the framework adoptable by a wider range of projects because it will give risk-conscious developers and organizations the confidence they need to move their apps to Holochain.
The HDK (Holochain Developer Kit) supports creating both opening and closing source chain entries which mark the beginning and end of an agent’s participation in a network and point to their new presence in another network.
Why it matters: In a typical web application or platform, changes to code happen all the time and these changes are easily deployed to all users. It works because the data and the code are segregated. With Holochain, data and most of the critical business rules are combined. The combination is what makes Holochain a data integrity engine, one that works peer-to-peer and with validity. It's also what makes updates to applications challenging. This milestone is the first step towards robust migration support—where the user source chains can be marked as closed in an old version of the app and they can point to a new source chain that is compatible with the newer version of the application.
A new test framework to spin up 100K+ agents and orchestrate tests on them in “real world” scenarios that don’t assume they will all work and stay on-line.
Why it matters: This was widely seen by the dev team as one of the most important milestones. Our current testing tools, Tryorama and TryCP, won’t work for large-scale testing due to single-machine bottleneck.The developer community is excited too: as application and tool developer Guillem Cordoba says: “It would allow devs to actually see the problems that their app has. Then, when the problems are identified, they can ask for help from the community, figure out which libraries have already been written to address their use-case. So it enables a much richer feedback-loop and learning patterns.”
Why it matters: This release is less about introducing new features and more about putting an official stamp of maturity on Holochain. As with the Security Hardening milestone, this will signal to mainstream devs and organizations that Holochain is capable and ready for them to build production applications that they can trust will work.
Why it matters: Holochain is meant for recording permanent data, but a lot of data that makes an application feel ‘alive’ — status indicators, notifications, ‘most recently used’ lists, typing indicators, and real-time document edits — isn’t worth keeping forever. This feature creates a separate data store on top of the DHT for data with finite lifetimes.
Ability to structure private entries as Merkle trees and selectively expose fields using Merkle proofs.
Why it matters: Often, when a third party is asking for a little bit of your personal information, it’s not necessary for them to actually see it all (although they might want to). Your driver’s license is a good example: you might want to use it as proof that you’re old enough to enter a night club, but the night club doesn’t need to know where you live. A Merkle tree would let the driver’s licensing office create a digital signature for all your license data in a way that lets you reveal and prove your age without revealing your street address.
The ability to spawn a new isolated network from a template DNA packaged in a hApp at any point after installation.
Why it matters: In many applications, you’re able to create separate spaces and assign different memberships and privileges to each of them. Clonable DNAs will allow applications to create a private chat among four teammates, a subscribers-only blog, a document with restricted access, or a temporary throwaway upload folder.
Event listener hierarchy to subscribe to notifications of particular DHT changes. Has an upstream dependency on the Ephemeral Store for tracking subscriptions.
Why it matters: Developers can already use signals to send ephemeral messages between peers. This is often used for events that update users on the status of a process, such as a new message notification or a request to acknowledge a transaction. But a lot of these messages mimic DHT gossip that’s already happening. Pub/sub allows an agent to subscribe directly to these ‘subconscious’ messages and take action or update the user’s UI immediately. This saves work for the developer.
Compilation of known attacks or vulnerabilities. You can run your hApp through the Attack Factory to identify vulnerabilities in the hApp.
Why it matters: Security is always a combo of the framework/language/infrastructure being used and the way the application is built. The Attack Factory will clearly indicate the kinds of risks to watch for using Holochain and Holo and allow apps to test for these. It might also indicate the kind of things that are typically issues for blockchains but are less problematic using Holochain and Holo.
Though our team lives across both hemispheres, there is definitely a sense of ‘spring in the air’ that shows up in the form of an energised momentum within our team. One thing that contributes to that feeling is that we’re growing our team.
In the past few months we have added several team members who are contributing new skill sets and capabilities, and we have several more dev team roles open right now. As you may recall, during the reset in early 2020 we had downsized to a single Holo dev team, and in recent months, we’ve grown it back to two teams again and we’re increasing our testing capacity in each as well. On the Holochain side we brought in a product owner who is able to support this widely dispersed core team in nuanced, efficient, powerful ways–which is in part why we’ve been able to focus on creating the Holochain roadmap and his role is crucial in the delivering of the milestones we describe in detail above. We’re also in the process of forming an entirely new Holochain Components team and we’re adding to several other areas of the organisation as well.
In closing, we’ve updated the Holochain website with a visual roadmap and we will be holding a special Holochain developer-focused AMA on 4th April. We’d love to hear your questions, so please share them! Sometime soon we’ll be creating a Holochain Components roadmap, which will outline more of the ecosystem tools, libraries and components that developers who are building apps may be especially excited to hear about. We are committed to ensuring that building hApps, is as easy as baking a pie. We hope you’re as excited about this roadmap as we are–Holochain has already reached a watershed moment in terms of what it makes possible and these upcoming milestones point to how Holochain will make real the vision of peer-to-peer applications that are secure, reliable, and incredibly efficient. Holochain is a core building block of a truly open Internet.