mirror of
https://github.com/nspcc-dev/dbft.git
synced 2026-03-01 04:28:38 +00:00
RecoveryRequest triggers PrepareRequest from Primary even if the time is not yet came to send it #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @roman-khimov on GitHub (Apr 19, 2023).
Originally assigned to: @AnnaShaleva on GitHub.
Consider a network operated by @aprasolova. She has seven consensus nodes and tries to play with one of them, substituting CN+IR setup with a single IR using internal CN. We have a network with
TimePerBlock: 15s, but she accidentally sets it to1son the node she works with. What happens next is whole network creating blocks each ~1-3s which is obvious for the case when we have a primary node using1stimeout, but less so when it's a backup. When it's a backup it sends a recovery request after ~2s which triggersin
onRecoveryMessageon a primary and then everyone is rushing to complete a block.Can @aprasolova be blamed for misconfiguration? YES, that's a huge and obvious mistake. But what she can't be blamed for is a single-node setting affecting whole network. This MUST NOT happen at the dBFT/CN level.
I'm wondering what would the C# node reaction be to a similar RecoveryRequest.
@vncoelho commented on GitHub (May 15, 2023):
Sure, @roman-khimov,
In fact, that line could be removed.
It would be also good to keep in mind a mechanism that often check network parameters between nodes.