Networking Has Landed!
Holochain Dev Pulse 85
There’s lots of news this week. Some of you are visiting with family and friends over the weekend, so if you manage to find time to read to the end of this Dev Pulse I’m proud of you (and grateful).
I woke up last Monday to learn that, quietly, modestly, the Holochain core team had announced that Holochain RSM’s prototype networking module was integrated, tested, and working. Suddenly, this project I’ve been writing about for the last two years went from being an interesting concept to a real, legitimate, working peer-to-peer application development framework.
Developers will be glad to know that Tryorama, Holochain’s scenario testing framework, has been updated to work with Holochain RSM.
I’m seeing other very exciting signs in the developer ecosystem that Holochain is reaching maturity in other ways — in particular I want to highlight a really cool weekend hacking project that, to me, says Holochain is ready for developers in a fresh way.
And we expect this trend to keep on growing. Very soon, in addition to the Ecosystem Sessions interviews, we’ll be introducing two new video series especially for creators — not just programmers but visionaries of all types.
Lastly, I’ll close up this issue with news of progress from the Holo Hosting team and their goal to deploy a Holochain-based chat application to the world.
- Holochain RSM now has networking!
- Tryorama updated for Holochain RSM
- From the developer ecosystem: cmdchatter, a command-line chat prototype
- Build It! and Low Code Zone, two upcoming Holochain video series for makers and developers
- Holo Host roundup: progress on HPOS, testing, and Elemental Chat
Holochain RSM now has networking!
Yes, networking, that most networky of components so crucial to a peer-to-peer networking project, is finally working in Holochain RSM. This major milestone was announced with little fanfare, which belies how momentous of an occasion this is. Holochain-RSM has not just matched the previous Holochain-Redux for features; it’s gone past it. As many of you following this project know already, Redux used a centralised ‘switchboard’ server for testing, and for a large part of our HoloFuel testing cycle, struggled with DHT consistency issues.
Holochain RSM was a clean rewrite intended to make all those consistency issues go away once and for all, but surprisingly it shipped without a networking module. Nevertheless, prior to last week application instances hosted in one conductor could talk to each other, which gave us confidence that these consistency bugs were a thing of the past. Now, with the networking module integrated, Holochain RSM has proven that it can work fully P2P* over the actual real internet too. And it’s fast.
(* While Holochain RSM is indeed fully P2P, individual nodes behind restrictive firewalls can choose other nodes to act as proxies for them. In the initial configuration we have one proxy server to keep testing simple, but this centralisation is just at the transport layer — it’s simply proxying direct, end-to-end-encrypted communications between individual peers. Additionally, we’re using a ‘bootstrap’ service to help make initial introductions between peers, but this is not a required component either.)
Things are still under construction — among other things, the core dev team still needs to work on optimisations, and the DHT isn’t sharded yet — but networking is now usable in real applications.
Tryorama updated for Holochain RSM
One unique challenge developers face when they’re writing a peer-to-peer app is that not all the code runs on one machine. That means that standard testing frameworks aren’t quite enough. It’s not that they’re wrong for the job; they just aren’t built around the testing of multiple instances of code running in different locations.
Tryorama has been updated to work with Holochain RSM. A collaboration between the Holo team and the developer ecosystem (thanks Connor!), Tryorama v0.4.0 works with Holochain RSM’s new conductor API and is not backwards-compatible with Holochain Redux. Read the readme to learn the new way to configure the DNAs, instances, and players for a scenario.
From the developer ecosystem: cmdchatter, a command-line chat prototype
In my opinion, one good indicator of an open-source project’s maturity is how often you see people using it for weekend hacking projects. If a developer can come up with an idea, install all the tooling, and bang together something that’s really cool and actually works, that’s a good sign that the project is developer-ready.
I’ve seen a few such projects for Holochain, but one that caught my eye this weekend was cmdchatter, a command-line chat app by Connor Turland. Maybe I’m biased because I love the simplicity and mashability of single-purpose commands.
But I think there’s something more: it shows that a skilled developer can bend Holochain to fit their needs.
Connor didn’t want to mess around with using WebSocket to set up a connection between the conductor and such a simple command-line UI, so he wrote his own conductor. Yes, that’s right. He took the Holochain core libraries and wrapped them in his own binary, which demonstrates that you don’t need to do things the way we’ve prescribed if it doesn’t make sense for your use case. Here’s Connor explaining this possibility himself:
“On a deeper level it’s my experimentation into Holochain’s usage as a systems level framework. What other sources of information could be streamed and integrated this way, with native Rust code acting as the entire API and system calling Holochain, instead of anything outside of Rust.”
The fact that Connor was able to do this in one weekend is really exciting for me.
It suggests that the Holochain codebase is now simple enough to allow the kind of hacking that causes a project to explode in popularity.
And in the process of doing this, Connor contributed back some changes to Holochain, which ought to help future devs embed it into their own applications.
Build It! and Low Code Zone, two upcoming Holochain video series for creators
Now that Holochain RSM is nearing a mature beta, we want to encourage more and more people to start building apps — not just trained programmers, but all sorts of creators with good ideas. Holochain is made for people, so we want real people to be able to create their own unenclosable spaces with it.
To help further that goal, we’re introducing two new video series for creators. Build It! will be a series for developers who want to, well, build. In each short, live-streamed episode, Philip Beadle and Mamading Ceesay (our systems-thinking, systems administrator) will collect and answer your questions. Submit your questions for the inaugural episode!
Low Code Zone will focus on creators who don’t code. In each episode, David Atkinson will introduce someone to Holochain and invite them into a brainstorming session. The show will be free-form and unscripted, with a focus on exploring real needs and imagining how Holochain can meet them.
Holo Host roundup: progress on HPOS, testing, and Elemental Chat
We’ve been quietly rolling out a minor update to HoloPorts, starting with pre-release testers early this week (30 have successfully gotten through the test procedure) and continuing to general release soon. On the surface it’s unspectacular, just an update to the underlying Linux OS. But while I was helping out with QA I couldn’t help but notice two new system services: `holochain.service` and `lair-keystore.service`. The first is Holochain RSM, and the second is its key management service.
That means Holochain RSM is working on HoloPorts and ready to be deployed to yours soon. In fact, internally we’re already using it to test out the first proof-of-concept app for the Holo Host network, Elemental Chat. Currently the Holo team is polishing the UX and troubleshooting some performance issues (which appear to happen when not enough people join the network, which is somewhat opposite to what happens on blockchain 😉), and we hope to have it in pre-release testers’ hands very soon.
I’m getting excited by the accelerating progress of the dev team. This seems to be due in part to Holochain RSM. Recently, Eric Harris Braun, lead dev for Holo Hosting, celebrated the ease of porting the core Holo apps to RSM: “What feels nice is how easy it is to be getting these things going.” Alastair Ong, HoloPort integration lead, agreed: “What used to take us months takes days to do now.”
Before networking landed last week, Elemental Chat on HoloPorts wasn’t possible. But now we’re able to run a plain old app, the kind that people use every day, without a server in the middle. For the initial update it’ll be available for HoloPort owners to use, which will demonstrate the web-to-Holochain infrastructure. After that, in a later update, it’ll make Holochain available to all web users, courtesy of the Holo Host alpha network. And that’s when things get really exciting.
- Holochain RSM: available, no version numbers yet
- Holochain Redux: 0.0.52-alpha2 | Changelog
- Holonix: 0.0.85 | Changelog
- Tryorama: 0.4.0 (compatible with RSM only
- hc-happ-scaffold: 0.1.2 (blessed) | Project
- Holoscape: 0.0.9-alpha (contains Holochain Core 0.0.47-alpha1) | Download
Blessed (available via https://holochain.love)
- Holonix: 0.0.81
- Holochain Core: 0.0.51-alpha1
- hc-happ-scaffold: 0.1.2