Trying to figure this out as in the recent threads a few people said that Bluesky was federated, but it didn’t seem to actually be the case.

https://bsky.social/about/blog/02-22-2024-open-social-web in February announced that Bluesky would allow federated servers

The Bluesky documentation on the topic isn’t very clear. They mention Bluesky.social a lot, as if it’s supposed to be the one central server other PDS need to federate with:

Bluesky runs many PDSs. Each PDS runs as a completely separate service in the network with its own identity. They federate with the rest of the network in the exact same manner that a non-Bluesky PDS would. These PDSs have hostnames such as morel.us-east.host.bsky.network.

However, the user-facing concept for Bluesky’s “PDS Service” is simply bsky.social. This is reflected in the provided subdomain that users on a Bluesky PDS have access to (i.e. their default handle suffix), as well as the hostname that they may provide at login in order to route their login request to the correct service. A user should not be expected to understand or remember the specific host that their account is on.

To enable this, we introduced a PDS Entryway service. This service is used to orchestrate account management across Bluesky PDSs and to provide an interface for interacting with bsky.social accounts.

https://docs.bsky.app/docs/advanced-guides/entryway#account-management

Self-hosting a Bluesky PDS means running your own Personal Data Server that is capable of federating with the wider Bluesky social network.

https://github.com/bluesky-social/pds?tab=readme-ov-file#what-is-the-current-status-of-federation

The custom domain name is still something else, and does not seem to require a PDS: https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial

So, to come back to the title question, do people know of an example of PDS that can be used to access Bluesky without being on the main server?

  • haui@lemmy.giftedmc.com
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 months ago

    So, from up close it seems like people can have their own servers (i checked wurzelmann.at which is currently on the frontpage) but they do not seem to have their own frontend.

    This indeed makes it so that for people to actually SEE your content you must federate with one entity and are controlled by them.

    Imo this is very bad because it takes the freedom out of federation. Yes, you dont need to login to an app but if they ban you or defederate or delete your post, nobody will see it, right?

    Please someone who has tried and gets the technical details shed light on this.

    • nate@social.trom.tf
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      @haui_lemmy @Blaze Yeah, it’s very centralized at the moment. The idea of AT is that you can host your own Relay as well as PDS, so if I didn’t like Bluesky I could make Nate’s relay and have my relay pull the posts from the PDSs of the people I follow and sidestep Bluesky entirely. Though Bluesky was only opened up very recently so Bluesky is the only relay I know of ATM.

    • flamingos-cant@feddit.uk
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      Their app is open source, but it doesn’t give any instructions on how to self-host it, in fact it seems to not have been designed with self-hosting in mind given the forking section of the ReadMe:

      You have our blessing 🪄✨ to fork this application! However, it’s very important to be clear to users when you’re giving them a fork.

      Please be sure to:

      • Change all branding in the repository and UI to clearly differentiate from Bluesky.
      • Change any support links (feedback, email, terms of service, etc) to your own systems.
      • Replace any analytics or error-collection systems with your own so we don’t get super confused.

      The impression I get from Bluesky is that it doesn’t view federation as a core feature of its platform, just a nice technical oddity. I’m no expert on the AT protocol, but from a quick skim of the quickstart, their view of federation seems to be having disparate data repositories (Personal Data Servers) app developers can put their app data into. It doesn’t really seems to be about different software communicating with each other.

      In contrast, ActivityPub is about passing JSON between servers in a somewhat standard format so different software can reasonably understand what that JSON represents and act on it in a way that makes sense for that software.

      (But again, I’m don’t know anything about the AT protocol, I could be completely wrong here)

      • haui@lemmy.giftedmc.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        Thanks for chiming in. Thats very insightful. It still seems like bsky is claiming to be something that its not.

    • Skull giver@popplesburger.hilciferous.nl
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      2 months ago

      I mean, you can run your own frontend if you want to? If you can run a backend, you can run a frontend. You can’t get away with hosting a relay or an app view, though, you need to host a full personal data server, with your own indexers and everything. You can also rely on external indexing, but then you turn dependent on the servers you interact with.

      As for federation, you can federate with smaller services just fine, but Bluesky’s design makes it very centralised around the main server. There’s nothing on the protocol level that enforces federation with the main site.

      This is a bit like with the Fediverse: for a couple of years, the only relevant service on there was Mastodon, specifically a few larger Mastodon servers. If you didn’t federate with them, you may as well not have federated at all. This also made some of Mastodon’s weird quirks de facto standards for Fediverse support (like how some ActivityPub object types aren’t supported, and people put every huge web page in a “post” object so it would be rendered by Mastodon).

      If the main Bluesky server bans you, there’s nothing preventing other Bluesky instances from indexing your content just as easily.

      If anything, this setup allows for more freedom than (for instance) Lemmy does. If Lemmy.world bans you, you can’t post in their communities anymore. Other servers can’t discover your attempts to post, so your local posts will remain local, out of reach of any ActivityPub server. Sure someone could scan the Lemmy API for differing posts, but that’s not how Federation is implemented here.

      On Bluesky, independent servers can (should) index each other using the standard API. You can get banned from bsky.app, but other servers can still see your posts pop up in their feed.

      I don’t know for sure how banning works on a technical level, but it is my understanding that moderation on Bluesky is actually done not dissimilarly to nostr. Everything gets processed and stored, but there’s a layer between the database and the frontends that handles blocking and banning. Of course Bluesky could disable federation with your server entirely, but it seems to me like they’d still federate your content even if your account is banned using normal banning tools, unless other servers propagate your ban as well. That’s up to them to decide. This too is unlike ActivityPub, where an account ban will also halt propagation.

      From what I can tell, it’s perfectly possible to set up an independent Bluesky network. The only issue is that Bluesky users don’t give a shit about federation and won’t move to any alternative server, so if you want to reach them, you need to play nice with the main instance.

      • Blaze (he/him)@feddit.orgOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        From what I can tell, it’s perfectly possible to set up an independent Bluesky network. The only issue is that Bluesky users don’t give a shit about federation and won’t move to any alternative server, so if you want to reach them, you need to play nice with the main instance.

        Makes sense