Hacker News new | ask | show | jobs
by pfraze 583 days ago
Sure. I'm really happy to debate the substance of these designs, because it is interesting and should drive decisions.

> The relay isn't secondary. proof of the matter is, bluesky last week went down because it was down.

Mmm kind of. The data is primarily stored in the PDSes and there can be a plurality of relays and appviews, none of which are considered authoritative / primary. If a relay goes down, anybody downstream of it is (fire)hosed, but that's just systems.

One useful observation -- the relay is a convenience we implemented so that work can be shared. Generally speaking an appview (or any other service) could crawl PDSes directly & sync their event streams. You're right that a ban from the bsky relay is going to affect visibility among anybody downstream of it, and that a relay monoculture would centralize control. This is why we have an organizational goal to get other independent relays running.

Regarding costs, there's a laws of physics thing at play. If you want global activity in your app, you're going to pay for it like we are. However -- if youre happy with a subset that's similar to ActivityPub, you can setup an appview which selectively syncs according to the social graphs of registered users and other known links (like URIs of replied-to posts). You could attach it to a PDS if you wanted. You then might want an additional layer for push-notifying peers for activity outside their existing social graph, though that's somewhat optional (you can get a pretty rich dataset from a pull-based crawl model). If it turned out that the global view was cost prohibitive for any org, this is the implementation I'd push for people to develop. This "mode" was in our original plans but cut for time; it's not something the protocol needs to prescribe for or against.

>I think you're overestimating how taxing going "viral" is on an ActivityPub server. if one of your posts goes viral, it doesn't get hit for every follower you have. It'll only be a request per instance.

Maybe you're right. But we wanted to target an aggressively low capital and management cost for account hosting.

>>When the software is sufficiently tested and implemented.

>I would think this was a more pressing matter seeing your previous response.

Well. We do our best to juggle priorities, but it's a small team with a lot of work on our plates.

1 comments

pfraze I appreciate that you take the time to engage here. I understand that you thought that ActivityPub had challenges (rightly so) and that's why you decided to develop ATProto. ActivityPub is far from perfect and needs to be improved. But the decisions you made with ATProto so far make real federation almost impossible.

I disagree that data hosting is the most important part. I think switching "servers" and still being part of the network is the most important part.

You are right that ATProto is open-source, but you ignore the fact that there's only one company controlling the development of ATProto. You can decide to close it down tomorrow, or you can decide which contributions to accept and decide the general direction of ATProto at your own discretion.

This is all fine, you can do whatever you want, but don't try to hide behind detailed technical discussions when comparing ActivityPub to ATProto. Because the difference is much more fundamental than the question how much RAM my server needs if a post goes viral.

Don't say Bluesky is decentralized and federated, because it is not today.

I understand that you are not one of the founders and you probably see this from a naive technical perspective. But working for a company that needs to show VC-level returns, I think you are being ignorant of how the future will look like.

Finally: If the team at Bluesky sincerely thought that ActivityPub is not good enough, why not work with the ActivityPub team to improve the standard and address the challenges? Or, why not give ownership of ATProto to an independent standards organization? I understand that you don't want to do this because you want to control how to develop the protocol, you want the speed and flexibility. That's fine. But don't act like ATProto is the same as ActivityPub in terms of openness.

Sorry for the long post :-)

Back in 2012, I was the first developer to join Dominic Tarr on Secure Scuttlebutt. I built Patchwork, the first client. If you’re not familiar with SSB, give it a look! It’s an aggressively anarchist technical model. After a year and a half, I had serious concerns about our ability to attract users. I realized that any activist effort needs a theory of change. For a software technology, that’s the market. We need to make better products if we want our technological goal to succeed.

The model we follow is more federal more than confederal. We use strong leadership that can be replaced. We use that in the governance, the technical design, and the execution. We also follow a kind of separation of powers through modularity, and an aggressive focus on the right to exit. SSB was “no authority ever” and it failed to scale. ATProto is “no permanent authority.”

Give the essay The Tyranny of Structurelessness a read sometime. I’ve worked in open source for my entire adult life and I’m now 38. There’s always somebody in charge. It’s not better when you don’t know who.

> There’s always somebody in charge. It’s not better when you don’t know who.

This is not black and white. And to be honest, it is telling that you throw this statement into the room. Of course, there are also organization / people who have more weight in saying into which direction standards like ActivityPub should be developed, but this is a far cry from the protocol roadmap being owned by a single for-profit company.

> I realized that any activist effort needs a theory of change. For a software technology, that’s the market. We need to make better products if we want our technological goal to succeed.

I agree, and Bluesky is obviously a great product. It is very likely that building on a truely decentralized protocol like ActivityPub has too many drawbacks to build a mass product in today's world. This is beside the point, though.

> The model we follow is more federal more than confederal. We use strong leadership that can be replaced

It can be replaced in almost the same way as you are replacing Twitter. Or any service can be replaced by another. At best, ATProto is a glorified import / export feature in this context.

Your work history has nothing to do with Bluesky's future. Bluesky is not owned by you, and while you currently might have some say, as soon as the VC ROI pressure starts building, nobody will care.

To be clear, I don't doubt your personal intentions. But it is very naive to believe that a protocol developed by a for-profit company that has just taken in $ 23 million is somehow incentivized to build a network for the good of the people first and not for their own profit. And don't tell me that those two are the same thing or aligned somehow, please.

I just would like to know this: How you can say that Bluesky is decentralized while the reality is that all your 20 million users sit on the same service run by the company behind Bluesky. And no, the ability to self-host your own data does not equate to being decentralized.

PS: I will read up on those topics you mentioned.

> Bluesky is not owned by you, and while you currently might have some say, as soon as the VC ROI pressure starts building, nobody will care.

Bluesky is a PBLLC which pretty severely limits the rights of their investors.

No, the fact that it's a PBC does not necessarily limit the right of their investors. PBC just means that they need to commit a certain percentage of their profit to a cause. It's still a for-profit company owned by shareholders. They have not publicly disclosed their charter or other information.
That is not what this means at all. Legally, it means that the company has other priorities that it must consider equally to creating profit. This means that investors have a much higher standard to have standing to sue the company or oust the CEO if they don't return a profit or don't return profits directly to investors.

A good example of what this means in practice is developer awards from Bluesky Social. As I understand it, once Bluesky PBC starts making some profit they are planning to begin placing something akin to bounties on successful app projects within the protocol. I believe Graber called this "Coopetition" at some point, where developers are "competing" within the ecosystem but simultaneously working together to make the protocol's foundation stronger.

This is something that a PBC structure makes immeasurably easier to do. Why? Because the company has more responsibilities than simply returning profit to shareholders. The shareholders can't simply sue the company or oust Graber because of this, since Bluesky Social also has a legal responsibility to "develop and drive large-scale adoption of technologies for open and decentralized public conversation". Please do get read on what it actually means to be a PBC.

BLUESKY SOCIAL, PBC is registered in Delaware. Here's the relevant law: https://delcode.delaware.gov/title8/c001/sc15/

> a public benefit corporation shall be managed in a manner that balances the stockholders’ pecuniary interests, the best interests of those materially affected by the corporation’s conduct, and the public benefit or public benefits identified in its certificate of incorporation.

There is no language about committing a percentage of profits to a cause.

you're just factually wrong on this, sorry.
Just gonna throw out a link to this whitepaper co-authored by the now-CEO of Bluesky and one of the lead authors of ActivityPub https://gitlab.com/-/snippets/2535398