Skip to content

Update snarkVM version to 4.12.0 and bump devnode to 0.4.0 - #38

Merged
Roee-87 merged 1 commit into
mainfrom
update/snarkvm-version-4.12.0
Oct 15, 2026
Merged

Roee-87 merged 1 commit into
mainfrom
update/snarkvm-version-4.12.0

Conversation

@iamalwaysuncomfortable

Copy link
Copy Markdown
Member

Motivation

Bump snarkVM from 4.11.0 to 4.12.0 (released October 13, 2026) and release devnode 0.4.0.

The upstream v4.11.0...v4.12.0 diff is large (toolchain 1.96, RocksDB secondary instances, Varuna/KZG internals, parser hardening), but only a handful of changes reach this crate:

  • The history feature is gone. It was enabled in Cargo.toml and no longer exists, so it is dropped. snarkVM also removed the per-height mapping record that VM::evaluate_view_at_height read from, so views at a past height can no longer be evaluated by anyone (snarkOS answers the route with 404 in its history compatibility mode). POST /program/{id}/view/{function}/{height} is kept so clients that read /block/height/latest and pass that height keep working: it evaluates when height is the latest height and answers 404 (500 under the legacy prefixes) with a pointer to the latest-height route otherwise. The check is repeated after evaluation so a concurrent auto-mode block advance cannot return results for a different height.
  • StorageMode::Custom gained a second field in aleo-std-storage 1.0.4 (optional path for opening RocksDB as a read-only secondary). The devnode always owns its ledger and passes None. The declared dependency is bumped to 1.0.4 since snarkVM pins it exactly.
  • The ledger now applies spend and synthesis limits to beacon blocks itself (Subdag::min_spend_limit / Authority::beacon_limits, the upstream version of the logic this crate mirrored from snarkVM PR #3350). beacon_block_limits now delegates to Authority::beacon_limits, and the unit test that asserted snarkVM accepts an over-limit beacon block is updated: snarkVM now aborts the overflowing deployment on its own, matching what the devnode pre-filter already reported.
  • Testnet MAX_CERTIFICATES drops to 40 at V22 and the table grows from 5 to 6 entries. The beacon-limit test used the last entry while evaluating at V18, so it now looks up the value active at V18. The 40-validator genesis is within the new limit.
  • Consensus heights: V21/V22 are now scheduled on mainnet and testnet. TEST_CONSENSUS_VERSION_HEIGHTS is unchanged, so the devnode still boots to V22 at height 25.
  • MSRV is now 1.96; CI uses stable, so no workflow change.

Not relevant to the devnode: slipstream plugins removed, new dev_genesis_state_root feature, MAX_MAPPINGS raised to 128 at V22, rand.chacha cost change.

Test Plan

  • cargo fmt --all -- --check: clean.
  • cargo test --locked: 7 unit tests and 6 integration tests pass.
  • New unit test test_view_at_height_only_serves_the_latest_height covers the 404 for a non-latest height and evaluation at the latest height.
  • docs/rest-api.md documents the view routes and the height restriction.

Related PRs

@Roee-87
Roee-87 merged commit cb2267c into main Oct 15, 2026
1 check passed
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