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.

  • wmassingham@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    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.

    • Skips@pawb.socialOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      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.

      • shagie@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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.

  • Melllvar@startrek.website
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    1 year ago

    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.

    • shagie@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      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 where test.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 ask ns1.nip.io or ns2.nip.io. The system then asks one of those servers if it knows the address that test.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.

  • HousePanther@lemmy.goblackcat.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    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.

  • Rikudou_Sage@lemmings.world
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    1 year ago

    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.