Update
In the last update, we were exploring the idea of using xor
to merge forked epochs. A key turning point was meeting at #p2p-basel, where we got to have a proper team meeting to finalize the core ideas of (what we now call) "member exclusion".
Our p2p-basel meeting had team members @arj, @Powersource, and myself, and special guest @keks from whom we needed his expertise. Plus a couple curious folks like @cft and @Geoffrey.
We had a mad science whiteboard session in the university, like proper researchers do. I got flashbacks to my university days.
After a lot of back on forth on how to merge forks, CFT delivered a high-impact insight: merging with xor (or similar operation) is not going to work if excluded members collude to join their knowledge and insert themselves back in. If I exclude Oscar, and you simultaneously exclude Oliver, then we create two forked sub-groups (we call them epochs). If Oscar and Oliver are friends, then can just share with each other the keys for the epochs where they are in, do an xor on that, and discover the new merged epoch.
So this lead us to different directions. We discovered different scenarios, and created a rule for each scenario. We took that photograph above as a quick reminder of what we agreed on.
Then we began sketching the specification, and it's up on ssbc/ssb-group-exclusion-spec, albeit totally a draft.
After my #strategy2023 post with huge changes to my focus area and my downgraded time for #batts, our team discussed how this project should proceed. I believe the theoretical work we laid out here is going to be solidly useful in the future, regardless of how #ssb2 turns out to be. But one of the biggest obstacles for us to finish grant milestones and get paid is the requirement that these results have to be put into production in Manyverse. Adding private groups would add metafeeds overhead, which would exacerbate the storage and RAM consumption problem. I emailed NLnet to refactor our milestones, and they responded something but so far no conclusion if we can rearrange the milestones. We are hoping that we can. Jacob is doing a great job with the code, and @Mix is gently re-warming up to contribute too. Looking good.