I’ve been working on a distributed lemmy/Reddit alternative. I’m going to have to sacrifice some core features to get things working in a POC state (i.e. all clients will sync the full working set on each post), but I think I finally understand what the design needs to look like.
I’m excited to get working on the most interesting (to me) part: distributed moderation. Once that’s done, I should be ready to post a repo somewhere, but I don’t want to share the code until there’s at least a rudimentary moderation system than can block local storage of blocked content (e.g. CSAM).
I’m also working on a game project in Godot with Rust extensions, but I haven’t given that much attention.
Wouldn’t distributed moderation kind of remove distribution in a sense? Your impl sounds like it’s distributing compute, but more central in control. E.g. Lemmy mods can only mod their own instances, so power is distributed more than if they could mod any instance.
Lemmy is decentralized, but not distributed. I’m essentially saying that there are no instances, everyone is just a client, just like BitTorrent. The only servers that would exist are relays to help connect people behind firewalls.
There are no mods of a community, at least not mods everyone agrees on. The concept of moderation is entirely local and based on the peers you trust, so something like this:
User A flags a post as problematic
User B explicitly trusts A and hides the post
User C implicitly trusts User B and may hide the post
Each step here is based on statistics, so you never completely trust anyone, and the moderation decisions would be completely public just like on Lemmy (I’m thinking of a “discovery queue” like Steam has, but for reviewing trust). Explicit trust (you’ve clicked a button) would give a high starting trust factor, whereas implicit trust (you’ve upvoted their posts and made similar mod decisions) would have a smaller impact.
At least that’s the gist. I’ll need to test it out to see what performance looks like, but I think it should work well in theory. I also have some privacy issues to work out, like hiding IP addresses (may need to rely more on relays or something like Tor).
However, I want data to be permanent and moderation to be based on a web of trust. I’ll certainly look at how they’re doing it, they probably have some good ideas I haven’t considered.
I’ve been working on a distributed lemmy/Reddit alternative. I’m going to have to sacrifice some core features to get things working in a POC state (i.e. all clients will sync the full working set on each post), but I think I finally understand what the design needs to look like.
I’m excited to get working on the most interesting (to me) part: distributed moderation. Once that’s done, I should be ready to post a repo somewhere, but I don’t want to share the code until there’s at least a rudimentary moderation system than can block local storage of blocked content (e.g. CSAM).
I’m also working on a game project in Godot with Rust extensions, but I haven’t given that much attention.
Wouldn’t distributed moderation kind of remove distribution in a sense? Your impl sounds like it’s distributing compute, but more central in control. E.g. Lemmy mods can only mod their own instances, so power is distributed more than if they could mod any instance.
Lemmy is decentralized, but not distributed. I’m essentially saying that there are no instances, everyone is just a client, just like BitTorrent. The only servers that would exist are relays to help connect people behind firewalls.
There are no mods of a community, at least not mods everyone agrees on. The concept of moderation is entirely local and based on the peers you trust, so something like this:
Each step here is based on statistics, so you never completely trust anyone, and the moderation decisions would be completely public just like on Lemmy (I’m thinking of a “discovery queue” like Steam has, but for reviewing trust). Explicit trust (you’ve clicked a button) would give a high starting trust factor, whereas implicit trust (you’ve upvoted their posts and made similar mod decisions) would have a smaller impact.
At least that’s the gist. I’ll need to test it out to see what performance looks like, but I think it should work well in theory. I also have some privacy issues to work out, like hiding IP addresses (may need to rely more on relays or something like Tor).
Makes me think of Aether. Have you been / were you inspired by that?
CC BY-NC-SA 4.0
No, but it certainly looks interesting.
However, I want data to be permanent and moderation to be based on a web of trust. I’ll certainly look at how they’re doing it, they probably have some good ideas I haven’t considered.