The last few Holochain releases have been without breaking changes but contain multiple bug fixes and a few new features.
Over the weekend, a group of about 25 folks met in Berlin, Germany for the first Holochain hackathon since before the pandemic. A few interesting hApps were built, of course, and there was a clear desire for more in-person events like this.
And finally, we’re talking a lot about hREA these days. If you’re thinking about building software for economic coordination, you now have an off-the-shelf library to get you started. Scroll to the bottom for highlights.
Holochain release notes
Holochain 0.0.167: SweetConductorConfig
Release date: 10 October 2022
HDI compatibility: 0.1.1 to 0.1.4
HDK compatibility: 0.0.152 to 0.0.155
Breaking changes: none
New (Sweettest): If you’re using Sweettest in your Rust-based hApp testing, there’s a new struct that lets you create various conductor configurations more easily. SweetConductorConfig
wraps around ConductorConfig
and lets you choose common networking scenarios. Some of them are useful only for Holochain devs testing gossip, but others could be used to test offline or low connectivity scenarios. (#1616) This comes along with other changes to Holochain proper, which may or may not affect your Sweettest tests: ConductorHandle
has been merged into Conductor
. (#1617, #1618)
Holochain 0.0.168: Clone cell crash fix, unpacking invalid bundles
Release date: 19 October 2022
HDI compatibility: 0.1.1 to 0.1.5
HDK compatibility: 0.0.152 to 0.0.156
Breaking changes: none
Bugfix: A bug that causes the Holochain conductor to crash on startup when attempting to start clone cells has been fixed. (#1627)
New (hc
command): Bundle unpacking commands (e.g., hc dna unpack
) now have a --raw
flag, making them work even if the manifest file’s format doesn’t match the format that the current version of the command expects. This is useful when you want to ‘salvage’ bundles that were created with previous versions of hc
that used different manifest formats. (#1593)
Additionally, the dev team has started to add diagnostic tools to the conductor, giving them insight into how much time and resources gossip rounds are taking. This is part of an ongoing effort to improve gossip performance. This has come along with a bump in default gossip parameters; the defaults for recent and historic gossip bandwidth limits, both inbound and outbound, have been increased to 100 mbps. (#1609, #1610, #1633)
Holochain 0.0.169: Recursive bundling, pinned HDI
Release date: 26 October 2022
HDI compatibility: 0.1.1 to 0.1.6
HDK compatibility: 0.0.152 to 0.0.157
Breaking changes: none
Bug fix: The issue with scheduled functions has been resolved, and the default interval has been dropped from 10,000ms to 100ms. (#1583)
New (hc
command): hApp bundles (both .happ
and .webhapp
) can now be bundled recursively; that is, it’ll read the app manifest, look for all the referenced DNA manifests, and pack the DNAs before packing the whole hApp. (#1628)
New (HDK): The HDK now pins the HDI version it depends on. The reasons for this are documented in issue #1596 and involve dependency resolution issues that were introduced once HDI’s version number was bumped to 0.1.x. (#1605)
Holochain 0.0.170: Authorise signing key, get DNA def
Release date: 2 November 2022
HDI compatibility: 0.1.1 to 0.1.7
HDK compatibility: 0.0.152 to 0.0.158
Breaking changes: none
New (admin API): This release brings two new admin API functions (#1641):
AuthorizeZomeCallSigningKey
lets the author of a chain create a new capability grant on a given source chain. This lets a hApp installer authorise a client that wants to use a cell without requiring the client to actually hold the author key. In spite of the name, it can be used to create any kind of grant, not just ones that involve a signing key. It does, however, require a provenance from the cell’s author key. This is further prep work for the moment when all local zome function calls must supply a valid capability token. Future breaking change warning: this has already been modified in thedevelop
branch (#1647) and the changes will be included in 0.0.172; the name will be changed toGrantZomeCallCapability
and theprovenance
field will be dropped.GetDnaDefinition
lets you interrogate a cell for its DNA definition — not just hash-modifying components such asDnaModifiers
and integrity zomes, but also currently installed coordinator zomes. The return value is aDnaDef
struct.
As admin API functions, these aren’t generally available to a hApp’s UI and are meant for people implementing end-user Holochain runtimes — for example, the Launcher and self-contained Electron apps. The official JavaScript and Rust clients will be adapted to recognise what sort of execution environment they’re in and do the right thing.
Holochain 0.0.171: DNA modifiers in hApp manifest bug fix
Release date: 2 November 2022
HDI compatibility: 0.1.1 to 0.1.7
HDK compatibility: 0.0.152 to 0.0.158
Breaking changes: none
Bug fix: This out-of-schedule release brings one small bug fix. DNA modifiers specified in a hApp manifest file (network seed, properties, and origin time) weren’t being honoured. (#1642)
Read the changelog for Holochain 0.0.167 to 0.0.171.
Known issues
- Gossip performance issues remain; the core dev team is building diagnostic tools and using them to investigate bottlenecks.
- We’re seeing intermittent issues with the admin WebSocket API interface; some devs are reporting that it occasionally becomes unavailable. If you’ve experienced this bug, please talk to us on the DEV.HC Discord server.
Client release notes
JavaScript client 0.9.3: getDnaDefinition admin API function
This release supports Holochain 0.0.170’s new admin API function that allows you to get information about an installed DNA by its hash (see release notes for 0.0.170 above). (#135). It also fixes a bug involving improper serialisation of AppEntryType
(#136).
Launcher release notes
Launcher 0.7.0: A whole new UI
Release date: 8 October 2022
Supported Holochain versions: 0.0.162, 0.0.165
This release is a big one. It features a beautifully redesigned UI, the result of a collaboration between a UX designer and the Launcher maintainer. You should check it out; it’s quite inviting and easy to use.
There’s another big change: UIs now open up in their own Launcher windows (it’s using an embedded WebView in the background). This improves the security of web hApps — in fact, this change was made in anticipation of the upcoming breaking change to Holochain, in which capabilities will finally be enforced on all zome function calls. This will reduce vulnerability to attacks from locally installed malware. With calls coming from embedded WebViews, the Launcher knows that it’s an ‘official’ UI making the call and applies the author capability (that is, the owner of the source chain), which gives strong protection with no hassle for devs.
We’re aware that some applications want ‘headless’ hApps without a bundled UI, either ones that are accessed from another hApp’s cells or UIs, or have an external client (e.g., a hybrid Web2/Holochain UI or a background service that polls an IoT sensor). As you can see above, there’s a section in the Launcher’s installed apps screen for those, and the Launcher still exposes their functions via a local WebSocket port which will soon require capability tokens as described in the previous paragraph.
Launcher 0.7.1: Holochain version support, bug fix
Release date: 27 October 2022
Supported Holochain versions: 0.0.162, 0.0.165, 0.0.169
This small release adds support for Holochain version 0.0.169 with HDI 0.1.6 and HDK 0.0.157. It also fixes a few small UI issues.
Get Launcher 0.7.1 for Windows, macOS, and Linux.
Scenes from Berlin Hackathon
The first Holochain hackathon in about two years finally happened this past weekend in Berlin, Germany, at the headquarters of Jolocom. It was attended by roughly 20 people, who got together to talk ideas and start implementing them. We saw a few exciting projects get their start here, including:
- An app for peer review of academic papers that takes the journals out of the middle without sacrificing reach
- An integration between Holochain and Jolocom's Web3 identity wallet
- An app that allows members of a group to collaborative draft a constitution in Holochain and publish it to a Cosmos appchain
- Infrastructure for building ‘social assembly’ tools — think work bees, flash mobs, permablitzes, festivals, and other contribution-based events and the communities that form around them
Holochain hackathons aren’t like your usual hackathon. Rather than competition and prizes, they prioritise cooperating on shared goals and mutual learning. The pace is a lot calmer as a result.
There was also a lot of interest in having more regular in-person events around the world. If you want to come to the next hackathon or meetup near you, sign up for our newsletter or follow our Twitter account.
Holochain In Action videos: Cell cloning and hWorldle
I’ve got two videos from the Holochain in Action community for you. The first one walks through all the cell cloning features I described in the last Dev Pulse (and caught a couple mistakes!)
And the second one delves into the code behind hWordle — yes, the open-source Wordle game, ported to Holochain and given multiplayer features like status sharing (and, in the future, maybe word lists shared among friends and family).
Update from hREA project
The hREA project has posted an update on their OpenCollective funding page. As you may know, they reached their first major milestone release, version 0.1.0-beta, in September. This release includes:
- A set of zomes that fully implement all of the Valueflows economic grammar spec except agent relationships (for creating groups and partnerships) and recipes (for open-sourcing production and logistics processes in a collaborative economy)
- A full (and passing) test suite
- A GraphQL client that mediates between a DNA that uses hREA zomes and a client that conforms to Valueflows’ GraphQL spec
- A comprehensive documentation website
- A beautiful introductory website
The next stage of development will involve completing the final two ValueFlows features and using hREA to build real applications for the folks who are excited to start using it. They’re still accepting financial contributions, which will be managed by an informal consortium to further the completion of the project.
And if you’re not familiar with this constellation of projects… Valueflows is an ontology for economic coordination. It aims to provide a minimal yet complete set of semantics for defining all sorts of flows of resources between economic actors, and can be used to build applications that support bookkeeping, enterprise resource management, supply chain, and next-horizon organising structures like open value networks.
The creators of Valueflows have been working closely with hApp developers to build out hREA, which is Holochain’s implementation of the spec. Connor Turland, who has been involved in hREA development for the past few months, describes it as “basically an API in a box”, like Shopify but more versatile and connected to a peer-to-peer database. He says that you don’t need to build a database backend and you don’t need to learn Rust to get started.
Here’s a little bit of my story: Five years ago I was looking for something to help our local community garden project keep track of shared work and harvest projects. I didn’t find what I was looking for, but I did find a strange and compelling project called Holochain. As I learned more about it, I realised that it did speak to my desire for such software (and more). Now I see the very thing I was imagining come to life as a collection of modules for building apps, and I’m absolutely thrilled.
We’re talking a lot about hREA and Valueflows right now, because we’re excited that it’s maturing. We see it as the foundation of a lot of the next Holochain apps, as well as a whole host of application classes we’ve never dreamed of. We’ve published an interview with Connor, a set of case studies on three groups that plan to use hREA, and an Ecosystem Sessions video. Watch the hREA blog category, Holochain’s Twitter account, and our YouTube channel for more as they come out.
And finally, if you want to get involved, you can sponsor the project, or join their Discord to learn how to start building Valueflows hApps.