Holochain 0.5 is recommended for use.
We’re now recommending Holochain 0.5.2 for general development. The upgrade guide tells you everything you need to know to get your hApp updated and running.
Holochain 0.5 is already in the hands of early adopters, and the feedback so far is that it’s much more consistent, which makes it feels faster. Here’s a message we got from the lead dev of a project:
Initial test feedback on Holochain 0.5.1 is that gossip is performant. We've noticed that time to reach full DHT sync is approximately 1 minute down from 30+ minutes.
A 30× speedup is a big leap. The dev explained that with Holochain 0.4, synchronization would sometimes be fast, but other times it could be extremely slow or not complete at all. Now, new data shows up reliably — it takes up to a minute to appear for new peers and is almost immediate for already synced peers.
Interestingly, performance wasn’t the focus of 0.5 — it was about making peer networking more reliable.
Let’s look at that one-minute delay for new peers, because it’s important for developers and users to understand.
With Kitsune2, Holochain 0.5’s new networking implementation, the behavior for newcomer nodes has changed somewhat. Initially, most DHT data won’t be visible, and they won’t immediately receive new data from other peers — this is the time when their node is trying to discover other peers and sync data with them, and hasn’t yet advertised that they’re storing and serving data (so they won’t receive publish messages for new data).
At the beginning, the gossip loop happens every minute instead of the default five minutes, in order to get this initial sync completed sooner. After this stage — one, two, or a few gossip rounds depending on the number of peers and amount of data — the newcomer has a full peer table and a full DHT shard*, so they drop the gossip frequency to five minutes. Now all data lookups are local (so they’re fast). They’re also getting new data directly from authors via publish rather than gossip (so that’s fast too).
Known issues:
We’re working on an 0.5.3 release to address feedback from early testers. Here’s what we plan to tackle:
- When an agent goes offline, other agents may keep trying to connect to them for up to 20 minutes, which will cause network errors and slow data synchronization. We’re tracking this (Holochain #4978, #4999, #5000, #5017). (Note: this is a long-standing problem that has become more visible now that networking as a whole is working better.)
- We’ve received feedback that the new initial syncing behavior creates a feeling of unresponsiveness for new users, so we’re looking at strategies to help initial sync complete sooner (kitsune2 #220).
These will be addressed in the 0.6 dev release series and backported to 0.5.
In development
In the Holochain 0.6-dev line, work is being done on SQL query performance. I reported some good progress in last Dev Pulse, and since then, general query execution time has been cut by 25% across the board.
This release series will also address the feedback on 0.5:
- Agents will fetch data from multiple peers in parallel to get a response faster, and in case one happens to be offline (Holochain #5000).
- Unresponsive peers will be tracked (kitsune2 #221) and filtered from gossip rounds until they come back online (kitsune2 #222).
- Existing agents will permit bursts of gossip from newcomers, to help them get synced quickly, while newcomers will attempt new gossip rounds as soon as they’ve fetched the content they discovered during the last round, until they’re in sync (kitsune #220).
Most of this is already complete and ready to be backported to 0.5.3.
In 0.6 we’re also planning to work on:
Along with various bug fixes and maintenance tasks.
In a later release we’ll focus on building more test scenarios and reporting on test metrics from Wind Tunnel.