-
Notifications
You must be signed in to change notification settings - Fork 2.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
Peer Reputation for syncing #943
Comments
It would be the main issue to track the progress and discuss how the reputation system should work. I assign this issue to @leviathanbeak because he is the main keeper of all the P2P stuff=) But it is a critical part of the blockchain, and almost everyone from the @FuelLabs/client should review it/participate in the discussion. The first step is to define future steps and fill in the issue description. @leviathanbeak Could you handle it, please? Maybe we need to investigate potential reputation systems and describe/compare them here. |
Maybe this would be worth a notion document? Also we could try out github discussions although I've never actually used that. |
One thing that I think we should really keep in mind during this design though is the fundamental limit that anything we do will only be tied to a key pair. If key pairs are cheap / easy to make (as in we don't add any additional requirements to join the network) then this is a very low bar for entry. It's worth keeping this in mind before we invest too much energy into these kinds of measures. |
I started a Page in Notion. If you have some comments, if you disagree with something, you can leave comments, update the document etc If you have a completely different idea on how to approach it, then maybe creating different page within |
@leviathanbeak Thank you for the notion document!=) I have questions and suggestions regarding the description.
|
Hey @xgreenx
|
Here's the link to Gossipsub calculation process. |
The approach is mostly detailed in [Notion](https://www.notion.so/fuellabs/New-Proposal-96da9de6609b4faf94c30ae6bd355bc4). These are the first steps of our Peer Reputation approach, there are certain _todos_ left, could be added later on or if needed I can add them with this PR. Todo: - [x] peer reputation decay with time - [ ] implement unban peers after certain period - [x] reserved peers should not be banned/scored ? - this is kind of "implemented" by only updating the score of non-reserved peers Ref #943 --------- Co-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com> Co-authored-by: green <xgreenx9999@gmail.com> Co-authored-by: Brandon Kite <brandonkite92@gmail.com>
First implementation of #943 During block import, if the peer gives incorrect values, dock their peer score. If they successfully report a block, improve their peer score.
The notion doc references a bunch of cases that aren't covered yet:
and
All the things related to the importer, we've done, but things that happen at a lower level, like deserialization, response time, connection strength, etc, need some thinking. |
The approach is mostly detailed in [Notion](https://www.notion.so/fuellabs/New-Proposal-96da9de6609b4faf94c30ae6bd355bc4). These are the first steps of our Peer Reputation approach, there are certain _todos_ left, could be added later on or if needed I can add them with this PR. Todo: - [x] peer reputation decay with time - [ ] implement unban peers after certain period - [x] reserved peers should not be banned/scored ? - this is kind of "implemented" by only updating the score of non-reserved peers Ref FuelLabs/fuel-core#943 --------- Co-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com> Co-authored-by: green <xgreenx9999@gmail.com> Co-authored-by: Brandon Kite <brandonkite92@gmail.com>
First implementation of FuelLabs/fuel-core#943 During block import, if the peer gives incorrect values, dock their peer score. If they successfully report a block, improve their peer score.
The plan is to first come up with an approach how to handle Peer Reputation.
That includes, but not limited to:
Once we've made a decision on the approach, and defined implementation details then we can start working on it.
Rewardable Actions:
Current Progress:
The text was updated successfully, but these errors were encountered: