-
Notifications
You must be signed in to change notification settings - Fork 87
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 Sharing - Which peers do we ask to? #3957
Comments
Need to consider:
|
For now Gossip is being idealized as a Request-Response type of protocol, that will happen asynchronously as a way for the node to obtain more known peers (cold in particular). As @njd42 said, only established peers should be picked to gossip to (i.e. start a request-response protocol). Being on the request-ing end of the protocol, one has to first decide a few things:
So to summarize: When the node is making an outbound connection to some peer it should be communicated in the handshake whether we want to be share/be shared. If the Peer Selection Governor decides it is a good idea to perform share requests to fetch more peers to our Known Set, the node should first (not by this particular order):
If these first checks go through, all it's left is to pick a random set of peers from the established to-ask set according to some policy (e.g. 20% should be non-ledger peers). If all requirements are met a Gossip request shall be initialized to all peers that were picked. General comment after giving this some thought is that re-using a lot of the current legacy peer sharing system might be possible since it already takes targets into consideration |
from @njd42:
|
We have concluded that we only need to request from |
Which of the current established peers do we select to ask?
We don't see any need to ask cold peers as the valency of the established peers is sufficiently high (if, in future, we decide that we do need this we can make peers 'warm' anyway). This means Peer Sharing does not require any additional peer promotion mechanisms.
We are not relying on Peer Sharing to ensure eclipse avoidance.
We need to provide mechanism to disallow Peer Sharing:
The text was updated successfully, but these errors were encountered: