Original post: https://bsky.app/profile/ssg.dev/post/3lmuz3nr62k26
Email from Bluesky in the screenshot:
Hi there,
We are writing to inform you that we have received a formal request from a legal authority in Turkey regarding the removal of your account associated with the following handle (@carekavga.bsky.social) on Bluesky.
The legal authority has claimed that this content violates local laws in Turkey. As a result, we are required to review the request in accordance with local regulations and Bluesky’s policies.
Following a thorough review, we have determined that the content in question violates local laws in Turkey, as outlined in the legal request. In compliance with these legal provisions, we have restricted access to your account for users.
I was oversimplifying a bit such that it wouldn’t be overwhelming to a self-described uninformed person asking for an explanation.
Yes, there are multiple actual relays but they functionally constitute a single layer or class of components in a birds eye view of the whole system.
As far as I am aware, no one other than BlueSky runs the relays, or has the code to do so.
If I am wrong about that, I would appreciate a source indicating such.
Does anyone other than BlueSky actually run a relay?
Several people have self hosted relays. Afaik nothing that anyone has used in “production”, everyone just uses the default one. I expect that will change as people figure it out, and trust in bsky pbc drops with things like the current Turkish censorship incident
Example of self hosting https://bsky.app/profile/why.bsky.team/post/3lkwg2djrfk23
The code to run a relay is here https://github.com/bluesky-social/indigo
… Yeah, as 73ms already pointed out… that first link is just someone setting up an AppView.
To truly run an independent BlueSky system… you would have to run your own PDS, your own Relay, and your own AppView.
Your second link does actually have code and a rough setup guide to running your own Relay, so I will give you thanks and credit for showing that at least it is possible to theoretically do this…
But you say ‘several people run their own Relays’ and then do not evidence that.
The Relay config here is just… how to host your own Relay that would act as a member of BlueSky’s Relay network.
Basically, that is just how to transfer some of BlueSky’s server hosting costs … to yourself.
If you set up a totally independent Relay… could it even interface with BlueSky’s Relays?
As far as I can tell: No.
It would be totally independent… a parellel network, not a federated one that interfaces with the rest of BlueSky, and is thus not actually able to ‘federate’.
What… you would have to do… is set up your own Relay, connect it to basically all the other preexisting PDSs you want to include, then also run your own PDS, then also run your own AppView, and connect it to your own Relay… or just trust someother person running their own AppView, or just trust the official ones.
(But… I think that to connect your own Relay to preexisting PDSs… that would require those PDSs to… disconnect from the mainline BlueSky Relay system… because they can only point to one Relay system at a time… so that’s kind of a problem.)
That would be the only way to make your own … sort of branch of the BlueSky system, that at least in theory might be resistant to centralized censorship from BlueSky.
And again… I am not aware of anyone who has yet done this, or if it would even work at a technical level.
When dealing with software and tech companies, a good rule of thumb is that a planned or possible feature… doesn’t actually exist untill its been provably demonstrated to exist and work.
Your “example of self hosting” is not an example of self hosting the relay, just an appview which is still being fully dependent of other Bluesky services like the relay. It’s pretty unlikely that the relay would be at all practical to host on a RPi5. But even if it was the problem still remains that the network is set up in a way where self-hosting it only results in you creating your own separate bubble, not meaningfully participating in the official one.
I also doubt anyone has selfhosted relays long-term since right now there’s very little purpose to that and the resource requirements are massive as well as keep growing at a fast pace in terms of the disk space required.
The whole architecture is built around content addressing and allowing every account hosting server (PDS) talk to multiple relays and to allowing mirroring.
The whole point is to NOT create bubbles.
People already run their own PDS servers and participate with the official bluesky network, and can talk to users there, because their self hosted PDS syncs to the bluesky relay.
If you run your own relay and appview it STILL works, and you can talk without bubbles, if you still link your PDS to the bluesky relay to make yourself visible to their users, and if you set your appview / relay to retrieve content from the bluesky relay then you see content from bluesky users too.
Self hosted relays do exist, they’re just not open to the public (mostly used for archival / development currently)
Blorgbob exists, and people use their own blorgbobs, but also people are not allowed to use blorgbobs, and they are only in archives or experimental development.
… Please tell me you understand you have just said completely self contradictory nonsense.
Leaving the actual truth or falsity of your claim aside… what you have just stated is a logically impossible paradox.
Choosing to not understand the architecture is your failure, not mine
Ok, noted, you are a fanatic who does not understand that the statement of yours I replied to literally is a logically impossible paradox.
Take a few deep breaths and … maybe try to reformulate your words.
PDS is not very significant, it’s just a tiny piece of the puzzle and doesn’t really prove anything about the architecture. See this for more on what I’m getting at: https://neuromatch.social/@jonny/113365406995624763
That post is very misguided.
First of all, he’s saying “you SHOULD make your PDS invisible to the bluesky servers because otherwise what’s the point”, but that’s exactly equivalent to saying “our community want it’s own Mastodon server - that means we MUST defederate Mastodon.social or what’s the point?”
That’s nonsense. Don’t enforce silos on people.
Also, which relays to support are not chosen by users, it’s chosen by the services the users choose. The PDS choose which relays to sync to, the appview does too, just like feed generators and moderation labelers does. They can trivially sync to multiple.
What people will choose is what app to use. This app will choose default appviews, and that appview chooses a relay, etc. Then they register an account, and the app suggests a default PDS server, or they host their own.
Also moderation labelers can be shared. Communities can run their own, and different communities who trust each other can import labels generated by the others.
Hosting a PDS is very cheap, it’s just storage and bandwidth for the posts multiplied by the number of relays you directly sync to. With a few users on each that’s nothing. It’s in the range of free tier VPS hosting, RPi grade.
Deduplicating is probably the most trivial part. There’s already code for handling duplicate events in streams. But more practically speaking, there’s algorithms like set reconciliation which can make it significantly more bandwidth efficient to subscribe to multiple relays even when they have overlapping content.
Tldr no there won’t be bubbles, unless that’s what the users want. They surely CAN choose services which filter out the bluesky servers and which don’t make them visible to bluesky, but why?
As for the DID part, the alternative is DID:Web, which requires permanent control over your domain name. With DID:PLC you can control your data by registering your own keys, although there’s possibility for censorship. Their goal is to separate out running the DID:PLC service to an independent foundation.
As for the followup comments, just a few months ago bluesky made it significantly cheaper to authenticate jetstream events via Merkle tree diffs (jetstream is the lower bandwidth version of the relay firehose service). This means you can verify correctness quickly just by having a copy of the Merkle root hash & pubkey for the accounts you’re interested in, you don’t need to store the whole user repositories (excellent for feed generators and moderation labelers and anybody else doing partial sync)
I don’t think you got the point tbh. It isn’t about wanting to separate but about how dependent you are on Bluesky Corp. in every other scenario (and how hard it would be to deal with the situation if they decide to go rogue).
But that IS the point. The possibility of running independently PLUS the ability of bluesky users to migrate their account wholesale away from bluesky servers to 3rd party servers means you’re not dependent on them.
They’re literally designing for the principle of “the company is a future adversary” (see: Twitter, et al).
Can you explain what do you think “backfill” means in the context of the linked post?
Sorry if that sounds disrespectful but we kinda need to have shared definitions for stuff
Backfill means that the AppView has to request and download and then be able to present… the entire history of all posts from everyone on BlueSky.
If you are familiar with crypto, its like how you have to download either the entire blockchain, or nowadays, a trimmed down/compressed version of it… before you can interact with it.
If you are familiar with any kind of database like a forum or something… when migrating, you have to actually import a copy of all the preexisting users, posts, forum structure, posts, etc… if you want the new forum to actually contain what the old forum did, before you allow people to start making new posts.
When this rando is setting up his own AppView… he is asking the BlueSky Relays to give his AppView all the older posts, before the AppView is caught up, and can then begin to function in realtime with the rest of the network.
I don’t mean to be rude, but if you genuienly don’t know what ‘backfill’ means in this context, it is very likely you have essentially zero experience with or knowledge of systems that involve large databases … it is a very common and well known term to anyone with basically over a year of doing most kinds of db admin/server admin work.
I have zero need to play games with you. Make your case if you have one.