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

[FEATURE] Reporter reputation system #55

Open
CoralineAda opened this issue Feb 1, 2019 · 2 comments
Open

[FEATURE] Reporter reputation system #55

CoralineAda opened this issue Feb 1, 2019 · 2 comments
Labels
feature request New feature or request xlarge

Comments

@CoralineAda
Copy link
Contributor

All contributions, including pull requests, issues, and comments, are governed by our code of conduct.

Is your feature request related to a problem? Please describe.

We need to track a given account's reputation.

Desired solution

Create a reputation system for accounts. Reputation is influenced by:

  • Number of dismissed reports over a given threshold
  • Incidence of 404 and 302 errors triggered (indicates suspicious activity)
  • Traffic origin (Tor exit nodes and proxies)
  • Account hits a maximum limit for certain activities (# submitted reports, # abuse reports submitted for example)? Not sure on this one.
  • Other factors?
@CoralineAda CoralineAda added the feature request New feature or request label Feb 1, 2019
@CoralineAda CoralineAda added this to the Public Beta milestone Feb 1, 2019
@CoralineAda CoralineAda changed the title Reputation Reputation System Feb 1, 2019
@CoralineAda CoralineAda added this to To do in Version 1.0 Mar 9, 2019
@CoralineAda CoralineAda modified the milestones: Public Beta, 1.0 Mar 10, 2019
@CoralineAda
Copy link
Contributor Author

Dependent on #132

@CoralineAda CoralineAda moved this from To do to In progress in Version 1.0 Mar 27, 2019
@CoralineAda CoralineAda moved this from In progress to To do in Version 1.0 Mar 28, 2019
@CoralineAda CoralineAda changed the title Reputation System [FEATURE] Reporter reputation system Apr 14, 2019
@noahgibbs
Copy link
Contributor

This description suggests to me that you're eventually going to want an Event Sourcing-style model for this data, and it's probably worth planning for up front.

Specifically, you're going to wind up including information from other known entities (users, moderators, subjects of reports) in the reputation score at some point, because how could you not? And the reputation of those known entities is going to be relevant (e.g. don't downgrade reputation based on mass anonymous reports, stop counting reports from a moderator you've had to dismiss.)

It's not impossible to formulate a huge matrix algorithm to do this based on all your current estimates of everybody's reliability and fully take the present knowledge into account. That's how Google would do it. But it's much easier to replay a stream of events and for each one, use what you currently know about all parties to re-score the effects of those events.

(If this sounds like an anti-brigading/mass-reporting tool, that's because this is also how you write those. The requirements on the data model are very similar.)

As a side effect, an Event-Sourcing-type architecture gives you a full audit trail for every activity you use it for, and make it much easier to separate read/append/write permissions on your data stores. It also gives you the ability to re-evaluate the event stream so errors in counters won't normally cost you information.

On the minus side, it's an uncommon app architecture and a bit of a pain to set up. You don't 100% have to do it with an event-sourcing-type tool (e.g. Kafka,) it's doable in a database. But no matter how you do it, it changes how you read and write all the relevant structures :-/ It can be done incrementally, but that only helps a bit.

@CoralineAda CoralineAda removed this from To do in Version 1.0 May 27, 2019
@CoralineAda CoralineAda removed this from the 1.0 milestone May 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request xlarge
Projects
None yet
Development

No branches or pull requests

2 participants