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

VM "bulldozer" upgrade #6644

Closed
6 tasks done
Tracked by #7491
dckc opened this issue Dec 7, 2022 · 3 comments
Closed
6 tasks done
Tracked by #7491

VM "bulldozer" upgrade #6644

dckc opened this issue Dec 7, 2022 · 3 comments
Assignees
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request needs-design SwingSet package: SwingSet vaults_triage DO NOT USE
Milestone

Comments

@dckc
Copy link
Member

dckc commented Dec 7, 2022

What is the Problem Being Solved?

In the SwingSet VM started when the chain was upgraded to the pismoA release, many of the critical vats are not upgradeable (#5014 esp Zoe #4383 ). Its depth-first scheduler (#6210) is inadequate to support vaults / liquidation.

Description of the Design

Throw away all kernel and JS state; recover from a copy of JS state in the cosmos layer.

Tasks

  1. 6 of 6
    Inter-protocol enhancement user-story vaults_triage
    dckc
  2. Epic SwingSet enhancement vaults_triage
    warner
  3. enhancement oracle vaults_triage
    turadg
  4. MUST-HAVE enhancement vaults_triage wallet
    turadg
  5. bug cosmic-swingset vaults_triage wallet
    gibson042
  6. agoric-cosmos
    JimLarson

Security Considerations

?

Test Plan

TBD

cc @warner @ivanlei

@warner
Copy link
Member

warner commented Jan 25, 2023

for estimation purposes: this ticket describes a task that we must do on the chain, so it's more about an event than any particular code PR. I think we should use this ticket to track our preparedness for the upgrade event, and our plan for executing it. We can close it once the bulldozer upgrade has happened.

As such, we need at least the following in place before we can perform the upgrade. Note that there are other features that we want in the release (Vaults in particular); this list is specifically only what we need to do in our final opportunity to abandon old JS state:

  • all vats that will be deployed as part of the bulldozer must be upgradable, to be safe against the future
  • the new vats must have a way to reestablish any precious state from the pismo chain (PSM total balances? smart-wallet accounts?)
  • state-sync must work (agd does not support joining with state sync #3769), in particular the database schema and swing-store must support writing the correct validation hashes into the IAVL tree. The new-validator repopulating portion is a desireable (and perhaps mandatory) feature of the release, but we could defer it, as long as the state-sync-snapshot generation side works correctly as of the bulldozer event, so we don't lose the ability to validate alleged transcript/heap-snapshot/kvstore artifacts.
  • kernel must be upgradable without changing worker behavior (define worker-v1 package #6596)
  • we have improvements in mind that cross the kernel/vat boundary, which are much harder to do after the bulldozer. We can't do all of them, but the more we can accomplish now, the less pain we'll endure in the future

I'll add those tickets as dependencies of this one.

@turadg
Copy link
Member

turadg commented Apr 24, 2023

all vats that will be deployed as part of the bulldozer must be upgradable, to be safe against the future

I've expanded the scope of #6553 to be that. This ticket is now "Pismo can be bulldozed into a working state". That the resulting state is itself upgradable in-place is the other ticket.

@ivanlei
Copy link
Contributor

ivanlei commented May 10, 2023

All tracked issues are completed. Closing.

@ivanlei ivanlei closed this as completed May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request needs-design SwingSet package: SwingSet vaults_triage DO NOT USE
Projects
None yet
Development

No branches or pull requests

5 participants