Is it possible to query a lemmy instance's Federation State?

Is it possible for a user to query the state of a given lemmy server's federation state?

According to the lemmy documentation the server can be configured with one of three different states of federation:

  1. Open
  2. Blocklist
  3. Allowlist

Unfortunately, I joined a lemmy instance that was set to "allowlist" and therefore I couldn't interact with most of the lemmy fediverse :(

I'm wondering if it's possible for non-users to query a server to see what federation state it's set-to, so that users can be aware of how limited their content will be before they signup.

wintermute, (edited )

You can query an instance's API at https://lemmy.ml/api/v3/site

maltfield, (edited )

Thanks! I can't find any field that specifies open or blocklist or allowlist but I do see arrays for linked and allowed and blocked. My best-guess is:

  • if allowed is not null, then the server's federation is in allowlist state
  • if blocked is not null, then the server's federation is in blocklist state

...but I could be totally wrong

And I don't know how to determine if the server's federation state is open.

It would be good if we had three example servers -- one in each state (open, blocklist, and allowlist) so that I could compare the API's output for each.

Edit: /u/Nutomic clarified this on GitHub:

Regarding "federation state": You can have a blocklist, then Lemmy will federate with every instance except blocked ones. Or have an allowlist, then it will only federate with the allowed ones. If neither is set then it also federate with everything. Using allowlist and blocklist together doesnt make much sense, then it would only federate with allowed instances which are not in the blocklist.

wintermute, (edited )

if allowed is not null, then the server’s federation is in allowlist state

this.

otherwise it's open federation with or without blocklist

maltfield,

wait but there's three states. If it's not allowlist then it's either open or blocklist -- according to the documentation.

Are you suggesting that if both are null then the federation state is set to open?

wintermute,

according to the documentation open and blocklist have open federation.

7eter,

Lemmy Map does something in that direction - but in the form of a graph instead of a table.

maltfield,

thanks! Unfortunately that site is basically unuseable for me, but perhaps if we dig into their code, we'll find how they figure out the federation state..

7eter, (edited )

I believe I've read somewhere that @wintermute was intending to publish it.

maltfield,

The sourcecode is here afaict https://codeberg.org/wintermute/lemmymap

It says they use lemmy-stats-crawler, but I can't get it to run on Debian 11. And I can't open issues on that repo.

nutomic,
@nutomic@lemmy.ml avatar

Make sure you use rustup to install cargo. The debian version is probably too old.

maltfield,
wintermute,

I would have to take a look, it's probably outdated, there is also https://github.com/LemmyNet/lemmy-stats-crawler

bdonvr,

Note: don't open on mobile lmao

PriorProject,

Each instance has a /instances/ url that shows its current federation links at least. It doesn't tell you its federation config, but you can at least tell if the federation list looks weirdly small or the blocklist looks weirdly big.

And you can see that monero house has a pretty short list in comparison. This is absolutely a page I was scoping out when shopping around for an instance to join. I would also spend some time scrolling through /modlog/ to get a feel for what their moderation was like in practice.

Barbarian,

That's an open issue on Github. The devs are currently in the middle of trying to optimize performance so the whole network doesn't go down on the 12th. If you know any webdevs willing to have at it, great!

maltfield,

that's my issue ;)

Barbarian,

Yeah, I noticed afterwards xD

maltfield,

anyway, I'm posting here to figure out what data can be queried. Otherwise, it's manual entry and that's a maintenance nightmare.

maltfield,

Related: see also my feature request for join-lemmy.org to display this information about each instance in a data table that compares each instance available:

  • All
  • Subscribed
  • Moderated
  • Favorites
  • asklemmy@lemmy.ml
  • DreamBathrooms
  • magazineikmin
  • everett
  • thenastyranch
  • Youngstown
  • slotface
  • hgfsjryuu7
  • ngwrru68w68
  • rosin
  • kavyap
  • khanakhh
  • PowerRangers
  • vwfavf
  • mdbf
  • anitta
  • InstantRegret
  • ethstaker
  • Durango
  • osvaldo12
  • tacticalgear
  • tester
  • modclub
  • GTA5RPClips
  • cisconetworking
  • cubers
  • normalnudes
  • Leos
  • provamag3
  • All magazines