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
Gossamer block finalization stalls on a cross-client dev net #2623
Comments
I noticed that substrate only cast the vote after receiving a neighbor message from the peers, while we define a prevote without waiting for the peers, other than that we should only send pre-commit message after receiving enough prevote messages. Currently, gossamer only sleeps for some Another point is that we should send a neighbor message when we start GrandPa otherwise substrate will not send us any vote information |
After more investigation, I find out the substrate is using a different protocol id for GRANDPA message exchange |
Gossamer was capable to finalize block for 2 rounds in the third round I notice the following behavior:
A possible solution is: currently, gossamer spins up two goroutines one to send prevote messages and the other to send precommit messages, those goroutines only stops once the round is completable but we should make sure that after the prevote phase ends we stop sending prevote messages |
Can you post some relevant logs for this, like dump of substrate std output and gossamer std output? |
Describe the bug
Gossamer node A produces block 79, the substrate node B produces block 79 and substrate node C produces block 79 each block with a different hash but substrate node B and C reorg the chain and keep the block 79 produced by substrate node B
Gossamer node A
Substrate node B
Substrate node C
To Reproduce
Steps to reproduce the behavior:
The text was updated successfully, but these errors were encountered: