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:
- Open
- Blocklist
- 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.
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.- Here’s
lemmy.ml
: https://lemmy.ml/instances/ - And
monero.house
where you were surprised at the lack of links: https://monero.house/instances/
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.- Here’s
Lemmy Map does something in that direction - but in the form of a graph instead of a table.
Note: don’t open on mobile lmao
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…
I believe I’ve read somewhere that @[email protected] was intending to publish it.
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.
Make sure you use rustup to install cargo. The debian version is probably too old.
Thanks. See also https://github.com/LemmyNet/lemmy-stats-crawler/issues/4
I would have to take a look, it’s probably outdated, there is also https://github.com/LemmyNet/lemmy-stats-crawler
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!
that’s my issue ;)
Yeah, I noticed afterwards xD
anyway, I’m posting here to figure out what data can be queried. Otherwise, it’s manual entry and that’s a maintenance nightmare.
You can query an instance’s API at https://lemmy.ml/api/v3/site
Thanks! I can’t find any field that specifies
open
orblocklist
orallowlist
but I do see arrays forlinked
andallowed
andblocked
. My best-guess is:- if
allowed
is not null, then the server’s federation is inallowlist
state - if
blocked
is not null, then the server’s federation is inblocklist
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
, andallowlist
) 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.
if allowed is not null, then the server’s federation is in allowlist state
this.
otherwise it’s open federation with or without blocklist
wait but there’s three states. If it’s not
allowlist
then it’s eitheropen
orblocklist
– according to the documentation.Are you suggesting that if both are null then the federation state is set to
open
?according to the documentation
open
andblocklist
have open federation.
- if
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: