this post was submitted on 25 Jul 2023
34 points (92.5% liked)

Lemmy

12524 readers
14 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to [email protected].

founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 1 year ago (1 children)

Yeah, I always wished that Lemmy communities could be decentralized. Moderation, etc. still would work as before, the creator of the community would just give moderator rights to other people, etc.

[–] [email protected] 4 points 1 year ago (2 children)

Yea, increasingly it seems ActivityPub and this fediverse is just a prototype. It’s quite realistic that in 10 years we won’t be looking back on it with huge amounts of praise, apart from proving that this general model can work, which is huge.

I do wonder though, how would moderation work in true decentralisation. Who owns the community should the instance of its creator goes down? I guess user accounts would also be decentralised.

[–] [email protected] 3 points 1 year ago (1 children)

Yup. I'm messing around with decentralized services (e.g. IPFS and Iroh), and I think it would be really cool to have a completely decentralized service like lemmy. Some issues:

  • content would be immutable, so there would be no way to truly delete anything deterministically (would be up to clients)
  • following from the first, moderation would be an opt-in thing, so clients would need to enforce moderation changes themselves
  • performance would probably suck until the network gets bigger, so early adopters would have a rough time of it
  • searching could be complicated to implement, I need to think more about it

I think it should be possible to implement the Lemmy API and just use IPFS/Iroh as a storage backend to get started, and slowly push the server bits to the client as the userbase gets bigger.

[–] [email protected] 1 points 1 year ago (1 children)

I am thinking about what you describe since 2017 and have written a few words about it lately (just posted them, so shameless self-plug here): https://beyermatthias.de/a-distributed-social-network

[–] [email protected] 1 points 1 year ago

Awesome! I'll need to put my thoughts together too at some point.

I basically just want decentralized Lemmy, which I think makes the problem a lot easier to solve. If we ignore text search, I'd only need to fetch all child nodes given a parent mode, with an optional time limit. Everything is a simple entity with:

  • parent ID - null or user ID for communities, community ID for posts, and post/comment ID for comments
  • poster - user ID
  • content - text
  • content signature
  • number of pieces - for larger text posts

I'm thinking of doing authentication with a blockchain mechanism, but I could use a handful of authentication servers instead. Your subscription info would be stored like any other entity, but encrypted.

And I like your idea of pinning, I've seen that used as well. I want to come up with a novel way of distributing data, such that people geographically near you are more likely to have the content you're interested in. I think Iroh is doing something similar, so I plan to see how they end up handling it, but that's an optimization that wouldn't be needed initially (could just use a naïve distributed hash table).

Some issues:

  • content would be immutable, and thus could never be deleted; this has serious implications for users who are unaware, but I see it as a feature, not a bug
  • no control of what gets stored on your device; this is why it's text only, but text can be controlled in some jurisdictions; maybe encrypting it at rest helps?
  • need some number of public servers to facilitate connections between people behind troublesome NAT

So I'm watching Iroh development because I think they'll have a lot of stuff in interested in using.

[–] [email protected] 2 points 1 year ago

In Matrix right now the room would be orphant, but there is a longer discussion around this on GitHub https://github.com/matrix-org/matrix-spec/issues/165