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

UIP 6: app version safeguard: first draft #10

Merged
merged 3 commits into from
Nov 15, 2024
Merged

UIP 6: app version safeguard: first draft #10

merged 3 commits into from
Nov 15, 2024

Conversation

cronokirby
Copy link
Contributor

Copy link

github-actions bot commented Nov 12, 2024

Visit the preview URL for this PR (updated for commit 74c7d80):

https://penumbra-uips--pr10-uip-6-76l77qwb.web.app

(expires Tue, 19 Nov 2024 23:18:33 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 54ff667eaf61c617385479f19496d509f9179622

Copy link
Contributor

@conorsch conorsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accurate and complete representation of the proposal in the forum post. LGTM. 👍

conorsch added a commit to penumbra-zone/penumbra that referenced this pull request Nov 15, 2024
## Describe your changes

This implements UIP 6, creating an "app version safeguard", to try and
prevent the wrong version of PD from being started against existing
state, or running the wrong version of PD.

This code should be immediately implementable as a non-breaking
*point-release*, which should *immediately* provide a safeguard against
forgetting to upgrade to the next major version of the software before
the next migration.
This should happen because nodes running the point release will start
writing, to non-consensus state, the app version they have. The current
migration in 0.80 will refuse to run unless this app version key is
empty, or exactly the *previous version*, preventing forgetting to
upgrade to the next version pre migration. Furthermore, the next
migration should do the same, but with the next app version, so that it
will not allow skipping the previous migration.

For testing, I think we should:
- test that we can take an existing node, and then start it with the new
code, stop it, and then start it again
- test that trying to run `pd migrate` _fails_ because of the newly
added safeguard.

## Issue ticket number and link

Closes #4793.

Implements penumbra-zone/UIPs#10.

## Checklist before requesting a review

- [x] I have added guiding text to explain how a reviewer should test
these changes.

- [x] If this code contains consensus-breaking changes, I have added the
"consensus-breaking" label. Otherwise, I declare my belief that there
are not consensus-breaking changes, for the following reason:

> This code is sensitive to potentially breaking consensus, but the
testing plan above should confirm that it is safe for a point release.
If it is not safe for a point release, the code should be amended so
that it is.

---------

Co-authored-by: @erwanor <erwanor@users.noreply.github.com>
Co-authored-by: Conor Schaefer <conor@penumbralabs.xyz>
@conorsch conorsch merged commit a1f2239 into main Nov 15, 2024
3 checks passed
@cronokirby cronokirby deleted the uip-6 branch November 18, 2024 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants