My friend Evan Henshaw-Plath wrote recently about some concerns with ActivityPub. I want to go over his concerns one by one and give some assessment of how accurate and important I think they are. Rabble’s words in italics; my responses in just normal text.
- User identities are tied to a server. This is only partially true; your user identity is tied to a domain, not a server. But most servers only handle one domain, and most people don’t move their domains between servers. We have a section on domain portability between servers on the ActivityPub Data Portability report.
Using domains is also how much of the Internet works. Email addresses are tied to a domain; Web sites are tied to a domain. You can move the domain between different implementations transparently. It’s a really robust architecture that has stood the test of time for almost 50 years. - Users can’t migrate between servers. Partially true. Rabble covers the essentials; you can move followers and not much else. It’s also possible to move your “stuff” between identities; that’s most of what our Data Portability task force is working on.
- On a single server, it is impossible to change your username! Somewhat true. ActivityPub identities are URLs like https://social.example/user/vtles1XgZkPUEulBsFmRX . That identity URL is immutable; you can’t change it. Some implementations include a username in that url, like https://other.example/user/evanp. With that kind of server software, it’s true, you can’t change the username.
Also, we use a standard called Webfinger that maps an identity string like username@domain to an URL. You can read about it in the ActivityPub Webfinger report. Some servers use that string, instead of the ActivityPub ID, as the unique ID for a remote user. That’s discouraged, but if someone does that, changing your user ID will make you no longer findable for those other servers. I think as we stabilize our use of WebFinger, some of these usages are going to get better. - Fediverse servers have total control over your account and data. True. This is the “federation” part of the fediverse. It’s how Web sites and email work. Don’t use a fediverse server without a good trust relationship with your server admin; ideally someone you have a business relationship with, or your employer, or your university. Same goes for email!
It also means that if you control your own server, you have total control over your account and data. That’s a feature, not a bug.
Another option is using a cooperative server, like cosocial.ca or social.coop. A cooperative is a legal structure in which members pay for and manage their own service. I think cooperatives are awesome. - The fediverse is a network of fiefdoms, each server admin having total control over their users. This seems about the same as the previous statement, but OK. I think the key strength of the fediverse here is that we can have dozens of different models for server governance — coops, enterprises, city libraries, family servers, individual servers. That level of experimentation is a feature, not a bug. Governance is not baked into the protocol.
- Each kind of fediverse server is isolated. This one is just plain wrong. ActivityPub is based on an open data standard called Activity Streams 2.0 (AS2) which models social data. There is an extensive standard vocabulary that can represent Web content like text, images, video and audio, and the social graph, but also well-known social interactions like check-ins, events, and groups. More importantly, Activity Streams 2.0 is extensible, meaning you can add properties to existing types, or whole new types of objects or interactions. And every ActivityPub server is built to handle AS2.
What is true is that we have had a lot of servers that only handle a subset of the AS2 vocabulary, and reject content they don’t know how to handle. This is mostly due to mimicking the siloed social networks; we’ve gotten used to thinking of different social networks for different kinds of content. I think this is changing, especially as new kinds of content hit the network. Developers are just learning how to effectively handle extension content with fallback representations. I look forward to this improving over time. - The fediverse has no privacy; there is no system of end-to-end encrypted messaging. The first part is false; you can mark your posts as followers-only, or directed to a single person, or a group of people. Servers enforce this privacy. You can also mark that you don’t want your public posts to be indexable or your public account to be discoverable.
However, the second part is true; we don’t have end-to-end encryption. So, if you send a private message to someone on another server, you message can be read by both your admin and their admin. It’s stored in the clear on both servers. This is also how email works, as well as most direct messages on commercial social networks. However, it’s something worth working on. I’ve sketched out an architecture for end-to-end encryption over ActivityPub, and I’ve got a proposal out to work on it for Summer of Protocols. I think it will be good to level this up! - The fediverse has no system for micropayments. This is true. The fediverse is also first and foremost for social networking — connecting to friends, family, colleagues and neighbours. Most of these interactions are not mediated by payment; in fact, payment cheapens those interactions.
However, there are other relationship types on the fediverse — supporting creators, journalists, or publishers. The main way to do this today is with paid subscriptions; for example, you can subscribe to evanplus@prodromou.pub to get access to premium content I publish. You have to send me US$5 out-of-band or I won’t approve the follow; that’s the state of play right now on the fediverse.
I think in-band payments are kind of cool for this kind of work, as well as for marketplaces — buying and selling services or goods over the fediverse. I think the easiest structure is adding payment URLs like a PayPal account, or blockchain wallets like a Bitcoin Lightning address. - Lastly, and most importantly for me, the culture of fediverse server admins and developers is vindictive. I don’t think this is the case; I love the culture of the fediverse, which is playful, conversational, and collaborative.
I think there are a plenty of good points in Rabble’s critique, but there’s one way that I think he’s extremely wrong. There is still a lot to do in the ActivityPub ecosystem, but we have the architecture and extension mechanisms to make them possible. It’s totally not required to go start a whole new social protocol to build those things in from scratch. In fact, it’s a real mistake; it’s far better to work from the existing standard and build on it. Open standards like ActivityPub have a legitimacy that ad hoc systems like Nostr can never have, and it’s the reason that there is so much interesting development going on in the ActivityPub world.
https://evanp.me/2024/04/14/responses-to-rabble-on-activitypub/
End-to-End Encrypted Messages Over ActivityPub
One important pattern in social networking is end-to-end encryption for direct messages. This is a structure in which the native or Web clients encrypt the message on the user’s device, and n…Evan Prodromou's Blog
reshared this
clacke: inhibited exhausted pixie dream boy 🇸🇪🇭🇰💙💛 reshared this.
Panos Damelos :catodon:
in reply to Evan Prodromou • • •Panos Damelos :catodon:
in reply to Panos Damelos :catodon: • • •Panos Damelos :catodon:
in reply to Panos Damelos :catodon: • • •another valid concern about the current design, raised by someone in firefish' matrix room, is that they can't see most replies to remote followers only posts. The replies are theoretically visible to the followers of the original poster, but if nobody on your server follows the people who reply, then their posts aren't fetched and there is no way to find them, since you can't see them in the remote server, since you are not logged in there. This is not how this should work, I should be able to see replies that are intended to be visible to the followers of the original poster, whom I follow.
This is one of the reasons I think that the fediverse, as it is today at least, is not ideal for social media replacement. It is great as a tool for online communities that can talk to each other, but it's far from ideal as a somewhat unified public space. This is why I think Mastodon's approach of a "federated Twitter" has built in limitations, and I think you can see that in its failure to really replace Twitter when people were looking for an alternative. Threads may succeed, but not
... Show more...another valid concern about the current design, raised by someone in firefish' matrix room, is that they can't see most replies to remote followers only posts. The replies are theoretically visible to the followers of the original poster, but if nobody on your server follows the people who reply, then their posts aren't fetched and there is no way to find them, since you can't see them in the remote server, since you are not logged in there. This is not how this should work, I should be able to see replies that are intended to be visible to the followers of the original poster, whom I follow.
This is one of the reasons I think that the fediverse, as it is today at least, is not ideal for social media replacement. It is great as a tool for online communities that can talk to each other, but it's far from ideal as a somewhat unified public space. This is why I think Mastodon's approach of a "federated Twitter" has built in limitations, and I think you can see that in its failure to really replace Twitter when people were looking for an alternative. Threads may succeed, but not because of federation.
If you are dedicated to making fedi succeed as "the public square of the internet", there needs to be a solution for this. The current design for viewing discussions is deeply flawed.
m@thias.hellqui.st :verified-skull:
in reply to Panos Damelos :catodon: • • •Heh, I wrote a thing about exactly that the other week too. Basically that 3M users have centralised on the Top6 Mastodon instances, but that there also are 25k more instances that inevitably will be “smaller”, and who will struggle to be seen/heard unless they get followers/followings to/from the larger instances.
Before that happens they could just as well scream in to buckets or write their posts with pen and paper next to their computer.
Yet, doing a dynamic on-request fetch of the original thread would partially fix this problem. It would obviously be helped of a re-factoring of AP, where meta-data could direct what “note” ID’s that are decendants/ancestors to a given “note” (i.e. post) and it would be possible to go out and get that (to my understanding this is part of what Pleroma/Akkoma does in their Mastodon API extensions).
My ramblings on the topic (I wrote them mostly for my own sake) can be read here if anyone would be interested:
... Show more...Heh, I wrote a thing about exactly that the other week too. Basically that 3M users have centralised on the Top6 Mastodon instances, but that there also are 25k more instances that inevitably will be “smaller”, and who will struggle to be seen/heard unless they get followers/followings to/from the larger instances.
Before that happens they could just as well scream in to buckets or write their posts with pen and paper next to their computer.
Yet, doing a dynamic on-request fetch of the original thread would partially fix this problem. It would obviously be helped of a re-factoring of AP, where meta-data could direct what “note” ID’s that are decendants/ancestors to a given “note” (i.e. post) and it would be possible to go out and get that (to my understanding this is part of what Pleroma/Akkoma does in their Mastodon API extensions).
My ramblings on the topic (I wrote them mostly for my own sake) can be read here if anyone would be interested: https://hellqui.st/posts/why-care-about-backfilling/
@evanprodromou
Why care about backfilling? | hellqui.st
hellqui.stotso reshared this.