Skip to content
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

Reject downvotes from specific instances, or have an allowlist / blocklist for votes #4086

Open
4 tasks done
dessalines opened this issue Oct 23, 2023 · 15 comments
Open
4 tasks done
Labels
enhancement New feature or request

Comments

@dessalines
Copy link
Member

dessalines commented Oct 23, 2023

Requirements

  • Is this a feature request? For questions or discussions use https://lemmy.ml/c/lemmy_support
  • Did you check to see if this issue already exists?
  • Is this only a feature request? Do not put multiple feature requests in one issue.
  • Is this a backend issue? Use the lemmy-ui repo for UI / frontend issues.

Is your proposal related to a problem?

When federating with larger instances, your local feeds can be influenced by their anonymous voting patterns. It should be possible to reject votes from instances that you choose, without fully blocking them.

Describe the solution you'd like.

It might be useful to have an allowlist_votes, where you can keep open federation, but only allow downvotes from select instances. Should reduce bot spamming downvotes.

Or a blocklist_votes, where you allow all downvotes, except from specific instances.

Describe alternatives you've considered.

TODO

Additional context

No response

@dessalines dessalines added the enhancement New feature or request label Oct 23, 2023
@dessalines dessalines changed the title Reject downvotes from specific instances Reject downvotes from specific instances, or have an allowlist for downvotes Oct 23, 2023
@lullis
Copy link
Contributor

lullis commented Oct 23, 2023

+1, but I proposed something similar on #3895 and it got closed.

@DraconicNEO
Copy link

I think this is a good idea but probably shouldn't be limited just to downvotes since upvotes can be fraudulent and manipulated as well, so being able to also block them from other instances would be very useful.

@DraconicNEO
Copy link

+1, but I proposed something similar on #3895 and it got closed.

I'd say this is more similar to #3662 and #4037 since it's less about implementing anti-cheat for Downvotes (what Reddit does) and more about providing more granular federation options such as being able to block Instances from downvoting, rather than setting specific critera for users to vote which can be seen in many ways as hostile towards users.

@Nutomic
Copy link
Member

Nutomic commented Oct 24, 2023

This is not a real solution because there is no effective way to find out which instances are manipulating votes. #4088 would be much more effective. Also #1487 (comment) would help.

@dessalines dessalines changed the title Reject downvotes from specific instances, or have an allowlist for downvotes Reject downvotes from specific instances, or have an allowlist for votes Oct 24, 2023
@dessalines
Copy link
Member Author

Good point, this shouldn't be limited to downvotes only, but all votes.

I agree that this doesn't help you find which are the vote-manipulating instances. For that, there are several options while still keeping votes private, such as

  • Showing votes by person only to admins (and maybe mods)
  • Serving up a public aggregate of vote count by instance, for a given item.

Once you have that info tho, you can either

  • block the instance entirely or
  • add that instance to a blocklist_votes or have an allowlist_votes for explicitly defined instances you allow votes from (what this issue is about)

@Nutomic
Copy link
Member

Nutomic commented Oct 24, 2023

The instances you shared as examples for bot voting (social.venith.net and x69.org) have almost no posts. Why not simply put them on the normal blocklist? I dont see why it requires a separate blocklist.

@dessalines
Copy link
Member Author

dessalines commented Oct 24, 2023

Oh yes, for bot / Open instances I'd recommend the full block.

But there's also the case where you might want to stay federated with a larger instance, but still reject anonymous votes from them. Very useful if they have a lot of users that can influence your local feeds / sorts in a way you don't want.

I edited the issue to reflect that.

@dessalines dessalines changed the title Reject downvotes from specific instances, or have an allowlist for votes Reject downvotes from specific instances, or have an allowlist / blocklist for votes Oct 24, 2023
@ThisIsMissEm
Copy link

Something I'd probably recommend is changing how you look at the federation management features. Rather than just having many discreet lists of domains in a big settings table, actually have a instance_moderation_filters table which specifies whether to allow, reject or filter activities from the instance (this is what I propose in the FIRES proposal I'm working on getting published)

That way you can have a federation management UI that clearly lists each instance & the filters being applied.

@Nutomic
Copy link
Member

Nutomic commented Oct 25, 2023

Another option would be a plugin system which looks at incoming activities and decides whether to accept or reject them based on different criteria. That could be used to implement more granular blocklists among other things.

@db0
Copy link
Contributor

db0 commented Oct 25, 2023

Generally designing lemmy in such a way as to allow plug-ins would be much preferable, as it would allow everyone to help improve things without having to go through the main PR process. Do we have an issue for such a feature?

@ThisIsMissEm
Copy link

You'll still need somewhere to store the filtering state/rules, and having those all in one place can be very beneficial

@Nutomic
Copy link
Member

Nutomic commented Oct 25, 2023

#3562

@DraconicNEO
Copy link

The instances you shared as examples for bot voting (social.venith.net and x69.org) have almost no posts. Why not simply put them on the normal blocklist? I dont see why it requires a separate blocklist.

There may be other instances that one might want to block votes from which have many communities and a larger user base or large integral communities and banning them from voting is a better compromise than banning them entirely.

@db0
Copy link
Contributor

db0 commented Oct 27, 2023

btw, since my OP was closed as duplicate, I'm crossposting my original reasoning here


Is your proposal related to a problem?

This is a another tool in the moderation toolset to be used instead of outright de-federation. It could be used against instances which are not problematic enough to be blocked, but ideologically different enough where the parent instance does not wish to record their voting patterns.

This would be similar to mastodon's silencing features in strength.

Describe the solution you'd like.

Allow the lemmy admins to provide another list of "Vote silenced" instances (another name for this list is also fine). Votes from those instances on posts or comments would be silently dropped.

@ismailkarsli
Copy link
Contributor

This proposal could kill small/self-hosted instances and direct users to large ones.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants