So, I’m new to the fediverse and Lemmy, and I’m still trying to wrap my brain around it all. I’m sure people have talked about this, but by far my biggest issue so far has been finding communities. I specifically didn’t want t to join a large instance, but that has led to issues of finding communities. I often need to go to lemmy.world or lemmy.ml and search for communities there because searching on a smaller instance won’t yield results if no one’s subbed to that community, even if the instances are federated.
Which leads to the point I’m trying to get to. It feels almost to me like if I’m trying to search for a URL but the DNS says it doesn’t exist because no one on that DNS tried accessing that URL before so I need to query another DNS for it. But in reality, if I ask my DNS for a URL, if it doesn’t know it, it’ll ask other DNSs in turn until a result is determined. Why can’t something like this exist for searching for communities? Does something like this exist at all, or is it impossible / a limitation of activity pub? But I feel searching for a community in one instance should in theory, if it doesn’t know that community yet, be able to query federated instances if they know, until a result is returned.
Apologies if I’m unintentionally beating a dead horse. Or if there was a better community to post this to other than this one. See aforementioned community finding issues, lol.
Not sure if this will help. It’s a searchable list of communities sorted by newest created community. Refreshes daily. https://lemmyfind.quex.cc/
there’s also https://lemmyverse.net/communities
It’s worth pointing out that DNS servers are not federated. There is a central master list that all other DNS servers replicate. This authoritative list is a single point of failure, particularly with regard to censorship.
This isn’t quite right. There is no central list that gets replicated. There is instead a set of delegated authorities. That top most delegated authority may be revoked with repercussions down the chain.
There is no list that has every name in it. If you resolve
test.127.0.0.1.nip.io
its not going to a central list but rather finding out who is responsible for .io and asking that server if it knows wheretest.127.0.0.1.nip.io
is. Getting a ‘no’ back from the registrar for the country code, it then asks where it can get that information and finds that it should askns1.nip.io
orns2.nip.io
. The system then asks one of those servers if it knows the address thattest.127.0.0.1.nip.io
has and that server responds back “yes” at which point the DNS server that you asked may cache the result.nip.io also demonstrates that anything that you ask for can be there and thus a central list is impractical.
app.10.23.45.67.nip.io
works just as well.You can say that delegated authorities isn’t federated… ok… but its not a central list that everything replicates and working any censorship of the name can be as easy as finding a DNS server that is serving it. Though again, everyone likes using the big central ones rather than hosting and maintaining their own.
I may have glossed over the technical details, but my point remains valid.
Let’s say every lemmy instance has a “memes” community, and you want to find them. Unlike DNS, where there’s one authoritative record for memes, to find all the different communities for memes, the local instance would have to send a search request to each other federated instance, wait for the results (what if the remote instance is offline?), figure out how to sort them, paginate them, and display them to the user.
Would it be possible? Yes, but it’s probably more of a headache than the devs want to implement. If you check the issue tracker, you might find some discussion about it.
Hmm. I hadn’t thought of this. I realize now that asking a DNS for a URL is predicated on there being one and only one IP address that maps to that URL. That wouldn’t be the case when looking for a community, so the propogation of the query can’t stop once a single result is found.
DNS is a poor example to use as there are multiple IPs that can map to one name.
% nslookup www.yahoo.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: www.yahoo.com canonical name = new-fp-shed.wg1.b.yahoo.com. Name: new-fp-shed.wg1.b.yahoo.com Address: 74.6.231.20 Name: new-fp-shed.wg1.b.yahoo.com Address: 74.6.143.25 Name: new-fp-shed.wg1.b.yahoo.com Address: 74.6.143.26 Name: new-fp-shed.wg1.b.yahoo.com Address: 74.6.231.21
You might be interested in looking at something like Usenet News and NNTP where there is one and only one group with the name
rec.games.roguelike.nethack
( https://groups.google.com/g/rec.games.roguelike.nethack ) and the contents of that group is federated out to every NNTP server that subscribes to it (not all do). Note that this is a different model and every server contains all the data for the groups that they subscribe to and may exchange those posts with any other server that they federate with (this also solves the “what if Lemmy.world goes down” problem where if the sponsoring server goes down, no one’s comments are exchanged outside of the instance they are on).https://www.eternal-september.org/hierarchies.php?language=en
But this is a fundamentally different model than Lemmy uses.
The idea of developing a community discovery protocol as a subset of ActivityPub is a really good idea. Something similar to DNS could work but the problem lies in that DNS is fairly centralized and controlled. Look at what we have now with the political shit show that DNS has become. I think a whole new protocol would have to be developed to facilitate this. A community discovery protocol might share community lists between instances in a federated way for example - maybe much in the same way that ban lists are federated.
Don’t apologize! It’s a good idea and I hadn’t considered it before.
It actually does exist! But like with DNS, you have to know what you want to visit exactly. What you want is more like search engine. Try https://lemmyverse.net. Also, if you want a small instance that is federated to plenty of communities, try mine, https://lemmings.world. I use a bot to subscribe to popular communities, I’d say the content on my instance is comparable to the big ones thanks to that.