Skip to content
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

lib/grandpa: ensure messages are stored and re-processed when needed #1855

Closed
noot opened this issue Oct 8, 2021 · 3 comments
Closed

lib/grandpa: ensure messages are stored and re-processed when needed #1855

noot opened this issue Oct 8, 2021 · 3 comments
Assignees

Comments

@noot
Copy link
Contributor

noot commented Oct 8, 2021

Task summary

  • currently, the network layer always re-broadcasts grandpa messages; this is to prevent an issue where a node may receive a vote message too early and discard it due to "round mismatch" errors or some other timing error
  • however, this will cause unnecessary network traffic, and the node should be storing all grandpa messages it receives a re-processing them unless they are deemed too outdated (ie for some previously finalized round)
  • the grandpa messageTracker attempts to do this but can be improved
  • check that the tracker is reprocessing messages at the right time
  • storing the messages when they should
@noot noot self-assigned this Oct 12, 2021
@danforbes danforbes added the p1 label Oct 13, 2021
@timwu20
Copy link
Contributor

timwu20 commented Oct 18, 2021

@kishansagathiya
Copy link
Contributor

kishansagathiya commented Dec 8, 2021

@noot
I have assumed that this is issue is really about reprocessing catch up requests and catch response messages.

From my understanding of the code, commit messages and vote message are getting added in tracker, getting processed and getting deleted as we would like them to be.

neighbour message seems like something that could be ignored if we fail to process it (since it gets sent at regular intervals)

We however don't have logic to send catchup requests and responses.

however, this will cause unnecessary network traffic,

We send messages in loop, but the loop gets closed as the round gets finalized. Would it still cause traffic?
Apart from that we have neighbour message, which we are supposed to keep sending at certain intervals.

@kishansagathiya
Copy link
Contributor

closed in #2107

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants