feat: enable keypers to update shuttermint keys#651
Merged
jannikluhn merged 2 commits intorelease/v1.3.15from Nov 18, 2025
Merged
feat: enable keypers to update shuttermint keys#651jannikluhn merged 2 commits intorelease/v1.3.15from
jannikluhn merged 2 commits intorelease/v1.3.15from
Conversation
6753a80 to
1e9c3f9
Compare
ylembachar
reviewed
Nov 18, 2025
| "shutter-service-1000": {CheckInUpdate: &ForkHeightOverride{ | ||
| Eon: uint64Ptr(13), | ||
| }}, | ||
| "shutter-service-chiado-1000": {CheckInUpdate: &ForkHeightOverride{ |
Contributor
There was a problem hiding this comment.
if we will set the fork height from config or assets, then why do we need these overrides?
Contributor
Author
There was a problem hiding this comment.
Chains that are already running won't get the fork heights from the config. The genesis file is read only once during InitChain when the chain is first created. So for those we need the overrides.
blockchainluffy
approved these changes
Nov 18, 2025
ulope
reviewed
Nov 18, 2025
| cmd.PersistentFlags().String("role", "validator", "tendermint node role (validator, isolated-validator, sentry, seed)") | ||
| cmd.PersistentFlags().Uint64("initial-eon", 0, "initial eon") | ||
| cmd.PersistentFlags().Int64("forks.check-in-update.height", 0, "block height at which to activate the check-in update fork") | ||
| cmd.PersistentFlags().Bool("forks.check-in-update.disabled", false, "whether the check-in update fork is disabled") |
Contributor
There was a problem hiding this comment.
Double negatives can be confusing. Maybe enabled defaulting to true would be clearer.
Contributor
Author
There was a problem hiding this comment.
it's a flag without an explicit argument, it'll just be --disabled to disable, omit (default) for enable.
rolling-shutter/keyper/database/sql/migrations/V2_updatable_encryption_keys.sql
Outdated
Show resolved
Hide resolved
Keypers send check-in messages to the Shuttermint chain to announce their validator and encryption key. Instead of only accepting the first check in for each keyper, now Shuttermint accepts subsequent ones. The validator key will be used from the next block on. The encryption key will be emitted as a check in event. To enable this and future Shuttermint updates, a fork heights struct has been added to the Shuttermint app state which specifies which protocol versions should go live at which block heights. The keyper now stores all encryption keys and always uses the latest known one to encrypt directed messages. In addition, the encryption key cache in ShuttermintState has been removed as it was unused anyway.
aefba5d to
788b72a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Keypers send check-in messages to the Shuttermint chain to announce their validator and encryption key. Instead of only accepting the first check in for each keyper, now Shuttermint accepts subsequent ones. The validator key will be used from the next block on. The encryption key will be emitted as a check in event.
To enable this and future Shuttermint updates, a fork heights struct has been added to the Shuttermint app state which specifies which protocol versions should go live at which block heights.
The keyper now stores all encryption keys and always uses the latest known one to encrypt directed messages. In addition, the encryption key cache in ShuttermintState has been removed as it was unused anyway.