I see that ActivityPub makes it hard to do it and if it can’t be done then it should be visible (so people can know and act accordingly)
The only “alternative” approach I can see would be to have a per instance account that is given the activity (say upvote/downvote)
So… let’s say I’m on kbin.social and upvote this comment.
Kbin.social knowing me (since it’s my account) logs the upvote but does so as if [email protected] did the upvote.
That is then what is replicated across the fediverse.
I assume that breaks the “intent” of the protocol and could be an issue but does let other instances decide to filter out that activity (if they decide to do so) by having some attribute or flag that denotes that this “account” is the fediverse instance account (e.g. not a user).
Boosts, however, should be shared since it’s like a retweet/shout out and os is meant to be shared.
Of course that means I can no longer see my own upvote/downvote activity.
If that was also wanted then you could add a table that basically logs that but isn’t federated. E.g. a local instance reference that can be used for that instance to show the activity.
This way there’s less chance of an issue of somebody knowing a users account seeing activity like this:
-
A man, say in Iran, upvoted something about the prophet that somebody else found disrespectful
-
A christian teen upvoted something about atheism.
-
A woman reading about how to leave a domestic abuse situation.
-
Somebody curious about transgender reassignment
Either there needs to be a way to minimize the risks of such activity being seen/shared across the fediverse or it needs to be very very clear that even if you don’t see it that what you do is shouted across the fediverse and that others can and will be able to see it.