storj-archived / bridge

Deprecated. Access the Storj network via simple REST API.
https://storj.io
GNU Affero General Public License v3.0
77 stars 44 forks source link

Rate issue with reputation points #600

Closed braydonf closed 5 years ago

braydonf commented 6 years ago

Problem There is an issue with the reputation points system with the rate that reputation points are given, as discovered during discussion of this issue https://github.com/storj/bridge/issues/596

If the rate or bytes difference with the rate differs for points awarded vs points deducted varies there is potential to boost the reputation with one action enough that it will compensate for other actions. For example if the rate of ALLOC requests is 100 per hour, there is a potential of 100 points awarded/lost per hour. However if the rate at which RETRIEVE is 20 points awarded/lost per hour. The upward movement of ALLOC success could overcome the loss of reputation with RETRIEVE. See discussion in #dev https://community.storj.io/channel/dev?msg=Fiy2dxfLH2G4mc9Bc

Solution These issues can be solved by using an upload rate of bytes and download rate of bytes as an input to a reputation points system. An estimated moving average can be used to calculate the reported bytes transfered rate as similar to the method used for determining the reporting rates for a user at https://github.com/storj/service-storage-models/blob/master/lib/models/user.js#L387-L481

Each contact (farmer) would then have additional fields added:

The reputation points would then be awarded/lost such that if download rate of bytes is lower than upload rate of bytes there would be more points awarded for download success/failure than for upload success/failure, determined by the ratio between the two actions:

See the comment at https://github.com/storj/bridge/issues/596#issuecomment-389616857 for the locations where these points are updated.

cc: @littleskunk @jtolds

RichardLitt commented 5 years ago

👋 Hey! Thanks for this contribution. Apologies for the delay in responding!

We've decided to rearchitect Storj, so that we can scale better. You can read more about this decision here. This means that we are entirely focused on v3 at the moment, in the storj/storj repository. Our white paper for v3 is coming very, very soon - follow along on the blog and in our Rocketchat.

As this repository is part of the v2 network, we're no longer maintaining this repository. I am going to close this for now. If you have any questions, I encourage you to jump on Rocketchat and ask them there. Thanks!