What's Changed
- Replay-verify: increase Mainnet PFN snapshot size by @sionescu in #20410
- [block-stm] Add SingleTransactionExecutor abstraction by @georgemitenkov in #20276
- [lean model] Add generics and shared XIR import by @wrwg in #20393
- [mono-move] Guard copy coalescing and propagation on bitwise-copy types by @vineethk in #20390
- [prover] Verify inline higher-order functions by @wrwg in #20360
- [docs] Document prophecy reference model by @wrwg in #20387
- [consensus] Match commit votes against the full LedgerInfo by @danielxiangzl in #20335
- [vm] Add mainnet framework function usage coverage by @wrwg in #20406
- [execution] Drain state sync before teardown by @wqfish in #20409
- [mono-move] Do not zero-initialize heap by @georgemitenkov in #20413
- [mono-move] Enable stdlib on mono move by @georgemitenkov in #20420
- [mono-move] User context natives by @georgemitenkov in #20403
- retry crane copy on transient registry failures by @rustielin in #20425
- [mono-move] Derived aggregator natives by @georgemitenkov in #20422
- [mono-move] Refactor group tracking by @georgemitenkov in #20414
- [mono-move] Initial implementation of pre-execution checks by @vgao1996 in #20411
- [mono-move] Ability computation and assignability for interned types, with correct closure ability derivation by @vineethk in #20408
- [mono-move] Support block-metadata transactions by @vgao1996 in #20417
- [Lean on Move] Add Lean-authored Move modules by @wrwg in #20394
- [mono-move] Add Miri CI workflow and fix strict-provenance violations in tests by @vineethk in #20415
- [vm] Remove permissioned signer VM logic by @rahxephon89 in #20203
- [mono-move] Fix constant_serialized_size descriptors by @georgemitenkov in #20423
- [move prover][trvial] fix cmp by @rahxephon89 in #20429
- [mono-move] Tie
SessionEffectsto the guard lifetime and removeExecutionGuardfrom materialization API by @vineethk in #20435 - [ci] Publish framework usage reports privately by @wrwg in #20430
- [release] Add deploy-testnet to aptos-release-tool by @vgao1996 in #20436
- [vm] Meter BCS value nodes on deserialize by @georgemitenkov in #20433
- [cli] Default REST URLs to api.*.aptoslabs.com by @gregnazario in #20442
- [cli] Release Aptos CLI 9.5.1 by @gregnazario in #20444
- [benchmark] Add ways to disable/enable features after initialization by @georgemitenkov in #20443
- [mono-move] Support block-epilogue transactions by @vgao1996 in #20438
- [jemalloc] Disable HPA for tool binaries by @wqfish in #20453
- [ci] Calibrate single-node execution performance values by @aptos-bot in #20449
- [vm] Harden reference aliasing by @georgemitenkov in #20439
- [mono-move] Ristretto255 point native extension by @georgemitenkov in #20399
- [move-vm] Exclude
interned_module_idfromStructIdentifierequality, hashing, and ordering by @vineethk in #20447 - Fix deserialization typo by @rex1fernando in #20463
- [state-sync] Serve hot state snapshots by @wqfish in #20365
- [build] Bump clang/LLVM to 22 to match rustc 1.98 by @wqfish in #20472
- [release] Fix deploy-testnet sequence number handling by @vgao1996 in #20477
- [prover] Specification inference: diagnostics and soundness by @wrwg in #20470
- [mono-move] Make natives static or live in global context by @georgemitenkov in #20452
- [flow] Inference tactics, prover-aware skills, candidate check by @wrwg in #20485
- [flow] Specification-inference evaluation by @wrwg in #20471
- [storage] Persist restored hot state snapshots by @wqfish in #20486
- [flow] Refutation feedback, held-out scoring, and round preparation by @wrwg in #20492
- [mono-move] Simplify MonoMove integration by @georgemitenkov in #20458
- Replay-verify: increase GCP token duration to 2 hours by @sionescu in #20503
- [mono-move] Centralize V1 error descriptor mapping and check it against V1 in differential tests by @vineethk in #20434
- [mono-move] Cut down CLAUDE.md contents by @georgemitenkov in #20499
- [mono-move] Add MonoMove context to block executor by @georgemitenkov in #20459
- [prover] Fixes in prover and inference for eval by @wrwg in #20508
- [inf-eval] Add prepared corpora v1.1, v1.2, v3.1, and v3.2 by @wrwg in #20509
- [storage] Activate restored hot state snapshots by @wqfish in #20479
- Replay-verify: increase Testnet PFN snapshot size by @sionescu in #20512
- [compiler-v2] Fix multiple compiler ICE by @vineethk in #20489
- [compiler-v2] Compare function values at identical types; infer open operand types by @vineethk in #20505
- Fix RunsOn image generator by @sionescu in #20517
- [ci] Move the framework upgrade test off the PR blocking path by @rahxephon89 in #20497
- [vm] Gate function-type ability bounds check on
CHECK_FUNCTION_TYPE_ABILITIESfeature flag by @vineethk in #20506 - [prover] Fix WP abort paths and qualified filters by @wrwg in #20513
- [inf-eval] Add model comparison telemetry and WP fixes by @wrwg in #20514
- [verification] Introduce Leaner IR and verification infrastructure by @wrwg in #20524
- [mono-move] CallBuilder API + direct Rust => runtime value conversion by @vgao1996 in #20446
- [mono-move] Attach location to errors by @vineethk in #20475
- [consensus] Persist secret shares for recovery by @ibalajiarun in #20469
- [block-stm] Remove ordering from in-memory keys by @georgemitenkov in #20473
- [mono-move] support script payloads by @vgao1996 in #20529
- [mono-move] Support function types in
type_tag_of,type_name, andtype_ofnatives by @vineethk in #20537 - [state-sync] Request hot state snapshots from peers by @wqfish in #20480
- [consensus] Commit epoch ending block before teardown by @danielxiangzl in #20350
- [mono-move] Refactor output to make it storable in block executor by @georgemitenkov in #20474
- [mono-move] Fix
ethnumUB in decimal formatting with a safefmt_decimaland update Miri CI paths by @vineethk in #20533 - [mono-move] Bulletproof natives by @georgemitenkov in #20500
- [mono-move] initial entry function validation by @vgao1996 in #20488
- [mono-move] Remaining event natives by @georgemitenkov in #20528
- [mono-move] Make
constant_serialized_sizereturnNoneforsigner, matching the V1 VM by @vineethk in #20532 - [mono-move] MonoMove executor infrastructure by @georgemitenkov in #20491
- [mono-move] Add differential test cases for arithmetic, closures, constants, control flow, generics, natives, optimizer, refs, and GC heap pressure by @vineethk in #20567
- [mono-move] MonoMove benchmarking by @georgemitenkov in #20494
- [mono-move] Test parity: run the suites with MonoMove by @georgemitenkov in #20501
- [prover] fix bv mul overflow by @GotenJBZ in #20571
- [compiler-v2] Add match guard mutation checker and simplify mixed-tuple discriminator binding by @vineethk in #20555
- [mono-move] Handle encrypted payloads by @vgao1996 in #20564
- [move-flow] Bump version to 2.1.0 by @zwxxb in #20580
- [prover] Add FMCAD'26 talk for the higher-order paper by @wrwg in #20536
- [mono-move] Support the randomness API by @vgao1996 in #20576
- [vm] Charge closures for type tags by @georgemitenkov in #20581
- [prover] Improve inference and evaluation infrastructure by @wrwg in #20584
- [ci] Schedule framework usage reports by @wrwg in #20437
- [compiler-v2] Restrict inlining optimization to same-module callees only by @vineethk in #20558
- [ci] Schedule biweekly three-week framework usage reports by @wrwg in #20587
- [cli] Add propose-bundle and execute-bundle by @vgao1996 in #20507
- [compiler-v2] Remove
extended-framework-optimizationsexperiment and other simplifications by @vineethk in #20569 - [ci] Add a localnet framework upgrade compatibility test by @rahxephon89 in #20527
- [prover] Standardize evaluation result archives by @wrwg in #20588
- [mono-move] Reuse stack space per worker by @georgemitenkov in #20556
- [move-vm] Extract shared transactional test matrix into
move-transactional-test-matrixcrate by @vineethk in #20504 - [cli] Reject non-UTF-8 governance bundle file names by @vgao1996 in #20597
- [mono-move] Add application-shaped e2e benchmark suite by @georgemitenkov in #20572
- [framework] Validate SIWE fields in Ethereum DAA to restore signature injectivity by @0xmaayan in #20589
- [mono-move] Add transactional test adapter and publishing session for MonoVM by @vineethk in #20526
- [mono-move] Fix Miri UB in int_ops result reads by @vineethk in #20609
- [mono-move] Pool the session heap per worker by @georgemitenkov in #20573
- [verification] Denotation-based Leaner verification by @wrwg in #20585
- [state-sync] Extract snapshot stream cursor by @wqfish in #20560
- [prover] Fix three unsoundness bugs in the Boogie encoding by @rahxephon89 in #20603
- [prover] Make Boogie name rendering injective by @rahxephon89 in #20610
- [prover] declare memory for exists-only resources; preserve old(..) in inferred pre-state slots by @rahxephon89 in #20450
- [test] Add opt-in subsystem test selection and nightly backstop by @wrwg in #20600
- [mono-move] Overhaul bench gate: multi-process A/B, flat sampling, wider threshold, and stacked-PR base support by @vineethk in #20614
- [prover] Fix false proofs in reflection, aliasing, axioms by @rahxephon89 in #20617
- [mono-move] Add transactional test run support with resource writes, override baselines, and divergence manifest by @vineethk in #20538
- [mono-move] miri: replace path-filtered workflow trigger with always-run required check job by @vineethk in #20613
- [mono-move] Support script execution in the transactional adapter by @vineethk in #20553
- [mono-move] Run Move VM transactional corpus on MonoVM by @vineethk in #20557
- [mono-move] Enable later-tier configs and add baseline for
public_struct_assign_swapby @vineethk in #20559 - [mono-move] Enable
no-optimizeandopt-extraconfigs and add per-config divergenceexceptsupport by @vineethk in #20568 - [state-sync] Add hot snapshot request plumbing by @wqfish in #20561
- [mono-move] Add
CompletedCallto expose return values and support multiple return values by @vineethk in #20599 - [mono-move] Add caller stack traces to
VMInternalErrorand expose them on aborts and errors by @vineethk in #20602 - [ci] Post a seven-night greenness bar to Move alerts by @wrwg in #20631
- [framework] Fix lazy module initialization audit findings by @wrwg in #20516
- [ci] Nightly: PR-CI suites only, one retry, per-job history by @wrwg in #20634
- [crypto] Bump aptos-labs/algebra pin by @rex1fernando in #20534
- [vm] Add feature flag to disable eager module initialization by @wrwg in #20635
- [test] Make eager initialization tests VM agnostic by @wrwg in #20643
- [testsuite] Bump replay-verify snapshot timeout to 4h by @jtang17 in #20648
- [mono-move] Crypto algebra natives by @georgemitenkov in #20530
- [mono-move] Intern the executor's framework symbols once per context by @vgao1996 in #20612
- [mono-move] Support higher transaction limits and governance scripts by @vgao1996 in #20577
- [mono-move] Validate keyless authenticators by @vgao1996 in #20579
- Increase Mainnet PFN disk size to 35Ti by @sionescu in #20657
- [verification] Verify Move sources and the standard library with Leaner by @wrwg in #20621
- [verification] Add a nightly Leaner verification benchmark by @wrwg in #20645
- [ci] Nightly: history rows for jobs that passed on retry by @wrwg in #20644
- [prover] complete spec frames in single_order_types and object, correct stale comments by @rahxephon89 in #20626
- [prover] Fix quantifier binder scoping and capture by @rahxephon89 in #20629
- [prover] Don't assume function values are distinct by @rahxephon89 in #20630
- [prover] Fix function-parameter frames and enum variant fields in lambda specs by @rahxephon89 in #20641
- [move-book] Fix subtraction and modular division abort condition descriptions by @vineethk in #20667
- [cli] Deprecate Intel macOS CLI builds by @gregnazario in #20669
- [compiler-v2] XIR reader: carry struct attributes; reject test- and verify-only items by @rahxephon89 in #20615
- [prover] Public spec-inference corpus, old() of parameters in loop invariants, inference paper v2 by @wrwg in #20674
- [compiler-v2] XIR reader: derive the call graph from translated code by @rahxephon89 in #20618
- [compiler-v2] XIR reader: check calls into other modules by @rahxephon89 in #20619
- [compiler-v2] XIR: carry struct visibility (version 7) by @rahxephon89 in #20622
- [prover] Assert callee requires at every call site by @rahxephon89 in #20664
- [prover] compare insertion-ordered intrinsic maps by position by @rahxephon89 in #20666
- [compiler-v2] XIR reader: type-check function bodies and declared types by @rahxephon89 in #20616
- [ci] Skip E2E work for unselected suites by @wrwg in #20676
- [verification] Leaner: higher-order functions, state labels, static memory, invariants by @wrwg in #20681
- [prover] Sound behavioral predicates and exact WP models for inference by @wrwg in #20679
- [state-sync] Fast sync the hot state snapshot by @wqfish in #20640
- [mono-move] Check transaction argument values by @vgao1996 in #20544
- [trading-native] In-memory position index by @grao1991 in #20565
- [vm] Track type tag cache size by @georgemitenkov in #20683
- [mono-move] Run the micro-op verifier in the loader by @vgao1996 in #20656
- [prover] Inference Evaluation and Paper Update by @wrwg in #20682
- [trading-native] Build position JMT layers over the persisted floor by @grao1991 in #20686
- [state-sync] Recover from a failed snapshot finish by @wqfish in #20691
- [prover] Report Boogie errors the prover dropped by @rahxephon89 in #20684
- [trading-native][vm] Wire native-position writes through VMChangeSet + finalize by @grao1991 in #20570
- [state-sync] Add hot state fast sync smoke tests by @wqfish in #20711
- [repo] Rename env files blocked by sandbox by @wqfish in #20715
- [ci] Prevent enabling auto-merge from rerunning full CI by @wrwg in #20702
- [dkg] Forward-port chunky DKG fixes from v1.49 to main by @danielxiangzl in #20719
- Update bump-release-version.yaml by @vsharongg in #20722
- [vm] Gate module publishing on an on-chain minimum bytecode version by @vgao1996 in #20721
- [ci] Restore contents: read on forge and replay-verify-archive jobs by @jtang17 in #20725
- [ci] Reduce nightly Slack noise and simplify Leaner Pages by @wrwg in #20728
- [vm] Emit block epilogue hotness from the VM by @wqfish in #20716
- [storage][state-sync] Remove the fast sync genesis DB by @grao1991 in #20651
- [consensus] Remove buffer manager intake backpressure by @zekun000 in #20738
- [prover] Verex: Prover parity, authored proofs; rename Leaner to Verex by @wrwg in #20710
- [prover] Inference paper: tighten abstract, review fixes, AI-use statement by @wrwg in #20747
- [prover] Verex: proof files with a working InfoView; Table owners as owned values by @wrwg in #20746
- [Fullnode Sync] Download testnet-v2 genesis by @JoshLind in #20752
- [replay-verify] Raise repair-disk futures timeout from 1h to 4h by @claude[bot] in #20748
- [trading-native] Executor benchmark for native position writes by @grao1991 in #20713
- Improve consensus message deserialization by @ibalajiarun in #20426
- [execution] Unify chunk types and carry txn infos by @wqfish in #20756
- [mempool] Reject invalid encrypted submissions by @rex1fernando in #20762
- Fix resource account recreation by @lightmark in #20356
- [forge] bump deployer version by @aptos-bot in #20226
- [txn-emitter] Track orderless txns by scanning summaries forward from submission by @manudhundi in #20698
- [inference paper] updates to the paper by @vineethk in #20768
- [execution] Execute chunks on block boundaries by @wqfish in #20757
- [trading-native] Native-position backup and restore by @grao1991 in #20764
- [prover] Verex maps and bounded proof automation by @wrwg in #20755
- [prover] Deterministic Boogie input; Verex tests in CI by @wrwg in #20778
- [trading-native][storage] Generalize native-position storage into a native store by @grao1991 in #20777
- [vm] Promote keys read by the block epilogue by @wqfish in #20737
- [ci] Fix test selection for release branches by @jtang17 in #20769
- [trading-native][storage] Readonly position index, overlay metrics by @grao1991 in #20780
- [trading-native][types] Add native order state keys and value types by @grao1991 in #20784
- [storage] Replay archive on block boundaries by @wqfish in #20774
- [lean] Add Verex Lean Stack and Verex overview decks for Move Summit 2026 by @wrwg in #20745
- [ci] Gate execution-performance on inner block executor TPS by @georgemitenkov in #20706
- [storage] Make KV replay stateless by @wqfish in #20789
- [storage] KV replay on block boundaries by @wqfish in #20788
- Reduce testnet PFN snapshot size by @sionescu in #20809
- [prover] Key-ordered map facts, closure frames through generic callees, and behavioral predicates on equal values by @rahxephon89 in #20740
- [storage] Build HotState from the loaded snapshot by @wqfish in #20790
- [framework] Regenerate cached packages (head.mrb) by @claude[bot] in #20811
- [framework] Loop invariants for BigOrderedMap::for_each_mut by @rahxephon89 in #20814
- CI: hosted Rust image and four-shard tests with AWS fallback by @jtang17 in #20773
- [trading-native][storage] Add the native order store by @grao1991 in #20802
- [storage] Back up transactions on block boundaries by @wqfish in #20812
- [storage] Fast sync to targets without hot root by @wqfish in #20815
- [storage] Report replay mismatches in range only by @wqfish in #20820
- [mono-move] String natives by @georgemitenkov in #20601
- [mono-move] Storage slot natives by @georgemitenkov in #20624
- [mono-move] Fix mixed-width
Retparallel-copy cycles by placing scratch after the callee region by @vineethk in #20831 - [mono-move] Make destack dead-instruction elimination liveness-aware across blocks by @vineethk in #20832
- [trading-native][move] Add native_order_book module and order natives by @grao1991 in #20821
- [trading-native][vm] Drain order writes into Extension::NativeOrder by @grao1991 in #20822
- [mono-move] Fix stack overflow checks to avoid out-of-bounds pointers via
MemoryRegion::contains_rangeby @vineethk in #20838 - [mono-move] Remaining context natives by @georgemitenkov in #20625
- [mono-move] Preserve pointer provenance and uninitialized padding in raw value copies by @vineethk in #20837
- [mono-move] Pass uninitialized slice to
set_return_rawinreturn_optional_payloadby @vineethk in #20843 - [mono-move] Allow closure call results in Transfer slots and require closure operands in the data region by @vineethk in #20836
- [mono-move] Comparison library for V1 - MonoMove by @georgemitenkov in #20660
- [storage] End restore at a block end by @wqfish in #20839
- [mono-move] Filter out not modified resource copies by @georgemitenkov in #20662
- [execution] Verify replay on block boundaries by @wqfish in #20844
- [trading-native][types] Add native collateral state key and value type by @grao1991 in #20846
- [trading-native][storage] Add the native collateral store by @grao1991 in #20851
- [trading-native][vm] Materialize native collateral writes into Extension::NativeCollateral by @grao1991 in #20850
- [trading-native][storage] Attach the order store to AptosDB by @grao1991 in #20847
- [consensus] Fix crash on invalid own rand share by @wqfish in #20852
- [trading-native][storage] Implement the store spec for collateral by @grao1991 in #20853
- [trading-native][storage] Extract the generic native overlay by @grao1991 in #20854
- [framework] Add hot state on-chain config by @wqfish in #20849
- [prover] Verex: readable proof language, native function values, faster verification by @wrwg in #20858
- [trading-native][move] Add native_collateral module and collateral natives by @grao1991 in #20855
- [trading-native] In-memory order index by @grao1991 in #20857
- [trading-native][storage] Add the native collateral index by @grao1991 in #20856
- [mono-move] Function reflection by @georgemitenkov in #20628
- [mono-move] Enforce reentrancy checks in MonoMove by @vineethk in #20665
- [vm] Port 1.49.8 fixes to main by @wrwg in #20861
- [trading-native][storage] Attach the collateral store to AptosDB by @grao1991 in #20869
- [storage] Cap hot state value bytes per shard by @wqfish in #20864
- [ci] Migrate remaining AWS Rust CI jobs to hosted (Azure) runners with fallback by @jtang17 in #20834
- [ci] Restore contents:read on Forge/faucet/replay-verify job perms by @jkao97 in #20554
- [prover] Table key encoding: linear injectivity for key types with native equality by @rahxephon89 in #20827
- [storage] Add smoke test for the on-chain hot state config by @wqfish in #20865
- [ci] Use legacy E2E selection for release-branch PRs by @wrwg in #20875
- [prover] Spec inference: a call that touches no global memory names no new memory state by @rahxephon89 in #20823
- [prover] Per-capture folds for multi-capture loops by @rahxephon89 in #20813
- [trading-native] Derived order books by @grao1991 in #20860
- [execution] Cap block epilogue promotions by bytes by @wqfish in #20886
- [ci] Calibrate single-node execution performance values by @aptos-bot in #20880
- [trading-native] Wire the collateral index into execution and storage by @grao1991 in #20881
- [execution] Re-baseline vector inner TPS values by @claude[bot] in #20890
- [move] Clarify that
entryalone doesn't make functions persistent and add storable entry tests by @vineethk in #20877 - [compiler-v2] Reject enum field selection when variants declare the field with different types by @vineethk in #20876
- [compiler-v2] Fix reference safety handling of borrow edge overflow and report only conflicting borrows in diagnostics by @vineethk in #20873
- [aptos-release-v1.50] Bump version to 1.50.0 by @aptos-bot in #20892
- [cp][aptos-release-v1.50] [ci] Install Poetry via pip in python-setup by @aptos-bot in #20943
- [cp][aptos-release-v1.50] [vm] Charge high-limit excess price in gas meter by @aptos-bot in #20929
- [aptos-release-v1.50] Bump version to 1.50.1 by @aptos-bot in #20945
Full Changelog: aptos-node-v1.49.8...aptos-node-v1.50.1-rc