staking: enshrine consensus key indexing requirement in unit-test #4148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe your changes
This PR adds a unit-test to the staking component to capture that we must "never"1 delete a
comet verification key -> identity key
entry from the consensus key index. This is because we always want to be able to do byzantine evidence attribution even if a validator has rotated the consensus key that they used to equivocate.Keeping old entries around enables the evidence processor to resolve a consensus key to a persistent validator identity, and slash it / record a penalty.
More context in: #4144
Checklist before requesting a review
If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason:
Footnotes
fwiw - this is probably fine to prune after one or two unbonding windows have elapsed ↩