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

upgrades: InitChain handshake with comet #3004

Closed
Tracked by #1804
erwanor opened this issue Sep 12, 2023 · 1 comment · Fixed by #3103
Closed
Tracked by #1804

upgrades: InitChain handshake with comet #3004

erwanor opened this issue Sep 12, 2023 · 1 comment · Fixed by #3103
Assignees
Milestone

Comments

@erwanor
Copy link
Member

erwanor commented Sep 12, 2023

After a genesis upgrade, CometBFT will only start an InitChain handshake if the application height is zero (i.e. pre-genesis). Currently, we do not systematically overwrite the height of the full node. While this technically work, this is not upgrade flow that was tested by the cometbft team. Moreover, this forces chain parameter upgrades to be done in ad-hoc way during migration, instead of simply overwriting values in a genesis file. Instead, we should make pd support running InitChain with an initialized storage layer, and an arbitrary height start.

@erwanor erwanor moved this to In Progress (Already claimed) in Testnets Sep 12, 2023
@erwanor erwanor self-assigned this Sep 12, 2023
erwanor added a commit that referenced this issue Sep 15, 2023
Closes #1809, and prepares #3004 since we will be able to match the supplied genesis state to decide whether we want to run chain initialization logic e.g. setting the genesis base rate, or fast-forward to committing the initial height block.

This PR turns `genesis::AppState` into an enum:

```rust
pub enum AppState {
    Content(/* a full genesis configuration */),
    Checkpoint(/* a free-form byte string e.g. an apphash, a commit hash */)
}
```

and percolate those changes across the codebase.
@erwanor
Copy link
Member Author

erwanor commented Sep 22, 2023

Partially completed in:

The only remaining item is tracking the active validator set and forwarding it to CometBFT across the upgrade boundary. Then checking that this correctly does not break a penumbra light client.

@erwanor erwanor added this to the Upgrades milestone Sep 26, 2023
@github-project-automation github-project-automation bot moved this from In Progress (Already claimed) to Testnet 61: Dione in Testnets Sep 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Testnet 61: Dione
Development

Successfully merging a pull request may close this issue.

1 participant