Summary

This week we decided to deploy Elemental Chat, the first Holochain app to be pushed out to all HoloPorts. This is an exciting week for us, and we hope you, our patient HoloPort owners, have fun with your first hApp!

The Holochain developer documentation has been updated so that everything you read is true and correct for Holochain RSM. We’ve retired the Holochain Redux documentation.

There have been some more breaking changes in the Holochain HDK, with a focus on improving developer ergonomics. We expect these will be the last breaking changes to the host API for a while, which is good news for development and deployment.

There’s one other bit of news for developers — a draft of the new hApp bundle manifest format, which is Holochain’s equivalent of a package file.

I also have a small update on the HoloPort Nano — where it’s at and what people who bought the Nano can do while they’re waiting for it to get where it should be.

Lastly, I’ll give a recap of what happened at FOSDEM, one of the world’s biggest open-source conferences.

Highlights

  • Elemental Chat deployed to all HoloPorts
  • Developer Documentation updated for Holochain RSM
  • Holochain development update: breaking changes, package spec draft
  • Nano-sized HoloPort Nano update
  • FOSDEM conference recap

Elemental Chat deployed to all HoloPorts

After weeks of all-hands-on-deck work, we’ve finally deployed the first hApp to all HoloPorts — Elemental Chat, a proof-of-concept real-time chat app built on Holochain. If you own a HoloPort and haven’t turned it on for a while, today is the day — head to the Holo forum, follow the update instructions, and get chatting!

An Elemental Chat session between Alice and Bob (with a surprise appearance by JC), 1× speed

We’re super excited, of course — this has been a long time coming — but I thought I’d let the world speak for us.

The response from those who’ve already started playing with Elemental chat (97 HoloPort owners so far) is super positive — they say it feels fast.

A: Hi Team! Congratulations to this huge milestone and many thanks for all the effort!

B: Hi everyone! This is amazing! Can’t wait to tell my wife that the Holoport is working!

C: still a bit buggy but its way better than I experienced in a test before!

D: this is something that is one of a kind. Well done to the Holo dev team for the start to changing literally the world. Cheers

E: where are you located? . . . [folks answered over time] Germany, Macedonia, California, New Zealand, Russia, France, England, Denmark, Spain, Finland, Belgium. . . .

Where are we on the roadmap now?

Our official roadmap and release plans share a lot more about how these phases will progress, and you can get more of your Elemental Chat questions answered with the FAQ.

Developer Documentation updated for Holochain RSM

With the help of some kind and diligent community and team members, I’ve published a big update to the Holochain Developer Docs. The biggest change is that there is now no longer any Redux-related content, which means that it’s pretty bare bones right now. (You can still find all the Redux-related content on the legacy site.) But it’s now fully in sync with the future of Holochain! Here’s a summary:

Here’s what’s next:

  • A ‘holo world’-style getting-started-with-development tutorial.
  • More advanced installation and configuration guides, including how to pin your development dependencies.
  • The beginnings of a new guidebook.

What else would you like to see? Join this forum thread and let me know.

Interested in helping out? First of all, thank you! You can reach out to me by DM on the forum.

Nano-sized HoloPort Nano update

The HoloPort Nano is almost ready to manufacture — we’ve worked out the bugs in the auto-update process. However, we’ve had supply chain issues with some of the components, partly due to COVID-19, and we’re waiting for the Chinese Lunar New Year celebration to pass before our manufacturing partner continues with their work and starts building the final batch of test units to ensure manufacturing will go smoothly.

In the meantime, we’ll be inviting the long-suffering HoloPort Nano purchasers to be the first testers when we roll out our next milestone, Hosted Elemental Chat. Look for an invitation in your email inbox soon!

Holochain development update: breaking changes, package spec draft

