Skip to content
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

Version all on-chain state #3934

Open
benluelo opened this issue Mar 4, 2025 · 0 comments
Open

Version all on-chain state #3934

benluelo opened this issue Mar 4, 2025 · 0 comments
Labels
A-cosmwasm Area: our CosmWasm stack A-ibc-union Area: ibc-union A-voyager Area: voyager (relayer) C-enhancement Category: An issue proposing an enhancement or a PR with one.

Comments

@benluelo
Copy link
Contributor

benluelo commented Mar 4, 2025

All light clients and apps should use some form of versioning for their state, to ensure backwards compatability. ucs03-zkgm already has this with it's instructions, but the lightclients still need this. Since we use bincode for our state codec, we should use something like this:

#[non_exhaustive]
enum ClientState {
    V1(ClientStateV1),
    V2(ClientStateV2),
}

to allow for adding new state versions while still being able to decode old versions. This will remove the majority of the need for complex state migrations of light client state.

@benluelo benluelo added A-voyager Area: voyager (relayer) A-cosmwasm Area: our CosmWasm stack A-ibc-union Area: ibc-union C-enhancement Category: An issue proposing an enhancement or a PR with one. labels Mar 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-cosmwasm Area: our CosmWasm stack A-ibc-union Area: ibc-union A-voyager Area: voyager (relayer) C-enhancement Category: An issue proposing an enhancement or a PR with one.
Projects
None yet
Development

No branches or pull requests

1 participant