-
Notifications
You must be signed in to change notification settings - Fork 59
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
feat: incentivization PoC: client-side reputation system basics #3293
Conversation
You can find the image built from this PR at
Built from 425506b |
fce0795
to
2cd7d30
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks so much!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, minor suggestion below. Feel free to merge without rerequesting review. :)
2cd7d30
to
ecf94f6
Compare
Description
This PR implements parts of a simple client-side reputation system that don't require modifications in the Lightpush protocol.
This is a countinuaton of #3166 and #3264 with associated deliverable waku-org/pm#245.
The goal of this PR is to merge parts of the reputation system that don't require integration into any real protocol (Lightpush or otherwise). This functionality aims to encompass common functions that all reputation-enhanced protocols will use (Lightpush will be the first but probably not the only protocol to do so).
In a reputation-enhanced protocol, clients remember the results of their interactions with servers and update the servers' reputation scores accordingly. If a server sends a bad request (for some definition of response quality implemented in the respective response evaluation functionality), that server's reputation is set to "bad".
Note that reputation indicators have no relation to gossipsub peer scores. It is possible that reputation indicators from client-server protocols will play a role in peer scoring as an application-specific component (cf.
p_5
in the peer score formula). This idea is left for future work.Changes
List of detailed changes
isSuccess
field istrue
)The next steps will imply integrating the eligibility- and reputation-related functionality in the Lightpush protocol (behind a feature flag) that involve amending the relevant protobuf structures and peer selection mechanism. In particular, a client will avoid selecting bad servers for all its future requests. Also, response quality evaluation will involve making a Store request to ensure a given message has indeed been published.