Open Collective
Open Collective
Loading
Launch of the PZP protocol and the future of Manyverse
Published on July 5, 2024 by Jacob Karlsson

Hi! As you might notice I'm not André. I'm Jacob, also known as Powersource on Scuttlebutt, and I've worked on SSB on and off since 2019, including on Manyverse and on Private groups. For the last few months I've been working on the launch of PZP, first together with André and later mostly alone after André decided to leave the project.

SSB 10 years


Secure Scuttlebutt just turned 10 years now on May 11th. Woohoo!

Introducing the PZP protocol (previously known as ppppp)


As a protocol grows older, and you learn of more problems with it over time, you try to fix them as best as you can. But since you want to keep backwards compatibility, you can't just replace old functionality with new, you have to keep the old while adding the new. We tried and did this with SSB for a long time, but there's a limit to how long you can do that before accumulating too much complexity. Some things, like deletion, would've been very hard to implement.

Over a year ago André started working on PZP (working title ppppp) to get a fresh start on the hurdles facing SSB. My impression was that storage was one of his main concerns. And today I'd like to introduce you to PZP and what it can do (even if those of you who've been following this blog probably know a lot of this already).

PZP Features


I assume most of you are familiar with Secure Scuttlebutt (SSB), but in case you're new; these are the features common between PZP and SSB:


Comparison with ssb


But let's get to the exciting stuff: the parts where PZP is different!

  • Storage is designed to not grow indefinitely. By default (of course overridable) an app's storage shouldn't go above 100MB.
  • Multi device/app support from the start. Every device/app has its own keypair. They're connected together into one identity using an Account tangle. 
  • One account or even keypair can post messages concurrently (forking) without problem. (We have generalized linear feeds into tangles - directed acyclic graphs, and adjusted replication to work with this. No more forks!)
  • Deletion is possible - both whole message deletion, or just the content (preserving tangle meta data)
  • Partial replication is possible
  • When messages are getting signed they get serialized according to RFC 8785 (this one is for you hackernews)
  • Easy to use invites

You can read more details about PZP on its website.

Trying PZP out


Code


PZP is not ready for end users yet, but it's stable enough for developers to have a fun time hacking with/on it. All the code is available on codeberg

SDK


We have a simple SDK to help you get started making PZP apps.

Demo app


A demo app demonstrating some PZP features. Take a look at the code for inspiration (note that you probably have to be a developer to build and use it).

Website


PZP's website is still simple, but has protocol documentation at https://pzp.wiki/ 

Social media


PZP has a mastodon account. I also do. I can also recommend discussing PZP using #pzp on Mastodon or SSB (although I'm not often on SSB these days).

Next steps for PZP


I'm not sure, to be honest with you. With 80%+ of the project's manpower disappearing with André (this is a compliment, not a critique!) it has had a challenging launch, and will have a challenging future. I will probably work on some other gigs for a bit, to balance out my budget. (Being paid by the Manyverse Opencollective is lovely but it unfortunately is still not enough to sustain a continuous developer). I'll also try to get an opportunity to dip my toes into closely related projects, like p2panda and Earthstar. I think PZP has a lovely design, and great potential, but I think developers joining forces, instead of working on separate-but-similar projects, might have greater potential. Anyway, I'll be wrapping up my work on the PZP launch in the coming weeks.

For people who want to work on PZP, I'm happy to help onboard you. Reach out on Mastodon. We have a signal group chat if you want to actively work on PZP, otherwise for general discussion I recommend #pzp and @'ing PZP on mastodon.

We have a list of vaguely prioritized issues that need work, such as keeping up fixing bugs in the demo app's replication, and implementing blobs. Future projects include optimizing the sync algorithm.

What about Manyverse


Personally I will not do any more work on Manyverse. And my impression is no one else is planning to either. At most I might do a patch release (no features/big bug fixes) to wrap up a grant. The codebase could maybe keep living in a fork where the backend is swapped out with some other protocol, but this is a big project which would probably lose backwards compatibility with the current SSB main network, and I don't think this is very likely to happen. Personally if I'd work on a P2P app now it'd probably be a (comparatively) "smaller" project, like a chat app or similar, using a newer protocol.

Manyverse opencollective


If Manyverse doesn't have any expected development, what should happen with the Manyverse opencollective?
 
Currently I'm the only active admin on it, so I need to pick an option. I don't want to shut it down, both because the community seemed fine with the opencollective being used for PZP development for a year, but also because our community has very few economic resources and this opencollective has been a very stable and reliable resource, and it'd be a shame if it'd disappear. 

Personally, the option I think sounds best is to rename it to something like "P4P development funding" (where "P4P" was recently defined by the community as "mutual aid P2P", including stuff like SSB, PZP, Earthstar, P2panda). 

In the end I guess I'll be making the decision (remember though that this is a role I accidentally ended up in) but I want to make a temperature check in the community first. Therefore I'm posting threads on Scuttlebutt (%H2UvEExig23mSX9A3gZuhD/FsVdcPId8apaaxbrCJ4g=.sha256) and on Mastodon where opencollective donors can post their thoughts.

Thanks for reading this far, for supporting the projects, and remember to hack the planet
👍️  1

on

Sounds good! Great update!