Skip to main content


"Every Activity Pub server duplicates content. Without it there'd be no seeing posts from anybody on servers other than their home server. It's literally the thing that makes the protocol work. If being on a protocol that specifically is designed to duplicate content isn't permission enough to duplicate content then the Fediverse goes poof. Zilch. Zero. Nada."

@nate, 2024

primal.net/e/nevent1qqsp85429n…

Well put. Found via a link here;

nate.mecca1.net/pages/follow/

#fediverse #ActivityPub

This entry was edited (1 week ago)

reshared this

in reply to Strypey

without knowing the specific dmca i remember people getting takedowns for files they didn't even host before. someone just sees it and files the papers and doesn't bother to check who it is.

ipfs gateways have a similar thing where they have to just block random CIDRs because :cirno_shrug:

in reply to Q.U.I.N.N.

primal.net/e/nevent1qqsrj54de9…

This was the DMCA prompted my mini crash out. There was something of a campaign to get bridges taken down, and the DMCA referenced standard federation. It was seperate from the 'yeet a bunch of automated DMCA alerts to random gateways' (lol, which could also probably get me going on a rant, but just a different rant about different things).

in reply to Nate

:neocat_magnify: i have a feeling that wouldn't hold up in court but i'm not a lawyer and judges are professional morons
in reply to Strypey

Not quite true, literally or otherwise. The protocol doesn't require caching. For performance reasons, most, if not all, ActivityPub server implementations cache remote content, but they could also just dereference the remote URIs when remote content is accessed.
in reply to Eye

Unless I'm misunderstanding something (fairly likely), theoretically, bridges could do the exact same, right?

Bob (Mastodon.Social) wants to see content from Alice (Tchncs.de). Mastodon.social dereferences a copy of Alice's profile/post & the replies/likes to said posts, creates a local copy that it serves to Bob, then deletes the local copy until another request is made.

Bob (Mostr Bridge) wants to see content from Alice (Tchncs.de). The Mostr bridge dereferences a copy of Alice's profile/post & the replies/likes to said posts, creates a local copy that it serves to Bob, then deletes the local copy until another request is made.

Even if an Activity Pub instance doesn't cache remote content long term (be it a standard instance or a bridge using the protocol), it's still gotta duplicate content to serve it to other users.

in reply to Eye

> Every Activity Pub server duplicates content

@eyeinthesky
> they could also just dereference the remote URIs when remote content is accessed

They could. But arguably they're still duplicating content. They're just doing it every time someone wants to get the same post or profile through the bridge. So from a user POV nothing is different, it just increases resource consumption for the bridge *and* the origin server.

@Eye
in reply to Strypey

Yes and no. From a legal or technical standpoint, all this is true. It is legally allowed, technically necessary. But this doesn't mean it's ethical and that it doesn't violate consent.

I can walk up to two people speaking in "public" to eavesdrop on their conversation. But just because I can, doesn't mean it's right. I can scrape endless pfp images from WhatsApp through their contacts API. But doesn't mean it's right.

So no, just because it's possible it doesn't mean "permission enough". It' just means that it's necessary and people have accepted the risk. Explicit permission is something different entirely. This is about consent, a human property, not about technological or legal constructs.

in reply to lj·rk→⁽³⁹ᶜ³⁾

Bridges are a bit different than scraping content or listening into a conversation. A bridge that bridges Activity Pub to AT/Nostr acts like any other ActivityPub instance, requesting a copy of the bridged user's profile in the same way another ActivityPub native server would. Same with Friendica (that I'm using right now to reply), it requested a copy of your post over Activity Pub, despite being native to DFRN (although, unlike Bridgy Fed/Mostr, Freindica bridges internally via plugin instead of using a dedicated standalone bridge). I'd argue that using a protocol designed for federation, on a server that defaults to federating with any instance not proactively blocked, is rather explicit permission to federate.

However, since it's just federating normally, it's easy to stop. If you block the bridges (at the user level or instance wide) they won't federate, just like any other Activity Pub instance. While I think bridges are important for the ecosystem, the beauty of something that's not centralized is that you can choose exactly what you do and don't want to interact with.

in reply to Nate

Absolutely, there's this difference. But I'd argue it can only be consensual if whatever happens is somewhat "expected". And depending on the service in question, this isn't always the case. Some people go to the Fedi because they don't want to have their stuff on AT...
in reply to lj·rk→⁽³⁹ᶜ³⁾

(1/3)

@ljrk
> I can walk up to two people speaking in "public" to eavesdrop on their conversation

That's not a valid metaphor for Public posts on a federated network. It's more like 2 people speaking on a stage using microphones, connected to a global livestream.

If you don't want strangers to listen to your conversation, that's easy! Just get off the stage. If you want to have a private conversation in a public space that people won't eavesdrop on, that's what Direct posts are for.

@nate

This entry was edited (1 week ago)
in reply to Strypey

(2/?)

@ljrk
> it can only be consensual if whatever happens is somewhat "expected"

That's like saying that striking up a conversation with someone at a speed dating event isn't consensual, if that person didn't expect to be spoken to at the event. If people choose to go into a situation, not expecting things that can be reasonably expected, that's on them. Not on everyone else for not being mindreaders.

in reply to Strypey

(3/3)

I think there is UX work that can be done to make it clearer what level of visibility a post has, and to give people more granular control;

codeberg.org/fediverse/fediver…

But none of that will help if people refuse to learn about the options available and how to use them. Or insist that everyone else magically know what they intended, even if their app usage choices suggest the opposite.

This entry was edited (1 week ago)
in reply to Strypey

Coda: If I stand in the street wearing a "free hugs" sign, it's reasonable for people to expect a free hug. Say someone hugs me, and I claim it was non-consensual because I only expected my friends to take up the offer made on the "free hugs" sign. Is that reasonable on my part?

When you post something as "Public" (instead of "Followers only", or "Private mention", to use the current Mastodon app terms), that's like the "free hugs" sign. People can reasonably expect to take that literally.

This entry was edited (1 week ago)
in reply to Strypey

Me:
> If you want to have a private conversation in a public space that people won't eavesdrop on, that's what Direct posts are for.

FYI The Mastodon web app currently calls them "Private mentions". Some apps now call them "Only people mentioned" (eg Moshidon).

#FediTips

@ljrk

in reply to Nate

> unlike Bridgy Fed/Mostr, Freindica bridges internally via plugin instead of using a dedicated standalone bridge

At the risk of splitting hairs, I think you're stretching the definition of "bridge" beyond breaking point there.

A bridge connects any instance to any instance (of whatever it is they bridge). An AP plugin adds native federation to a single instance, allowing it to connect directly with any remote service federating over AP. Two quite different things.

@ljrk