snarkVM
snarkVM copied to clipboard
[Track] Program Upgradability
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_transactionstakes 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/VMcould be constructed over existing programs on mainnet and testnet. [source1], [source2] - [x] Verified that that
cost_in_microcredits_*andget_number_of_callsare 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, andmainnet. 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
Deploymentis backwards compatible