snarkVM icon indicating copy to clipboard operation
snarkVM copied to clipboard

[Track] Program Upgradability

Open d0cd opened this issue 9 months ago • 0 comments

Program Upgradability

This is the tracking issue for program upgradability.

Resources

  • Refer to the ARC for the specification.

PRs

The component PRs listed in their desired review/merge order are:

  • [x] https://github.com/ProvableHQ/snarkVM/pull/2628
  • [x] https://github.com/ProvableHQ/snarkVM/pull/2629
  • [x] https://github.com/ProvableHQ/snarkVM/pull/2668
  • [ ] https://github.com/ProvableHQ/snarkVM/pull/2653
  • [ ] https://github.com/ProvableHQ/snarkVM/pull/2655
  • [ ] https://github.com/ProvableHQ/snarkVM/pull/2717
  • [ ] https://github.com/ProvableHQ/snarkVM/pull/2722
  • [ ] https://github.com/ProvableHQ/snarkVM/pull/2758

TODOs

  • [ ] Merge outstanding PRs into a single one.
  • [ ] Merge in latest changes from staging.
  • [ ] Update ConsensusVersion
  • [x] An ARC: https://github.com/ProvableHQ/ARCs/discussions/94
  • [ ] A compatible snarkOS PR: https://github.com/ProvableHQ/snarkOS/pull/3638
  • [x] A compatible Leo PR: https://github.com/ProvableHQ/leo/pull/28593
  • [x] A documentation PR on developer.aleo.org: https://github.com/AleoNet/welcome/pull/48
  • [x] Resolve discussion on invalidating stale executions. Stale executions are invalidated.
  • [x] Ensure partially_verified_transactions takes in program editions as key. Currently implemented in a private fork of snarkVM. Will be moved once reviews are complete.

Tests

In addition to testing in the component PRs, the following tests were run.

Program Regressions

  • [x] Verified that a Process/VM could be constructed over existing programs on mainnet and testnet. [source1], [source2]
  • [x] Verified that that cost_in_microcredits_* and get_number_of_calls are equivalent for two different versions of snarkVM (v1.3.0 and eb1ca40). [source]
  • [x] Performance profile between snarkVM 1.3.0 and eb1ca40 using the first and second tests.

Network

  • [x] Deadlock test on https://github.com/ProvableHQ/snarkVM/pull/2629. Results: Grafana
  • [x] Sync test on https://github.com/ProvableHQ/snarkVM/pull/2629 from genesis to tip for canary, testnet, and mainnet. This should be run in tandem with baseline sync test using the staging branch of snarkVM. The machine utilization stats should be saved for both.
  • [ ] Sync test on https://github.com/ProvableHQ/snarkVM/pull/2655 verifying that new Deployment is backwards compatible

d0cd avatar Mar 18 '25 22:03 d0cd