Summary

We’ve published a new version of Holochain that resolves a lot of performance and reliability issues discovered while testing HoloFuel and other hApps, both with native Holochain and the Holo host network. This is the first ‘blessed’ release in two months, which means we’re confident that it’s ready for daily development and is available via the one-liner installation.

There’s a new hApp coming soon, and we'd like to give you a preview: H-Wiki, by our friends at EYSS, a software dev shop in Venezuela. It’s a fully distributed wiki application powered by Holochain.

Highlights

  • Holochain v0.0.46 released and ready to use
  • Coming soon: take a look at the new H-Wiki
  • Seen in dev team land: upcoming initiatives

Holochain v0.0.46 released and ready to use

This new release is the first ‘blessed’ release in about two months. Blessed Holochain releases are available via the holochain.love quick install path for Holonix, which lets you set up a development environment with all the necessary tools and dependencies using a single command.

If you’ve been sticking to blessed releases, this one is worth getting excited about. It includes many performance improvements in both Holochain and sim2h_server, along with bug fixes for various consistency issues. We’ve included a cumulative changelog since the last blessed release (v0.0.42).

This release of Holonix also includes hn-happ-create, the RAD tool that we introduced in the last Dev Pulse. If you’re already using blessed Holonix releases, you no longer have to do extra work to get it on your machine!

Summary for Holochain v0.0.46-alpha1

  • New: hc hash now takes a --uuid parameter so you can calculate the hash of a DNA as if a UUID were passed to it via conductor config. #2161
  • New: Some log messages have been moved to the ‘debug’ log level, which should make the log quieter.
  • New: The scaffolding tool command hn-happ-create is included in the Holonix dev environment for this release.
  • Bugfix: Lots of performance improvements.
  • Bugfix: Fixes to consistency, particularly links, CRUD, and validation. #2148 #2153 #2159 #2169 #2170
  • Bugfix: memory leak eliminated as a consequence of above fixes.
  • Improvement: The HDK now targets a few third-party dependencies’ versions (notably serde) in a more relaxed way; this should make your life a bit easier.
  • Breaking change: The communication protocol between the conductor and sim2h_server has changed again, so if you’re running any sim2h servers in the wild you’ll need to update both sim2h_server and your (and your end-users’) conductors at the same time.

Cumulative changes since v0.0.42

  • New: Pagination and sorting of links—you can retrieve links in batches, either with the traditional page-size-and-number technique or a timestamp-based technique. You can also sort results by committed timestamp, oldest-first, or newest-first. #2100 #2110
  • Breaking change: The wire protocol between Holochain and sim2h has changed twice, so conductors and servers should be upgraded at the same time.
  • Breaking change: Link queries no longer support regex matching #2133
  • Breaking change: In order to accommodate pagination and sorting, the call signatures for get_links and friends have changed.
  • Breaking change: sim1h and n3h were obsolete and unmaintained for a while; we’ve now removed them as supported networking backends.
  • Bugfix: get_links bugs fixed. #2148 #2150
  • Bugfix: Gossip no longer dropped in heavy load situations! This lets us support 5000 nodes and beyond. #2137
  • Bugfix: Improvements to reliability when joining network. #2115 #2120
  • Bugfix: Better DHT lookups in offline mode. #2119
  • Performance: Improvements to sim2h_server and Holochain itself mean that everything is much faster; this is the version that hit the fabled 5000-node goal!

Coming soon: take a look at the new H-Wiki

Our friends at the development shop EYSS are getting ready to release the first preview of H-Wiki, their Holochain-based wiki. EYSS has been working with Holochain for a couple years and are excited to open their first open-source Holochain project up to the wider community.

Markdown editor for a block of content

Communities around the world use wikis to build and share their knowledge. A wiki is a powerful tool for collective empowerment and knowledge transfer. But many companies already offer hosted wiki services. So what makes a Holochain-based wiki different?

On Holochain, the rights of the individual and the group are primary. You own your contributions, and your group is empowered to maintain a memory of its collected knowledge. For a community-owned wiki, that means the architecture of the system is in line with the intentions of the group using it. No one actor has the power to control your information.
The home page is an auto-generated list of articles, which expand to the right as you click on their links.

This is also useful for communities living on the margins of the internet or experiencing crisis scenarios. With hosted wikis, if your connectivity is unreliable or expensive, you might not be able to access the information you need when you need it. But with a Holochain-based wiki, you’re not dependent on a centralised cloud and all the network plumbing that connects you to it. You and your neighbours can support each other because you collectively own your hosting infrastructure.

An H-Wiki page is made from text and image blocks that can be rearranged or deleted.

The team is currently getting the codebase ready to share with the world. In the meantime, EYSS invites you connect with them on the Holochain forum.

“I really trust the project and the team behind it — what’s been done is credible, do-able, and responsible. Holochain solves many issues in today’s Internet world. Most other projects seem to fail in one way or the other, but I think Holochain has all the components to become a total success.”
— Eduardo Moreira, CEO and co-founder of EYSS

[Update: Previously this post invited you to download the code and try it out, but we later learned that there's a bit more work to be done.]

Seen in dev team land: upcoming initiatives

When I was collecting news for this Dev Pulse, I saw our dev teams working on a lot of exciting things but struggled to figure out how to share them. So this will be a list of seemingly random, but still important, things that caught my eye.

  • The hAppy team is using a ‘HoloPortOS shell’ for testing hApps in a HoloPort-like environment. It’s built on the Nix package manager, just like the Holonix development environment. Currently it’s internal-only, as it’s being used to support HoloFuel development, but I think it’ll also be useful for hApp devs once the Holo hosting network goes live.
  • hAppy team is also pressing forward with the next iteration of their rapid application development tool. Currently they’re exploring how to automatically generate UI code from a GraphQL schema definition. If you’re new to hApp development, this should flatten your learning curve and get you started more quickly.
  • HoloCentral is building a ‘Holo Web SDK’. This library will let front-end developers write UI code that can talk easily to a DNA instance on the Holo host network. It will come with a login form for the web users of your application and a feature that mocks a Holo host using a Holochain conductor running on the developer’s machine.
  • Along with a faster WebAssembly engine and other refactoring work, Holochain Core Team is investigating LMDB, a ‘lightning’ fast database engine, for source chain and DHT persistence. Besides being fast, LMDB holds promise for allowing ‘transactional’ commits—groups of source chain writes that ought to succeed or fail as a unit. This should improve the consistency of hApps with demanding validation rules, such as currencies.

Development status

Latest

  • Holochain Core: 0.0.46-alpha1 (blessed) | Changelog
  • Holonix: 0.0.72 (blessed)
  • Tryorama: 0.3.3 (blessed)
  • Holoscape: 0.0.8-alpha (contains Holochain Core 0.0.45-alpha1) | Download

Blessed (available via https://holochain.love)

  • Holonix: 0.0.72
  • Holochain Core: 0.0.46-alpha1