New Year, New Energy
Holochain Dev Pulse 88
The first Dev Pulse of the new year is going to be a short one. That’s not because nothing’s happening — in fact, it’s partly because there’s a lot going on, and I need to get back to it. Holochain RSM is growing up, and it’s time for both veteran and new devs to start developing on it. (That means that new developer documentation is coming soon!)
Equipped with the results from our December testing, we’re working on fixes to Elemental Chat and speed improvements to Holochain to support our initial target of at least 500 HoloPort users.
We’ve posted the first Low Code Zone video, featuring Belinda Noakes and Stephen Alexander of Digital Value Capture Academy, who’ve appeared on past Ecosystem Sessions interviews. And of course we’ve got more Build It! episodes coming up, including a live AMA with Philip Beadle.
Meanwhile, in the community, developers are working on more projects. First is the Compository, which is another exciting contribution to the broader ‘low code’ effort. Second is the Holochain Gym, a series of exercises that teach you how to develop hApps. There’s already the start of some really good content there, and I’m sure they’d love your contributions too.
- Holochain is growing up, FOSDEM 2021 and new dev docs
- Holo update: Elemental Chat and Holochain improvements
- More videos for education, inspiration, and enjoyment
- Compository: combine modules into a DNA and autogenerate a UI
- Holochain Gym: learn and contribute
Holochain is growing up, FOSDEM 2021 and new dev docs
Along with other team members and devs in the greater ecosystem, I’ve kind of come to the realisation that this new Holochain RSM thing is pretty much ready for you to start building on. (It’s even got a version number!) There was a period of time where it was only really usable by those with lots of patience and bravery, but now it really is more mature, stable, and usable than Holochain Redux. So we’re encouraging you to make the switch today, get started, and tell your friends.
As mentioned last year, we’re co-hosting a track at this year’s FOSDEM conference in a couple weeks. The track is called Beyond Blockchain — Distributed Web. FOSDEM 2021 is all online, and totally free, so we encourage you to show up and encourage your dev friends to join us too. Holochain folks will be hosting a few talks and workshops focused on helping developers understand Holochain and get started with hApp development. Hope to see you there!
In anticipation of this, I’m just about to push a bunch of revised content to https://developer.holochain.org, as well as removing old content. My promise is that, although you won’t necessarily find everything you’re looking for, everything that you do find will be true and correct for Holochain RSM. I’ll be adding new resources over the next few months so you’ll have all the good quality info you need. In the meantime, you can join us at the Holochain forum. (If you still want the documentation for Holochain Redux, you can find it at https://redux.developer.holochain.org.)
After this, I plan to sit down with fresh eyes and start recreating the dev docs. I want to make sure it’s useful to you. So let me have it — bring all your criticisms and suggestions to this forum thread. Thanks!
So what can I do right now?
If you’re a Linux developer, you can get started right away without much fuss. Here are the details:
- Holochain dev tools work on Linux, and you can get them running via an RSM variation on Holonix.
- They don’t work on macOS yet, so you’ll probably have to run Linux in a virtual machine for now. This is our top dev support priority right now.
- They’ll probably work fine on Windows 10 with WSL2 (not WSL1) and a popular Linux distribution such as Ubuntu. Please report your successes and failures on the forum.
- There aren’t any scaffolding tools yet, but the project layout is pretty simple: just a bunch of Rust crates and a DNA manifest file. Take a look at Elemental Chat for an example.
- Building your DNA package means compiling each of your crates, then using `dna_util` to package them into a DNA file.
- Running a cell (our new term for ‘DNA instance’) in developer mode requires a bunch of API calls, or you can just use Guillem Córdoba’s `holochain-run-dna` utility, which mimics the old `hc run` command and is bundled in Holonix.
- In order to get your cells to talk to each other, you can seed their peer tables with each other’s transport addresses (using direct connections, our public proxy at proxy.holochain.org, or a proxy instance of your own — some assembly required), or rely on our public bootstrap server at https://bootstrap.holo.host.
Holo update: Elemental Chat and Holochain improvements
We had a hugely successful test run of Elemental Chat in December; we learned a lot about real-world performance of Holochain and Holo Host. Perhaps the best thing we learned was that Holochain really, truly works! This is great news, especially considering it’s not even finished yet.
Testing showed us that we need to focus on two things:
Fixing a few Elemental Chat bugs
As Elemental Chat is just a toy app that we created for testing, we’re not focusing on quality of user experience. Instead, we just want to make a few fixes for bugs that masked the fact that Holochain was working correctly: some transport reconnection failures, and a really interesting bug that caused messages to disappear and reappear (you’ll want to read about it if you’re a hApp developer). These fixes are in QA right now and will be released to testers soon.
Improving Holochain performance
Right now the proxy server is creating a performance bottleneck. Running Elemental Chat directly between user devices without a proxy is super fast; it feels like Slack or any other cloud-based chat app. On the one hand, it shows that Holochain itself is fast. But on the other hand, it means that we need to work on making the proxy server faster.
The proxy server is not a necessary component, but the frustrating reality of the modern internet means that many Holo hosts and Holochain users will be behind restrictive firewalls that block P2P traffic. This is why we need proxy servers to help machines connect to each other. And this needs to be a positive experience, which means it has to be fast. We plan on rolling Elemental Chat out to hosts and web users soon, which could mean thousands of app instances on hundreds of HoloPorts trying to communicate with each other.
We have some short-term and long-term solutions. Right now we’re tuning Holochain’s gossip timing so that it’s gentler on the proxy server, as well as shutting down old Elemental Chat instances on HoloPorts. In the future we’ll look at gossiping more intelligently and efficiently, tuning the proxy server’s performance, and building planned features that will naturally reduce the amount of traffic.
More videos for education, inspiration, and enjoyment
Philip and David keep cranking out episodes of Build It!, quick videos that give sneak peeks of Philip’s upcoming RAD tools or show how to develop your own hApps. The next one is landing in a few days, and in a couple weeks (likely January 26th) we’ll have a special live AMA installment. Watch the Build It! playlist on your YouTube to stay in the loop.
We’ve also published our first two episodes of Low Code Zone, a series focusing on simple hApp dev solutions for real humans. The first is an interview with Belinda Noakes from Digital Value Capture Academy; it delves into the need for simple, snap-together software that’s flexible enough to serve people’s day-to-day needs. The second one invites her colleague Stephen Alexander to the conversation, exploring what a collection of modular hApp components might make possible in today’s world.
Modularity can change App development in the sense that, if you can imagine it you can do it. Quickly and cheaply. […] Today, a small business or a business just starting out can have a website in a couple of hours. Imagine if people could build the foundation of a new economy in a day.Belinda Noakes
We’ve invited Belinda and Stephen to appear on Ecosystem Sessions before, and they bring a wealth of both real-world experience and inspiring vision to our conversations. Have a listen!
Compository: combine modules into a DNA and autogenerate a UI
It feels fitting, after watching a video on how modular code can empower users to create their own apps, to show off an app that lets people do exactly that. Guillem Córdoba has created the Compository, an experiment that lets you combine existing zomes (play with the four included ones or create your own) into a DNA, from which it autogenerates a UI for you. Guillem is excited to add more functionality such as membrane proofs.
This reminds me of the Ceptr vision of composable modules, rich with semantics (that is, they ‘mean’ something), being combined to form larger structures and eventually whole applications. If you’re not familiar with Ceptr, it’s the project from which Holochain emerged. Read more about it here.
Holochain Gym: learn and contribute
Folks from the developer ecosystem are building an educational website to help you ‘learn the ropes’ of Holochain development. The Holochain Gym will take you through all the important concepts, complete with exercises that help you build muscle. Two tracks, for developers and architects, will introduce basic components and design principles respectively.
The project has just gotten started, so there isn’t much to read yet, but there’s already some very well-written content on elements, paths, and capability tokens. The project’s creators are looking for help deciding on the curriculum and of course writing content.
That’s it for this week
But I have a feeling that there’ll be a lot more to report next time — a lot of initiatives are coming to fruition, and I’m excited to see what sort of good we’re going to be able to contribute to the world this year. Frankly, we need all the good we can find right now.