January 2024 update

2024-01-05
André Staltz

Dear backers,

Welcome to 2024! Personally, I'm very excited. Yesterday I started working on the first PPPPP toy app, a collaborative whiteboard app. But I'm getting ahead of myself, let's first see what happened in December, in order.

A review of our cryptography

Mix met with Keks to review the cryptography in our new protocol. We learned some important things from Keks, and changed the message format accordingly. One thing is that we were truncating the hashes too much, and this reduced the security of hashes (it was easy to brute-force a hash collision). Another thing is replacing blake3 with the more conventional sha512.

Conductor done

As promised last time, I worked on the conductor module, which is responsible for coordinating replication and garbage collection. In the process I learned something important about replication: when replicating a feed, we always validate its messages according to the account tangle. But the account tangle may not have been replicated yet! This creates a race condition, which became a headache to solve in the implementation. I ended up solving this by piggybacking the account tangle msgs during feed tangle replication, meaning that you'll never miss the prerequisite messages for validating a feed. I updated the sync protospec to reflect this.

With the conductor done, and the database module updated with the tweaked message format, I also worked on bringing all the other modules up to speed: dict, set, gc, goals, hub, invite, promise, as well as secret-stack and secret-handshake-ext.

First toy app

While one could still tweak and fix corner cases, all of the above being ready means we can start experimenting with real-world applications of the new protocol. So I began hosting a hub server, and started developing a toy app. The app is an Electron project integrating Excalidraw, and the idea is to create a whiteboard application where you can invite friends and they can doodle whatever they want. Deletion will be built-in so that old enough doodles are automatically deleted. Originally we thought about making a tic-tac-toe game, but this seems a lot more fun, so why not? Mix and I are very excited about it.

The toy app will inform us of requirements for the "SDK": a simple library that integrates all the basic PPPPP modules and provides a friendly API for building apps. Take a look at how all of this is reflected in the roadmap:

Diagram of tasks laid out as a top-to-bottom graph where parts of the graph are done while other parts are work in progress

Can't wait to bring you more news next month!

– @andrestaltz

Receive this monthly newsletter by email on the 5th day of the every month, by donating to our Open Collective page.

Become a backer!