Quick Update - December 14th

Today’s Update

We were in the middle of the latest dev-test on Friday and we continued testing in that dev release channel throughout the weekend. The great news is that Holochain RSM with basic networking is proving to be quite resilient and we are experiencing the promise of Holochain’s distributed design. What that means is that we are seeing the type of eventual consistency in the testing that is exactly required for scalable peer-to-peer applications. Users who go offline are able to come back online and the app will catch up with everything that happened while they were away. Despite all the testing with hundreds of nodes using the previous version of Holochain - this key characteristic of eventual consistency was never fully working, so to have this working is a huge leap forward.

Prior to this current dev-test we were able to resolve a few bugs in Holochain relatively quickly and easily once our testing and tracing tools were updated to work with RSM. We have since fixed a few more issues in Holochain from this round.

Today is day 4 of the dev-test and more of our internal team are joining the chat network. We’ll continue this longitudinal testing as the Holo dev team works through a few remaining bugs before we prepare for releasing Elemental Chat first to our community testers and then to all hosts.

The main remaining issues are these:

Resilience

There appears to be an issue with the HoloPort auto-update service that intermittently triggers UI disconnection with Holochain sometimes when it runs (which it does every 10 minutes). Restarting once Holochain resolves the issue and the chat app ‘catches’ up with anything it was missing. We are investigating the cause of this intermittent issue.
Performance
In terms of the overall performance of Elemental Chat, it is extremely fast for the first users in a hApp network, but after the DHT has more data and gossip is required, we begin to see slower chat transaction speeds - the delays can be between a few seconds up to a few minutes.

There is a known issue where when a Holochain node is restarted it provisions new TLS certificates. This causes performance degradation as nodes appear offline when they aren’t until sessions using that TLS time-out. There is also a related addition to Holochain in the works that allows for “fire-and-forget” signals. This fix will allow elemental chat not notify all listening chatters in parallel thus those “offline” nodes won’t cause an UI slowdown. Holochain fixes for both are expected very soon.
One reason why messages may sometimes appear to take a while is a UI collision between signals and polling, i.e. the signal arrives direct from a user, but the the polled list_messages checks overwrites the arrived message because at that layer it hasn’t been gossiped. This issue in the Elemental Chat app itself is being fixed today.
We’re running down a few other paths to determine if there are other problems with the connection of the front end to the HoloPort.
Finally in case you were watching the AMA, we shared that the Nano update for the new version of the HPOS (HoloPort Operating System) has been completed and the image has been sent to the manufacturer. This means Nanos will not need to go through the significant update for Nix 20.09 when they are received. We’re going to test the manufacturing process with the new image and then when that is proven we will proceed with manufacturing and shipping of Nanos.

2 Likes

Thank you for the update. This is exciting news!

Is there a recommended branch that is stable enough for app developers to use yet, or do you have any estimates on when that may be available?

@pauldaoust could you point the repo to @programmarchy ?
Thanks
Lucas

Just to clarify a bit, I know where the repo is. I was just asking which commit hash or branch is currently most stable for app development, essentially an “alpha”.

I’m currently developing against bc1e9b98cc30a0dac8bf8d9a3eee5cc3c5e4e218 which is the commit right before all the nix-related changes began.

Just checked and the the elemental-chat app points to 6bd822cf3378178b5600ab79d8560f04b5a5b837.

Just saw your new update, and looks like the alpha will be ready after Phase 1 is complete:

1 Like

@programmarchy Holochain is definitely stable enough for alpha-level experiments already, and it’s what we’re using with the (surprisingly un-buggy) Elemental Chat right now. Just clone holochain/holochain and keep up to date with the develop branch. There’s a Nix configuration in the root of that repo, so once you clone it, just go into the working directory and type nix-shell to get all the Holochain stuff. The first time you type holochain or dna-util they’ll need to compile, so it’ll take a while.

1 Like