Holochain is co-hosting the Web3 room again at FOSDEM 2022. I’d love to see up-and-coming Holochain-projects give talks there!
But first, some Holochain release notes.
Holochain 0.0.120: build info
Last week’s release saw a new flag for the Holochain conductor:
holochain --build-info (#1163). This outputs a JSON blob of the context in which the conductor was built, including — most importantly — the HDK version it’s compatible with. This is important, because as I mentioned in last week’s Dev Pulse, HDK version numbers are now decoupled from conductor version numbers.
Holochain 0.0.121: macOS build issue fixed
This week’s release fixes a build issue on macOS involving OpenSSL (#1169). If you use macOS and build your own conductor from source, this will probably be good news.
FOSDEM 2022: see you there!
Once again, the Holochain Foundation and Fluence Labs are co-hosting the Web3 room at FOSDEM 2022, Europe’s largest open-source conference. And once again, thanks to a stupid virus, FOSDEM is being held online. The positive side is that everyone on the internet can attend!
Last year we saw excellent talks from a number of different and interesting projects — not just Holochain and Fluence, but many other sister projects in the DWeb space. Matrix, Secure Scuttlebutt, Beaker Browser, and others were represented.
We’d love to see you present your project at FOSDEM! The call for talks closes soon — December 29th — so please submit your proposal soon. (Talks should be recorded and submitted by January 16th.) If you want to get a feel for how long the talk should be, and what it can be about, read this readme.
If you’d like to attend FOSDEM, it happens on the 5th and 6th of February. Attendance costs nothing!
Holochain and hApp CI matrix
Harlan Wood, a long-time supporter of the project and more recently a very active hApp dev, produced a table of all the most active Holochain-related projects, including hApps and the conductor itself. It shows the continuous integration (test and build) status for all these projects in one place.
Previously, it also showed the HDK versions the hApp projects were currently using. This was based on an older format for the Nix file, however. Since Harlan is no longer maintaining this project, he’d love for someone to add this feature back in. This is a pretty useful feature, because it will help power users find out whether a given hApp is compatible with the version of Launcher that they currently have. If you’re interested in taking over maintenance of this project, you can find the repo at https://github.com/holochain-ci/matrix and talk to Harlan there.
Reflections on the year
For the end-of-year meeting, the core devs were asked to reflect on the progress made during 2021. The positivity of their comments reflect the hugely improved state of our little project, compared with September 2020 before we unveiled the rewritten Holochain. I also appreciate their deep insights into the nature of the project itself and the way it reflects the world as it exists and as we’d like to help it become.
The SQLite transition has gone pretty well, we still have some optimization-level things to take care of, but [...] we've already realized a lot of benefits over the LMDB implementation. We're starting to get the performance we need out of our networking / P2P / gossip, and we need to keep working on that to really nail it for upcoming scales of testing. One thing we haven't yet done on that front is security hardening. We've started down that path with the lair key management [...]
— David B
I've been very impressed by our demonstrated strive for balancing individual wellbeing with the pursuit of our common goals, and that there is a habit of inviting everyone to exchange their experiences. I'm looking forward to continuing the path we are all on together; that is to realize, continuously refine and advocate for the new paradigms that we came together for.
At the start of the year it wasn't clear to anyone how to build happs on Holochain; I think now it is very clear to anyone paying attention. While we still have a long list of "todos" we also have two hApps operational on Holo (not just Holochain) and scaling steadily with each release. Both of these hApps represent 'impossible' ideas on blockchain that seem not just possible, but moving towards inevitable on Holochain. [...] By this time next year I hope to see more developers, communities and businesses look at holochain and see not just how to build 'a hApp' but how to build 'their hApp'.
— David M
We saw the great SQLite refactor, which [led to a lot of] opportunities for improvement. Tom really shone here, diagnosing and fixing these problems in a steady stream of PRs. [...] This was a huge step forward for networking too, with sharded gossip finally approaching viability. [...] David B built a really solid networking library almost single-handedly, and it's been relatively easy to jump in and contribute to it.
I joined Holochain because I wanted to work for an ethical tech company that would be developing in Rust. I didn't know much about distributed systems; however, I have discovered the beauty and complexity in a system that runs spread throughout space and time. This reflects how humans work, distributed around the world, each with our own frame of reference, attempting to operate as a larger organism. [...] Another big highlight is actually seeing Elemental Chat running on a non-trivial sized network. I'm excited to be able to actually use Holochain for a hobby project and get some of my developer friends excited about it.
Milestones we’ve passed
It’s encouraging to see what the core dev team has accomplished since they started rewriting Holochain. Here are the highlights:
- A new conductor and core, written from scratch, with a strong focus on maintaining data integrity and keeping resource consumption light
- A user-friendly launcher for Windows, macOS, and Linux
- A new scaffolding tool for rapid application development
- A new P2P networking protocol and library, with no necessary centralised components
- A proxy service for punching through firewalls
- Two bootstrap services — one to be run on CloudFlare and one to be run on personal servers — for introducing peers to each other
- A bundle spec and file format for versatile, multi-DNA hApps that cover all sorts of scenarios
- Countersigning for coordinating safe, atomic state changes among multiple parties
- The ability to schedule one-off or repeating tasks from within a DNA
- A post-commit hook for follow-up on a confirmed source chain write
- A separate keystore service with support for seeds and derivations
- Deterministic validation, which guarantees that any validator anywhere will arrive at the same result for the same source chain element
- ‘Relaxed’ source chain commits for situations that don’t require exact ordering for validity, which allows state-changing zome calls to be made in parallel
- Atomic commits within a zome function — all commits succeed or fail as one
- Capability-based security for all zome calls
- Remote zome calls and fire-and-forget DHT signals
- Random agent activity authorities on the DHT, who record source chain writes and detect forks; improved performance for reconstructing a source chain during validation
- The dreaded ‘update/delete loop’ bugs are now impossible
- A formal approach to DHT transformation operations, giving guarantees of strong eventual consistency
- Validation receipts, which set the foundation for warrants and the DHT immune system
- Massive performance improvements over both the previous iteration of Holochain and earlier versions of the new iteration
- A broader set of testing tools, including Sweettest, a Rust-based testing framework that lets you mock components of the conductor
No matter where you are and what culture you live in, it’s likely that you’ll be enjoying some sort of holiday times in the next couple of weeks. I hope you all have a lovely, relaxing time — in spite of the challenges we’re all facing this year. Take care, and I’ll see you in the new year, where I’ll have some good news about Holochain development (including some rather dramatic performance improvements to gossip)! We’ll share a 2022 roadmap, which shows the order in which new features should become available, and promises stable beta versions for the networking protocol, the conductor, and the HDK.
And I’m sure 2022 will also be full of other kinds of news. The developer ecosystem is growing all the time, and existing hApp projects are maturing while new ones are appearing. In addition, the Holo hosting network will keep developing as Holochain nears beta. Should be an interesting year!