-
Notifications
You must be signed in to change notification settings - Fork 679
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
Signer should allow a tenure-extend to let the previous miner continue mining if the next miner did not start mining before the timeout #5361
Comments
Sometimes, the next miner is unable to mine any blocks, so the previous miner should be able to tell for sure that it can extend its tenure. This happens if the winning miner's block commit is not committing to the correct tenure. Sometimes this will happen if a miner's block commit is not RBFed in time. #5064 could help with this, avoiding the need for an RBF. |
If a miner sees that the next miner is in this situation, it should go ahead and immediately submit a tenure extend. |
I think this scenario is happening often currently in mainnet, causing pauses in block production. One example I looked at:
|
#5452 solves the case where the winner has a bad block commit. This is the common case that we currently see on mainnet, so it is the more important one to solve. The timeout case will be done in a separate PR, but there is already an integration test ready for it, |
Typo I think, the non-enabled test is |
Ah, you're right thanks! I'll edit the earlier comment to avoid confusion later. |
@obycode is this good to close? |
Not yet. We don't yet extend in the case where the block commit is good but the miner doesn't mine any blocks for some reason. I think this case is less important so we can leave this as a todo after the other tenure extend work is complete. |
Another case of this is when there are valid block commits, but the null miner wins the sortition. The previous miner should extend and continue mining in this case. |
Sample logs of this happening on 12/11 at ~8:00 PM Eastern here |
@obycode maybe I'm just forgetting, but I thought we'd implemented extends when there was no sortition winner? What's the difference - to my cursory glance, it seems like when the null miner wins, |
Yeah thanks for pointing that out. Also, we do see these tenure extends working when the cause is not a flash block. It seems that the actual problem is probably solved by #5515. Maybe this scenario just needs an integration test in order to close it. |
#5515 solves the miner side of this issue. Renaming this one so that it tracks what needs to be done on the signer's side. |
It looks like the signer is already primed to accept tenure extends from the prior sortition if the current sortition miner has been marked as SortitionMinerStatus::InvalidatedBeforeFirstBlock (which happens when the block_proposal_timeout has been exceeded). @obycode has written the following test already |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Signers should accept tenure extends from a previous miner if the current miner did not start mining before the required timeout.
The text was updated successfully, but these errors were encountered: