this post was submitted on 08 Aug 2023
111 points (94.4% liked)

Fediverse

17795 readers
25 users here now

A community dedicated to fediverse news and discussion.

Fediverse is a portmanteau of "federation" and "universe".

Getting started on Fediverse;

founded 5 years ago
MODERATORS
 

Hello everyone,

Based on the recent instability of Lemmy.world, a lot of people have been wondering whether they should move to another instance.

I used to look at https://lemmy.fediverse.observer/list and recommend people to pick a generalist instance with as much users as possible (using the 1m column), usually

  • lemm.ee
  • sh.itjust.works
  • sopuli.xyz
  • lemmy.one
  • reddthat.com
  • etc.

Of course, there are also the regional options

  • feddit.de
  • lemmy.ca
  • aussie.zone
  • feddit.nl
  • feddit.uk
  • midwest.social
  • etc.

And of course, the thematic instances

  • programming.dev
  • lemmy.blahaj.zone
  • discuss.tchncs.de
  • lemmy.dbzer0.com
  • etc.

I used to recommend the most populated instances, as we know that All depends on users subscribed from the instance.

However, now with the introduction of the Lemmy Community Seeder (https://github.com/Fmstrat/lcs), which

tells your instance to pull the top communities and the communities with the top posts from your favorite instances

do you think this should still apply? I have seen promising instances (high uptime, already on 18.4 that was released today)

  • discuss.online
  • lemmy.ninja
  • unilem.org
  • etc.

Would you recommend users to join those as well, assuming that the admins use the LCS to populate the All feed? Most of us remember the Vlemmy.net disappearance, and it's difficult to tell users to join small instances based on good faith, but at the same time, every instance needs to start somewhere, and they should be given a chance.

What do you think?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 11 points 1 year ago* (last edited 1 year ago)

I thought communities synced over instances so if an instance goes down, communities are still accessible. Is this not true?

This is not true. ActivityPub (the protocol Lemmy instances use to speak with one-another) does not intend to be a redundant, distributed datastore. There are a few reasons for this. One is practical. It needs to be affordable to start a new instance. If the requirements for starting a new instance entail mirroring significant parts of the fediverse (a network of over 2 million users and 22,000 instances) it would be impossible for anybody to do it unless they were Google/Facebook.

Another has to do with trust. A community has a home. That home is chosen (ideally) because the admins can be trusted. That instance is the universal source of truth for that community. If communities didn't live on a specific instance, they would be vulnerable to various forms of hijacking. The home instance has the final say on who has permission to comment, and who has permission to perform moderator actions. None of these actions could be trusted if they weren't cleared by the home instance first. Third party servers perform basic validataion against the currently known ban list / mod list / etc, but this could easily be spoofed by malicious instances.

When an instance goes down, it is kind of similar to a netsplit on IRC. A queue of outgoing messages build up on your instance, which can be seen on your instance. Queues of messages queue up on other instances, which can be seen on other instances, but they won't be synchronized until the destination instance returns (this depends specifically on which inbox the messages are directed towards - I'm not particularly familliar with the specific implementation in Lemmy).

Finally (though not really), ActivityPub isn't designed to be a broadcasting protocol. In the case of Lemmy, and other Reddit-like clones, it effectively acts as such, but it is intended only to send messages to the places they belong. If you post a message and the subscribers to that message only exist on 3 servers, that message ONLY gets sent to those three servers, even though there are thousands of servers in the network (at least, this is how it is supposed to work in theory).

I might have some details wrong here. I'm more familiar with how Mastodon works (and how it fails) at this point after troubleshooting various problems on my instance.