-
Notifications
You must be signed in to change notification settings - Fork 736
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
Investigate UnknownTargetRoot
slasher errors
#4972
Comments
How to test
How to confirm the issueEdit the log message for
If my theory is correct then we should have |
How to fixI think the attestation probably fails verification here:
It then gets passed to the slasher via lighthouse/beacon_node/beacon_chain/src/attestation_verification.rs Lines 382 to 385 in 441fc16
The The process of converting the Presently the lighthouse/beacon_node/beacon_chain/src/attestation_verification.rs Lines 1255 to 1269 in 441fc16
To fix the issue we want to prevent this error from being returned, either by:
|
Description
We have quite a few minor errors on the slasher like:
I think this error means:
beacon_block_root
).target_root
. This is an invalid type of attestation, as it implies the target isn't an ancestor of the head.Steps to resolve
beacon_block_root
does not descend from thetarget_root
.a) Use the attestation's head state to verify the signatures when the target block is unknown. This should not result in any errors, as attestations are only sent for processing once their head block is known (otherwise they get requeued).
b) Add a different queue for the slasher which waits for the target root to be known. From the logs it seems that many of the target blocks are actually valid (and canonical), so it might just be a race where a peer attests
head=N - 1
andtarget=N
at the start of slotN
before we've had time to import blockN
.I think I prefer
2a
for its simplicity. We just have to make sure we don't get DoS'd by state loads, as attestation head states likely don't lie on epoch boundaries and are more expensive to fetch than target states in general. Tree states will help with this ;)Version
Lighthouse v4.5.0
The text was updated successfully, but these errors were encountered: