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

Testnet 70, Deimos 6, The Upgrading #4087

Closed
27 of 28 tasks
conorsch opened this issue Mar 22, 2024 · 0 comments
Closed
27 of 28 tasks

Testnet 70, Deimos 6, The Upgrading #4087

conorsch opened this issue Mar 22, 2024 · 0 comments
Assignees

Comments

@conorsch
Copy link
Contributor

conorsch commented Mar 22, 2024

Testnet Release

We are planning two consecutive releases, v0.70.0 and v0.71.0, in order to exercise chain upgrade logic (#1804). Accordingly, we will need to vote on a upgrade proposal to halt the chain, and provide documentation to node operators on the specific upgrade steps.

Testnet name: Deimos 6
Release date: 2024-03-26
Testnet release manager: @conorsch

Testnet name: Deimos 6 [sic]
Release date: 2024-03-28
Testnet release manager: @conorsch

Testnet Release Manager Checklist

Friday before release:

  • Construct the genesis data for the release:

    • Create new testnet directory with initial genesis allocations for this testnet by running cd testnets && ./new-testnet.sh
      • This genesis data will be used for testnet-preview with a randomized version of the future testnet's chain ID.
  • Check in with team again in a release meeting and update the GitHub milestone to ensure it represents what will make it into the testnet.

  • Draft an announcement for peer review to ensure major changes included are comprehensive.

Following Tuesday (release day):

  • Verify that testnet-preview.penumbra.zone is operational; it is redeployed on every push to main, and is an exact preview of what is about to be deployed.
  • Bump the version number and push its tag, via cargo-release.
    • Run cargo release minor for a new testnet, or cargo release patch for a bugfix. For the latter, make sure you're on a dedicated release branch.
    • Push the commit and newly generated tag, e.g. v0.51.0, to the remote.
  • Wait for the "Release" workflow to complete: it'll take ~60m, most of which is the Windows builds.
  • Edit the newly created (and published) release object, then click "Generate release notes." Cut and paste the generated text from the bottom to the top of the post, then save it.
  • You must manually review the Waiting deployment in the GitHub Actions UI before the deployment will begin. Monitor the GitHub action to ensure it completes after it is approved.
  • Delegate to the Penumbra Labs CI validators; use amounts of ~200k penumbra per validator.
  • Open a position to provide some initial liquidity: pcli tx lp replicate xyk penumbra:test_usd 20000penumbra --current-price 20
  • Update Galileo deployment, following docs.
  • Make the announcement to Discord! 🎉🎉🎉
  • Submit proposal for upgrade at height xxxxx (approx 48h after first release)
  • Encourage others to delegate to validators, so voting has weight

Following Wednesday (vote day):

  • Check proposal for passing status. If failed, resubmit and revote.
  • Announce in Discord the chain height that network will halt. Share docs on upgrade steps.

Following Thursday (second release day):

  • Disable the testnet deploy workflow, because we don't want to reset the chain.
  • Do not prepare new testnet dir with unique genesis, since we are preserving the existing network state.
  • Make sure to merge a change incrementing TOTAL_HALT_COUNT, so that nodes can resume post-upgrade. app: increment halt counter #4127
  • Tag v0.71.0 as usual, directly on main. Push, and wait for release workflows (so new artifacts are published).
  • Manually upgrade cluster, following steps in https://github.com/penumbra-zone/penumbra/wiki/Performing-upgrades
  • Make sure to emit an --export-archive from at least one node. Publish that archive to https://snapshots.penumbra.zone/.
  • Make sure to emit a --migrate-archive from at least one node. Publish that archive to https://snapshots.penumbra.zone/.
  • Make sure to record the genesis-start flag from the upgrade and use it consistently. It must land in the docs, as well.
  • When all PL-run testnet nodes are running again, announce that.
@conorsch conorsch self-assigned this Mar 22, 2024
conorsch added a commit that referenced this issue Mar 22, 2024
conorsch added a commit that referenced this issue Mar 22, 2024
conorsch added a commit that referenced this issue Mar 25, 2024
Adds documentation for the specific steps to be performed by a node
operator in order to participate in a chain upgrade. These docs are
largely based on the existing wiki notes [0], adapted for a generalized
Penumbra setup.

Similarly, sketched out some corresponding changes to the `pd testnet
join` docs, but left them commented out for now: those docs are only
relevant for joining a chain that has already been upgraded. If things
go well with #4087, we'll uncomment those docs and start using them.

Finishes and therefore closes #3841.

[0] https://github.com/penumbra-zone/penumbra/wiki/Performing-upgrades
conorsch added a commit that referenced this issue Mar 26, 2024
Adds documentation for the specific steps to be performed by a node
operator in order to participate in a chain upgrade. These docs are
largely based on the existing wiki notes [0], adapted for a generalized
Penumbra setup.

Similarly, sketched out some corresponding changes to the `pd testnet
join` docs, but left them commented out for now: those docs are only
relevant for joining a chain that has already been upgraded. If things
go well with #4087, we'll uncomment those docs and start using them.

Finishes and therefore closes #3841.

[0] https://github.com/penumbra-zone/penumbra/wiki/Performing-upgrades
conorsch added a commit that referenced this issue Mar 27, 2024
Adds documentation for the specific steps to be performed by a node
operator in order to participate in a chain upgrade. These docs are
largely based on the existing wiki notes [0], adapted for a generalized
Penumbra setup.

Similarly, sketched out some corresponding changes to the `pd testnet
join` docs, but left them commented out for now: those docs are only
relevant for joining a chain that has already been upgraded. If things
go well with #4087, we'll uncomment those docs and start using them.

Finishes and therefore closes #3841.

[0] https://github.com/penumbra-zone/penumbra/wiki/Performing-upgrades
conorsch added a commit that referenced this issue Mar 28, 2024
conorsch added a commit that referenced this issue Mar 28, 2024
Refs #4087. Also lists an archive URL for `pd testnet join`.
conorsch added a commit that referenced this issue Mar 28, 2024
Refs #4087. Also lists an archive URL for `pd testnet join`.
conorsch added a commit that referenced this issue Mar 28, 2024
conorsch added a commit that referenced this issue Mar 28, 2024
@erwanor erwanor closed this as completed Apr 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

2 participants