You know, sometimes you have to re-break a bone in order to make sure it mends properly. The core dev team has been doing a lot of work on making the new HDK a pleasure to work with, based on regular feedback from active hApp devs. This has resulted in a few recent changes:

  • You can now do proper tracing in your DNA for better debugging. If you’ve ever used Rust’s tracing library, this’ll feel familiar. Breaking changes: logging functions have been renamed (e.g., `log_msg` → `trace_msg`), and they now take a log level. You can also set the desired log level with an environment variable.
  • When your DNA makes a host call that throws an error, it now gets returned to the caller for handling rather than being swallowed by the runtime. This can help you better understand where a function call is failing.
  • The `sign` and `verify_signature` host functions have changed a bit, and are accompanied by `sign_raw` and `verify_signature_raw`. This should make serialisation/deserialisation easier, especially across the client RPC interface.
  • A new macro, `entry_def_index!`, makes it easier to get the numeric ID of an entry type, which has resulted in one breaking change: `entry_defi_id_position` is now `entry_def_index_from_id` and returns a different type.
  • The `entry_def!` macro has been split in two, so you can use it on types from external crates. This lets you put your types in a common crate shared by multiple zomes — or import them into your UI codebase, if you’re using Rust on the front end — and use them as entry type defs too. No breaking changes if you’re importing the `hdk3::prelude` namespace into your code (which you probably should be).

Now that these changes have been made, we don’t expect the host/guest API to change for a while. However, the HDK, which is a Rust library meant to make this API easier to use, will probably see continued changes.

DNA Bundle spec taking shape

We’re working on Mr Bundle, a new bundle format for packaging DNAs together into a functioning hApp. The first version of this spec made it into Holochain Redux, and the new draft (with changes) incorporates some of the things we’ve learned about how hApp devs are using Holochain. This spec will let hApp devs specify how a DNA should be provisioned:

  • Include a DNA already running on the user’s machine as part of a hApp
  • ‘Clone’ an existing or supplied DNA into the hApp — same DNA, different DHT
  • Don’t start up a cell from a DNA, but let the UI clone as many instances of a cell as it likes — private chats, isolated projects, etc
  • Change runtime properties for all participants of a DNA — governance tweaks, specifying a progenitor, etc

This format is expected to be used for both Holochain native and Holo hosting. One difference is that it’ll use YAML rather than TOML for its text representation, and we’ll likely change the DNA manifest format to YAML too.

FOSDEM conference recap

This past weekend we co-hosted the Beyond Blockchain devroom at FOSDEM 2021, along with another distributed app project. FOSDEM is the biggest open-source conference in Europe run completely by volunteers. It was held online this year, of course, which means that it was accessible to a lot more people.

In total, the Holochain community presented four sessions: an introductory talk and three development workshops (thanks Guillem and Philip for your sessions!) I don’t have stats on how many people participated, but the conversations in the chat and the Q&A felt very rich and productive — people were showing interest, getting excited, and asking intelligent questions.

I don’t have links to any of those sessions except my introductory talk. Give it a watch, tweet it, share it with your developer friends, whatever you like. And, if you have a minute give me some feedback! As the FOSDEM organisers put more of our talks online, I’ll be sure to share them on my Twitter feed.

What is Holochain? (for developers)

There were also a lot of other good sessions. Some, like Paul Frazee’s talk on decentralisation and decency, were relevant to everyone who champions decentralist values — and to everyone who cares about how online conversations are shaping the arc of civilisation. A lot of good projects were represented — Fluence (our co-hosts), as well as Secure Scuttlebutt, Hypercore, Matrix, IPFS, and COMPOST. It’s great to see so much work happening in the DWeb, especially on projects that aren’t blockchain — or, in Fluence and IPFS’ case, use blockchain only where it’s appropriate.

On cooperation

Here’s my chance to get a bit editorial. You might be surprised to hear me praising other DWeb projects. Why would I be calling attention away from Holochain? First of all, I know some of the people in these other projects, and they’re lovely people, working hard to build things that preserve agency and encourage cooperation. Second, the world is big and I think there is room for all sorts of approaches. The winner-takes-all mentality reminds me of the big centralised platforms with their economies of scale and network effects — or the consensus process of blockchains, which spend lots of effort collapsing a multiplicity of views into one single, authoritative account of reality. I want to see a different world — a world that celebrates differences, a world where people speak each other’s language and learn from each other’s experience. That’s the kind of world that I hope Holochain — and other agent-centric P2P projects — are helping to bring into existence.

What do you think? I invite you to aim your pot shots at me in this Twitter thread.