-
-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Defederation should make follower relationships inactive instead of removing them entirely #25526
Comments
Imagine using an email service where one server temporarily blocks another due to spam, leading to everyone's contacts and previous messages with the other service being auto-deleted.... This is a bad current implementation for sure. |
Addendum: you should see the reason why your follow relationship is inactive when viewing an affected account from your instance. |
There is something about this in the roadmap:
|
The benefit of this proposal is that users don’t need to do any extra work to refollow people. Is there a reason you wouldn’t want to follow the same people again? If not, I think it would make sense for refollows to be automatic on re-federation. |
Exposing severed relationships to the end user on the blocking side is definitely worthwhile, and automatically restoring them as well, and some of those things are planned. However, I'd like to highlight some caveats:
|
Thanks for considering this proposal, and I’m glad to hear work in this area is planned! |
We have started work for this feature in #27511. The idea is to record lost relationships on some events (your admins suspending a remote user or server, you blocking a remote domain), notify affected local users, and allow them to download lists of those, which in case of broken outgoing follows, can be imported straight away in this or another server. Longer term, we plan to allow one-click re-follow when the block is lifted. This isn't entirely satisfactory for recovering lost followers, though. We do have some ideas, but this will be a longer term ordeal. |
Awesome, thanks for the update! I do still think it would make sense to put “lost follows” in the same list as normal follows, export them at the same time, and re-establish them automatically—if I click the follow button and don’t unfollow/block a user/domain myself, I would expect them to stay in the list of users I follow. Having to download separate lists for each relationship-severing event seems like a pain. But this would definitely be an improvement! |
@ClearlyClaire If i spot correctly, #27511 currently only works with outgoing domain blocks (local blocking remote), correct? Would it be possible to spot an incoming domain block (remote blocking local)? |
We have ideas on how to achieve this, basically "archiving" relationships that were severed by the remote instance, and then, of the remote instance unblocks you, it sends an |
Just following up on ShadowJonathan's comment, I think it would be very confusing if different events were to cause different things to happen to the data. Imagine instance A blocks instance B, then decides to unblock it again. How will you explain to the affected users what to do? This is the type of step-by-step instruction that will have to be passed around:
Ideally the process would be simpler overall (the "archiving" concept sounds promising!), but from the user's perspective, it feels weird to have to understand the details of which server caused the relationships to be severed, especially if one direction results in data loss vs data preservation. |
I don't understand why this would be necessary. If an incoming/outgoing follow is deactivated, the server can simply stop honoring it by ignoring/skipping incoming/outgoing activities. Why would that be problematic with the existing protocol? It's not even mandatory to have followers/following collection https://www.w3.org/TR/activitypub/#followers , and only the rejection of a follow must be honored, according to https://www.w3.org/TR/activitypub/#follow-activity-inbox
|
When there is an instance-level block, all relationships are deleted from the database tables. There is no notion of "disabled follow". Our plan is to store those relationships in a separate table, and if the block is removed, re-issue the follow requests. |
Il 27/12/23 13:49, Renaud Chaput ha scritto:
There is no notion of "disabled follow".
...and I thought introducing it was the point of this request.
Making the removal easier to reverse is ok as workaround for the most
common use case.
|
There are scenarios when this is needed. For instance, consider the following one:
To (very significantly for accounts with a large following) cut down on network traffic, Mastodon sends the message only once to |
Pitch
When two servers defederate, the current behavior is to delete all follower/following relationships between users of those two servers. The proposal is: instead of deleting these relationships, the server should somehow mark them as inactive. This way the relationships can be restored if the servers re-federate or the user moves to a new instance.
Motivation
This proposal is motivated by recent events between mstdn.social and mastodon.art. The two servers suddenly defederated and then re-federated due to admin conflict. In the current system, users have lost the valuable information about who they followed and are left to piece it together themselves. If this proposal were to be implemented, their follow lists would have been restored as if nothing ever happened.
The text was updated successfully, but these errors were encountered: