Open knst opened 4 days ago
Guix Automation has began to build this PR tagged as v21.0.0-devpr6096.c36c8c71. A new comment will be made when the image is pushed.
Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v21.0.0-devpr6096.c36c8c71. The image should be on dockerhub soon.
Please object if there is a reason for this to be back ported to v21.0
@PastaPastaPasta Currently, we have a bug in Drive when we submit chainlock we get the same error in case if Core is not synced up to the height when this CL quorum is created or if a malicious proposer sends a malformed signature. In the first case, we would like to wait a bit and try again. In the second case, we want to reject a proposal immediately. It opens an attack vector if we wait in both cases or often leads to multiple rounds per height if we reject blocks for both.
Issue being fixed or feature implemented
Currently by result of
submitchainlock
impossible to distinct a situation when a signature is invalid and when a core is far behind and just doesn't know about signing quorum yet.This PR aims to fix this issue, as requested by shumkov for needs of platform:
What was done?
Return enum in CL verifying code
chainlock_handler.VerifyChainLock
. The RPCsubmitchainlock
now returns error with code=-1 and messageno quorum found. Current tip height: {N} hash: {HASH}
How Has This Been Tested?
Functional test
feature_llmq_chainlocks.py
is updatedBreaking Changes
submitchainlock
return one more error code - not really a breaking change though, because v21 hasn't released yet.Checklist: