The dev team just released Holochain 0.6.1, along with updated dev tools and documentation. The big story is a new transport layer built with Iroh, a P2P networking stack that aims to 'just work' on every device and every weird network condition you can throw at it. Reports are rolling in about 0.6.1's superior experience – peer connection establishment succeeds more often with a minimum of fuss, and gossip rounds complete more reliably, which makes Holochain feel faster. Here's a quote from Eric Doirean, who's working on a hApp called Flowsta:
We were running into issues with Holochain 0.6.0 with [Flowsta] Vault as Holochain comes up and down when the Vault is unlocked or unlocked. But Holochain 0.6.1 with Iroh has been solid as for over a week now.
The Unyt dev team also saw impressive reliability improvements over the rapid iterations of Holochain 0.6.1 RC releases during the HOT→HoloFuel technical migration test:
It's obvious HC continues to improve in reliability and performance with each new release, based on the HOT-HF Migration Test and many other tests. Damn excited to see the next version, too!
The previous WebRTC-based networking stack, tx5, has been retired as the main transport choice. (If you still want it, for now you can compile Holochain with the transport-tx5-backend-go-pion flag — it’ll be removed in the next release though.)
While we aim to follow Semantic Versioning for all our releases, Holochain 0.6.1 diverged somewhat from this promise. This is because the Iroh transport was scheduled for 0.7, but it was such a good upgrade that we wanted to make it available for devs working with the 0.6.x line too.
The big breaking change, of course, is that the Iroh transport is incompatible with 0.6.0's tx5 transport.
Read the upgrade guide to get your hApp ready for 0.6.1 -- this guide includes all the changes from 0.5 to 0.6 as well. Here’s a summary:
- HDK/HDI: A few breaking changes, all related to expanding DHT get strategy to all DHT get methods and adding options for timeouts and concurrency. Some will require code changes; others will just require a recompile.
- App manifests: A new non-breaking change is that you can now specify your own bootstrap server URL per app.
- JavaScript client: DnaDefinition has been renamed to DnaDef, and there are new helper methods for dealing with hash maps.
- Rust client: There are two new methods on the client, call_zome_with_options and signed_call_zome_with_options, which let you specify a timeout.
- Testing: Tryorama has been retired as our official test authoring framework, in favour of the Rust-based Sweettest (documentation coming soon; in the meantime you can read the source or visit Holochain 0.7’s Sweettest documentation. Tryorama is still a community project, so you can still use it in your projects.
- Conductor and network services:
- There’s a new bootstrap/relay server binary and Docker image for those who are running their own network infrastructure.
- With the switch to Iroh, there are new required config parameters.
- There are bug fixes for clone cell instantiation, signals for cloned cells, cell startup concurrency limits, and validation receipt handling for unknown authors.
Ready to get your hApp up to date? Read the upgrade guide.
