-
Notifications
You must be signed in to change notification settings - Fork 129
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
Investigate implementing grandpa catch up request and response #2950
Comments
There is already an issue about this. Planning to revive my old PR (#2152) on this after eclesio's Grandpa PR is merged |
@kishansagathiya I believe the PR you mentioned can be broken in separate work streams with smaller and consise PR's, but I would like to discuss some points you have in your PR:
The catch-up logic covers from the node bootstrap until checking neighbor messages, so it contains a very large scope and I believe we should identify and isolate the scopes to avoid big PR's
This point should be addressed in its own workstream
Every catch-up request that gossamer receives from other node must be answered in the same stream, what do you mean by It is important to notice that a catch-up request that we receive from another node should decrease the sender's reputation (as substrate does), so we charge a node's reputation in order to prevent spamming Another work stream is to do the very first catch-up, currently Gossamer does not execute a catch-up request before starting the first round, this behavior in a running network can cause problems, so we should address this behavior to ensure Gossamer starts in the right round (when a grandpa authority) I believe we can put this issue as part of epic #1531 |
Do you mean Also, even if we don't do deliberate catch up on bootstrap, we would still catch up, because we would be receiving neighbour messages rather often.
I have talked about processing catch up response later, not the request. We are responding to catch-up request in the same stream. Having a catch up response tracker is appropriate and safe.
This being a separate task makes sense to me.
Isn't this same as your first point of catching up on node bootstrap? Also, even if we don't do deliberate catch up on bootstrap, we would still catch up, because we would be receiving neighbour messages rather often. |
I mean, your PR name is
Oh I see, right! I think we should address this in its own PR, what do you think? @kishansagathiya
Right, and the point is basically once the node is in sync with the net so we should ensure the node is the right round/set id of the other authorities (this should not be done in the node bootstrap as I said earlier 😅 ) |
I don't think that is necessary. @EclesioMeloJunior Let your grandpa refactor get merged. Let me revive that PR, I am happy to break up extra task if I find more things.
We should catch up when we find that we are lagging behind. Neighbour messages are the best way to find that we are lagging behind. We receive them rather often. I don't see any other instance when we should catch up. Last I read, spec/rust impl also recommended the same thing. If you have any other instance in mind let me know. |
stale issue |
Issue summary
Other information and links
The text was updated successfully, but these errors were encountered: