We released Holochain 0.5.5 on 19 August and all tooling and libraries are now up to date.
Holochain 0.5.5 and 0.5.6 released
With these releases, we’re continuing to work on network performance for the Holochain 0.5.x series. There’s been a bunch of bug fixes and improvements:
- New: At build time, Holochain can be switched between libdatachannel and go-pion WebRTC libraries, with libdatachannel currently the default in the Holochain conductor binary release and go-pion the default in Kangaroo-built hApps. go-pion is potentially free from an unwanted behaviour in libdatachannel, in which the connection is occasionally force-closed after a period of time. If you’ve seen this behaviour, consider trying your hApp in a Kangaroo-built binary to see if it’s resolved.
- Changed: Some tracing messages are downgraded from info to debug in Kitsune2 to reduce log noise.
- Bugfix: Make sure the transport layer has a chance to fall back to relay before timing out a connection attempt.
- Bugfix: When Holochain received too many requests for op data, it would start closing connections with the peers making the requests it couldn't handle. This caused unnecessary churn to reconnect, rediscover what ops need fetching, and send new requests. Instead, the requests that can't be handled are dropped and have to be retried. The retry mechanism was already in place, so that part just works. When joining a network with a lot of existing data, the sync process is now a lot smoother.
- Bugfix: Established WebRTC connections would fall back to relay mode when they failed; now the connection is dropped, and peers will try to establish a new WebRTC session.
- Bugfix: If a WebRTC connection could not be established, the connection would sometimes be left in an invalid state where it could not be used to send messages and Holochain wouldn't know to replace the connection to that peer.
- Bugfix: Holochain was using the wrong value for DHT locations. This was leading to differences being observed in the DHT model between peers, who would then issue requests for the missing data. The data couldn't be found because the requested locations didn't match what was stored in the database. This led to DHT sync failing to proceed after some period of time. Note: updating a hApp from Holochain 0.5.4 or earlier might cause a first-run startup delay of a few seconds as the chunk hashes are recalculated.
- Bugfix: Kitsune2 contains a fix for an out-of-bounds array access bug in the DHT model.
Shifted priorities for 0.6
We’d originally planned to start the groundwork for coordinator updates (allowing a cell’s coordinator zomes to be updated) and DHT read access gating via membrane proofs in Holochain 0.6. We’re now going to push those to a later release in favour of focusing on warrants and other features that offer functionality that considers the strategically critical priorities of our partners.
These are the major themes of our work on 0.6:
- Resolving incomplete implementations of the unstable warrants feature, writing more tests, and marking the feature stable for all app and sys validation except chain forks.
- Finishing the work that allows Holochain to block peers at the network level if they publish invalid data.
- Making sure that the peer connection infrastructure is production-ready.
- Continuing to build out the Wind Tunnel infrastructure and test suite.
There are a few smaller themes; check out the 0.6 milestone on GitHub for the full story.
Wind Tunnel updates
With many of the big gains in network performance and reliability realised in the 0.5 line and two new developers joining our team, we’ve freed up developer hours to focus on the Wind Tunnel test runner once again. Our big goal is: make it more usable and used. To this end, here are our plans:
- We want to run the tests on a regular, automated schedule to gather lots of data and track changes over Holochain’s development.
- Rather than it being a requirement that a conductor is running alongside Wind Tunnel, Wind Tunnel itself will run and manage the Holochain conductor, allowing us to test conductors with different configs or feature flags within a scenario.
- Wind Tunnel already collects metrics defined in each scenario, but we are expanding on this to collect metrics from the host OS, such as CPU usage, and from the conductor itself. This will give us insight into system load and how the conductor is performing during the scenarios.
- More scenarios will be written, including complex ones involving malfunctioning agents and conductors with different configurations.
- More dashboards are being created to display the new metrics and give us insight into how the scenarios perform from version to version. These will then make it easy for us to track how Holochain's performance envelope changes as new features are added, and also to make it easier to prioritize where to focus our optimization efforts.
- We plan to run multiple scenarios on a single runner in parallel to make better use of the compute resources we have in our network. Along with adding more runners to the network, this will reduce the time it takes to run all of the tests, which will let us run the tests more often.
- We’re creating an OS installation image for Wind Tunnel runners, allowing any spare computer to be used for Wind Tunnel testing. This will let people support Holochain by adding their compute power to our own network.
Holochain Horizon livestream
If you’re reading this, you probably care about more than just the state of Holochain development. We’re starting a series of livestreams that talk about things like where the Holochain Foundation is headed and what’s happening in the Holochain ecosystem.
The first one, a fireside chat between Eric Harris-Braun, the executive director of the Foundation, and Madelynn Martiniere, the Foundation’s newest council member and ecosystem lead, was on Wed 30 Jul at 15:00 UTC. Watch the replay on YouTube.
Next Dev Office Hours call: Wed 17 Sept
Join us at the next Dev Office Hours on Wednesday 17 Sept at 16:00 UTC — it’s the best place to hear the most up-to-date info about what we’ve been working on and ask your burning questions. We have these calls every two weeks on the DEV.HC Discord, and the last one was full of great questions and conversations. See you there next time!