-
Notifications
You must be signed in to change notification settings - Fork 11
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
feat: Gate-keeping validator set from validators without required public keys #431
Conversation
99e71b5
to
f8f57da
Compare
4978593
to
7147bbc
Compare
e7db8c8
to
b400fdd
Compare
With the commit 2b64145 the original SDK handlers should work as before. The SDK's |
2b3cb78
to
2b64145
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should also remember to update the docs for creating a validator once we go to testnet and mainnet. :D
a3d0bba
to
d781ff3
Compare
Motivation
Once a proving scheme is enabled, we want to gate-keep the validator store to ensure that all validators in the store have the required public key. Also, since an account cannot register a public key before registering itself as a validator, the
CreateValidator
has to handle registration of the required public keys.Explanation of Changes
We wrap the staking module's message server to replace the original
CreateValidator
handler with the newCreateSEDAValidator
handler. A few things to note about the new handler:tx staking create-validator
remains the same.--without-seda-keys
can be added to skip generating and uploading the SEDA keys.The gentx has also been updated to generate and upload the SEDA keys.
Testing
We first set up a local network with a single genesis validator and, before the proving scheme activation period is over, create a few new validators with the
--without-seda-keys
flag to make the public key registration rate fall below the threshold. This cancels the activation process. Subsequently, the new validators send thetx pubkey add-seda-keys
to generate and upload the required public keys. This again starts the activation process and eventually activates the proving scheme with the guarantee that all validators have registered their public keys.Related PRs and Issues
Related: #422 (to close the issue, we still need to update the unjail logic - addressed in #434)