The new protocol is taking shape and we are getting a clear picture of how it's going to look like. The theoretical part of the protocol is 90% done (I'll share soon what the remaining 10% is) and then it's only a matter of implementing it in practice.
My focus last month has been on mechanisms to manage your account via the "identity tangle", with the goal of integrating 3rd party apps easily and reliably.
In the previous newsletter I shared how it's possible to connect two friends with invite codes and hub servers. This time, I figured out how to make a new device join your account, also with invite codes and hub servers. The same mechanism will work for including a new app into your account, essentially allowing "login", but without username/password.
Some links that show this progress are:
- Updated protospec describing how the identity tangle grows
- Updated invites to allow inviting an app into your account
- Updated secret-stack (a component of SSB too) with a new feature
- Implemented consent so that a new device cannot be added to arbitrary accounts
Related to accounts, I also started designing how private messaging (i.e. encrypted messages) should work. As often with PPPPP, we inherit some core ideas from SSB, but with important differences. Things are slightly simpler with SSB because there is only one keypair per account (and as a downside, SSB doesn't allow multi-device accounts!). In PPPPP, there are many keypairs in an account, so I have a design where there is a specific encryption key per account, which is shared to all devices in that account. There are still some open questions, which I shared with the community on Manyverse, but we're not far from the finish line. This is the remaining "10%" of the protocol's design.
See below the updated validation roadmap. The next big piece I'll work on is the garbage collector (GC), which is not quite about the protocol, it's just code that actively prunes the local database. But it's fundamental to PPPPP, since a small storage footprint is the first goal I had in mind for this endeavor.
Last but not least, I had the pleasure to host team member Andrew Chou for 4 days, and we briefly took some time to kickstart the documentation site for this new protocol. We already have the domain, we started a Docusaurus project, and fleshed out the most important sections of the site. I can't wait to show all this to you when it's ready! For now, back to work. :)