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.
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.
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.
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
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.
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
Well such ownership tends to be based on communal recognition anyway. The community sort of chooses its own owner through members of the community agreeing that so and so is the owner.
If the creator or current owner disappears, it would be up to the community to first recognize that and secondly react to it, probably by coming to a general agreement that someone or someones else will be the new owner.
The author of this article doesn’t know what they are talking about.
First of all it confuses “decentralized” with “distributed”. Generally speaking “decentralized” is a broader term that includes “federated”, but specifically when talking about where data resides you can well argue that Matrix is less decentralized than Lemmy, as Matrix.org siphons up pretty much the entire network and most accounts reside on matrix.org by a long run.
Secondly, that ActivityPub mandates a single source of truth is a deliberate choice and not a bug. Principally AP could do the same as Matrix as communities are already cached on other instances. The problem is that you end up with extreme netsplit and moderation issues if you allow multiple source of truth in such a network. Matrix tries to prevent this by forcing everyone into a DAG (git like data structure), but this is a hugely inefficient and privacy problematic “solution” to what can be much easier solved by having an main original community that other instances can refer to.
I also think that is is myopic to only look at communities and not the overall network. If the origins of communities are widely distributed over a network, the network itself is decentralized even if individual communities are not.
Good response … thanks!
I’d more or less accepted their use of
decentralised
to meandistributed
, whether that’s correct within the relevant fields.The issue I see with the current AP set up though, which is brought up by the article, is the way in which an object such as a community or user account lives and dies with its instance or source of truth. Some form of mobility and redirection, for both user accounts and communities, seems like a missing piece at the moment.