DWeb Camp finished last Sunday, and it was a rich and productive experience. A number of folks from the Holochain community gathered with others who are trying to build a more human web. I’ll probably write more about it later [edit: I did!], but in summary I think it was good for the Holochain folks — we got to connect with other DWeb builders and dreamers, meet friends and colleagues that we’ve only seen online, and share Holochain with our peers.

Four developers looking at a laptop in a camper van parked at a gas station
This is what it looks like to fix bugs and deploy a new Holochain launcher en route to DWeb Camp.

Of course, while some of us were at camp, the rest of us were still busy building and deploying. (And, as you can see from the picture above, some of us were building and deploying on the way to DWeb Camp!) Here’s what’s happened recently.

Holochain release notes

Holochain 0.0.156: WASM metering disabled

Release date: 23 August 2022
HDI compatibility: 0.0.11 to 0.0.20
HDK compatibility: 0.0.139 to 0.0.147

In the previous release, we fixed a bug in execution limiting, or WASM metering, which terminated all of a cell’s function calls after a certain number of operations, rendering the cell inoperable even though it was still active. However, during testing in preparation for DWeb Camp, we discovered that the limit we gave, 10 billion operations, was still causing even simple hApps to terminate functions too early. For now, we’ve disabled this feature and will revisit it later. (#1535)

Read the full changelog.

Holochain 0.0.157: No changes

This release was issued on the same day as 0.0.156, and was simply a test of some bug fixes in our release process.

Holochain 0.0.158: must_get_agent_activity

Release date: 31 August 2022
HDK compatibility: 0.0.148
HDI compatibility: 0.0.20
Network protocol compatibility: Holochain 0.0.158

This is a small release with a big feature that breaks compatibility with both the host API and the network protocol. `must_get_agent_activity` lets you use deterministic agent activity queries in your validation functions. There’ll be updated documentation in the next Holochain release, but here’s what you need to know.

When you’re validating an operation, you sometimes want access to an agent’s history to calculate running balances, previous game state, and so on. But you don’t normally have access to the source chain in a validation function. `query` only works for the local agent, not the agent whose operation is being validated. `get_agent_activity` is non-deterministic, because it can reveal evidence of a source chain fork that may be visible to some validators but not others. And because validation functions only test for validity of existing data, they can’t have anything non-deterministic in them.

The newly introduced `must_get_agent_activity` lets you query the source chain of a particular agent, but ignores source chain forks and only focuses on the data within one linear history. Like the other two querying functions, you start at a certain point in the chain and walk backwards in history until you’ve got enough info using a chain filter. There’s a number of options in the chain filter besides the desired starting point; you can choose to retrieve the entire chain, stop at a certain hash or sequence ID (or whichever happens first), and retrieve the corresponding entries.

Read the full changelog.

Known issues

We’ve identified a performance problem in Holochain’s gossip implementation. Some operations, especially large ones 10 MB or more, take a long time to propagate through the network. This can make it look like the data doesn’t exist yet. We’re tracking down the causes of this issue.

Holochain Launcher release notes

Launcher 0.5.0: Holochain and DevHub version bumps

Release date: 24 August 2022

This release adds support for Holochain 0.0.156 (HDK 0.0.147) and upgrades to the newest DevHub version, which supports publishing of hApps that were written after the integrity/coordination split (Holochain 0.0.144 / HDI 0.0.9 / HDK 0.0.137 and newer).

Download the Launcher.

Launcher 0.5.1: Backward compatibility fix

Release date: 24 August 2022

This release, published on the same day as 0.5.0, fixes an issue with hApps that run on Holochain 0.0.150 and earlier. After this version, `uid` was changed to `network_seed`, breaking admin API compatibility. Now the correct field name is used for the corresponding Holochain version.

Download the Launcher.

JavaScript client 0.8.0: Admin API update

Release date: 24 August 2022
Holochain versions: 0.0.151 and up

The JavaScript Client library now supports the admin API of newer Holochain versions which rename `uid` to `network_seed`.

Get the JavaScript client from NPM.

Acorn 1.1.0-alpha release

Acorn is a beautiful project management app based on the idea of desired outcomes rather than tasks and goals. If you haven’t heard about it, you can read about it in a hApp spotlight that I’ll publish next week.

As of 1.0.2-alpha, Acorn has reached a public alpha and is ready for people to download and use — not just testers. If it’s been a while since you’ve tried Acorn, it’s gained a lot more polish and features which make it ready for serious use. The 1.1.0-alpha release improves further on an already very functional and user-friendly app.

Acorn also has a new website, as beautiful as the app itself. Go to https://acorn.software to find out how its approach to project management is different.

Read the release notes and download Acorn.

Until next time…

I want to leave you with this piece of music from Del Sol Quartet, who performed at DWeb Camp. There’s something fascinating about watching a string quartet play; the subtle glances among musicians, the real-time giving and taking and calibrating, all result in a beautiful shared creation that’s more than one person (or four) could create by themselves. (Pardon the jerky filming; I’m still trying to figure out my equipment.)