What's Changed
- [Gas Schedule] Bump gas version to v49 by @vsharongg in #20050
- [move-prover][flow] Bug fixes in quantifier weights, state-label witnesses and filtered-env by @rahxephon89 in #20007
- [spec] aptos-framework spec repair by @rahxephon89 in #19946
- [mono-move] Add test intrinsics by @georgemitenkov in #20045
- change executor bench to feedback output by @lightmark in #20040
- [forge] etna: switch to realistic_500tps, 20m duration by @ibalajiarun in #20055
- [mono-move] Native extensions + txn-context/object/state-storage/event natives by @vgao1996 in #20024
- [storage] Open DBs concurrently via thread::scope by @wqfish in #20036
- [execution] Fix non-deterministic hot state promotions by @wqfish in #20057
- [forge] etna: bump pinned aptos-core SHA to match etna main by @ibalajiarun in #20059
- [safety-paper] update performance section with experiments by @rahxephon89 in #20061
- [safety-paper] add reentrancy check section by @vgao1996 in #20064
- Safety paper pass by @vineethk in #20071
- [paper] Pass over the paper by @georgemitenkov in #20072
- [safety-paper] Another pass by @vineethk in #20074
- [mono-move] Cleanup context TODOs by @georgemitenkov in #20051
- [forge] bump deployer version by @aptos-bot in #19956
- [mono-vm] Support for enums by @vineethk in #20060
- [Consensus Observer] Add ignored message metrics. by @JoshLind in #20080
- [trading-native][move] Add native_position framework module + position-natives crate by @grao1991 in #19949
- [safety paper] Final submitted version by @wrwg in #20087
- [storage] Guard hot state reads with the hot pruners by @wqfish in #20096
- [prover] Verifiable inline functions and inline higher-order functions by @wrwg in #20066
- [storage] Add hot state snapshot read APIs by @wqfish in #20092
- [mono-move] Support remaining vector operations: pack, unpack, swap by @vineethk in #20083
- [mono-move] Generics monomorphization in the specializer by @vineethk in #20098
- [framework] Increase federated JWK limit by @zjma in #20105
- [consensus] Decouple encryption round from consensus round by @ibalajiarun in #20065
- [storage] Add hot state snapshot chunk-with-proof by @wqfish in #20101
- [mono-move] Enum value traversal support by @georgemitenkov in #20095
- [move-flow] Add facts query in move_package_query by @zwxxb in #20068
- [mono-move] Basic hash natives by @georgemitenkov in #20100
- [api] Annotate closure captured arguments by @georgemitenkov in #19999
- [move-flow] Add hardened release pipeline by @zwxxb in #20054
- [mono-move] Add stdlib native functions (string, bcs, object, table) by @vgao1996 in #20073
- Revise CODEOWNERS for updated directory ownership by @gregnazario in #20099
- [mono-move] Fix bool deserialization to be canonical by @georgemitenkov in #20108
- [mono-move] Simplify Move specializer representation of integer casts by @vineethk in #20110
- Bump form-data from 4.0.5 to 4.0.6 in /crates/aptos-faucet/ts-client by @dependabot[bot] in #20094
- [mono-move] Collapse generic/non-generic call & closure IR twins by @vineethk in #20109
- [mono-move] Add a Move unit test harness by @calintat in #20042
- [storage] Add hot state smoke tests by @wqfish in #20118
- remove draft by @rahxephon89 in #20119
- [execution] Enable Block-STM v2 by default by @zekun000 in #20116
- [consensus] Test V1/V2/V3 decryption metadata transitions; remove framework_upgrade chunky-DKG override by @ibalajiarun in #20111
- [consensus] Exclude retryable encrypted txns from execution by @ibalajiarun in #20115
- [mono-move] TODOs cleanup by @georgemitenkov in #20124
- [mono-move] LdConst GC test by @georgemitenkov in #20125
- [move perf] Shorten the window where the PR mechanism triggers to 2 days by @wrwg in #20135
- [ci] Calibrate single-node execution performance values by @aptos-bot in #20141
- [mono-move] CI benchmark by @georgemitenkov in #20138
- [trading-native] Native-position consensus state root (compute root in execution) by @grao1991 in #20016
- [framework] Do not use aggregator V1 in genesis by @georgemitenkov in #20130
- [vm] Lazily prepare keyless PVK by @zjma in #20148
- [mono-move] Keep type as identity, use layouts for size/alignment by @georgemitenkov in #20139
- Remove a left-over debug output from the executor-benchmark by @xosmig in #20152
- Update gas version on main branch by @vsharongg in #20154
- [consensus] Demote leader-reputation short-window log during catch-up by @ibalajiarun in #20086
- [spec] more spec fix by @rahxephon89 in #20076
- [stdlib] Make std::result::Result public and enable its helpers by @wrwg in #20150
- [mono-move] Replay benchmark by @calintat in #20126
- [vm] Refactor function type creation by @georgemitenkov in #20149
- [execution] Decouple hot state root from TXN_INFO_V1 by @wqfish in #20157
- [mono-move] Small benchmark improvements by @georgemitenkov in #20158
- [mono-move] Hoist interpreter machine registers into the run loop by @vgao1996 in #20134
- [release] Add aptos-release-tool by @vgao1996 in #20121
- [mono-move] Add secp256k1 natives by @georgemitenkov in #20159
- [consensus] Reject opt block at ProposalMsg ingress by @danielxiangzl in #20161
- [types] Derive state-key shard index from array length by @wqfish in #20166
- [framework] Add multisig script feature flag back by @gregnazario in #20142
- [move-flow] Add update subcommand by @zwxxb in #20170
- [vm] Record txn read sets for hot state promotion by @wqfish in #19989
- add code download mode for comparison testing tool by @rahxephon89 in #20187
- [spec] fix more framework spec by @rahxephon89 in #20151
- [vm] Harden AIP-133 function reflection by @wrwg in #20147
- [API] Small tweaks and improvements. by @JoshLind in #20079
- [framework] Mint gas refund as APT FA via MintRef by @lightmark in #20132
- [State Sync] Use saturating operations. by @JoshLind in #20199
- [mono-move] Seed features resource in unit test harness by @calintat in #20201
- [move-flow] fix attrs,type and returnTypes qualification + add lambda tagging by @GotenJBZ in #20174
- [framework] Remove permissioned signer from framework by @rahxephon89 in #20198
- [mono-move] Remove ExecutionContext by @georgemitenkov in #20202
- [move-flow] Bump version to 2.0.0 by @zwxxb in #20204
- [cli] Bump to 9.5.0 by @calintat in #20208
- [types] Defer signature decompression in AggregateSignature and SignatureWithStatus by @ibalajiarun in #20089
- [Consensus] Small logging tweaks. by @JoshLind in #20200
- [vm] Bound fail-closed delayed-field squash to [1.46, 1.48) by @zekun000 in https://github.com//pull/20211
- [spec][framework] OM intrinsics by @rahxephon89 in #20081
- [framework] Dispatch FunctionInfo hooks via function values by @wrwg in #20197
- [move] Remove resource access control by @georgemitenkov in #20085
- [mono-move] Decouple gas instrumentation from lowering by @calintat in #20215
- [forge] bump deployer version by @aptos-bot in #20082
- [vm] Flag to disable closure BCS serialization by @georgemitenkov in #20220
- [move] Add more charges for string natives by @georgemitenkov in #20232
- [move] Allow switch from parallel to integer aggregator for APT supply by @georgemitenkov in #20214
- [mono-move] Migrate specializer errors by @calintat in #20221
- [spec] Add intrinsic specs for BigOrderedMap by @rahxephon89 in #20213
- [move prover] fix move prover bugs by @rahxephon89 in #20227
- [vm] Remove V1 aggregator from execution by @georgemitenkov in #20169
- [block-stm] Move value with layout out of executor/mvhashmap by @georgemitenkov in #20209
- [block-stm] Concrete types for modules by @georgemitenkov in #20219
- [block-stm] Encapsulate post-commit materialization by @georgemitenkov in #20230
- [trading-native][state-sync] Native-position fast sync (unified with main state via StateKind) by @grao1991 in #19974
- [framework] Make Option public by @rahxephon89 in #20236
- [github] Improve workflow permissions by @gregnazario in #20171
- [mono-move] Add write-set and VM output generation by @calintat in #20242
- [indexer] Add crate docs and cleanup TODO anchors by @wrwg in #20247
- [release] hotfix publishes on non-public by @rustielin in #20248
- [executor-benchmark] add run_mix_with_default_params for weighted txn mixes by @manudhundi in #20245
- [mono-move] Type-erased error handling by @calintat in #20254
- [compiler] Refactor for loop implementation by @rahxephon89 in #20240
- [state-sync] Fix fast-sync wedge on invalid first snapshot chunk by @grao1991 in #20251
- [mono-move] Chained field access fusion by @vineethk in #20249
- [paper] Update readme by @rahxephon89 in #20265
- [mono-move] Reduce and pin the stackless IR instruction size to 32 byte by @vineethk in #20256
- [framework] Lazy module initialization support by @wrwg in #20235
- [move prover] havoc loop-modified global memory at loop headers by @rahxephon89 in #20258
- [mono-move] Stackless execution IR now has named fields and doc comments by @vineethk in #20259
- [consensus] Dedup voting power tracking in proof coordinator by @ibalajiarun in #20210
- [prover] Camera-ready revisions for FMCAD'26 higher-order paper by @wrwg in #20284
- [vm] Add RustMV design doc: safe sequential Rust on Move bytecode by @wrwg in #20270
- [consensus] Don't log cancelled self-share derive as error by @ibalajiarun in #20277
- [mono-move] Implement vector::move_range as a native function by @vgao1996 in #20261
- [mono-move] Typed Slot Forms in the Stackless IR by @vineethk in #20263
- [mono-move] String natives by @georgemitenkov in #20163
- [mono-move] Fix signer deserialization by @georgemitenkov in #20290
- [github] Fix replay-verify job-level permissions by @vgao1996 in #20299
- [vm] Gate module publishing on a minimum bytecode version by @vgao1996 in #20296
- [indexer] Improve table info parsing by @vgao1996 in #20295
- [vm] Return none on unknown variant tag by @georgemitenkov in #20304
- Re-resolve memoized closures when defining module changes by @vineethk in #20283
- add snapshot function to fungible_asset in framework by @igor-aptos in #20180
- [block-stm] Remove generic error from output by @georgemitenkov in #20255
- [mono-move] Add module location where the abort happened by @vineethk in #20289
- [mono-move] Lightweight translation validation: CFG equivalence of stackless execution IR with bytecode by @vineethk in #20300
- [replay-verify] Bump snapshot PVC sizes to fit grown PFN disks by @vgao1996 in #20301
- [block-stm] Refactor recorded outputs by @georgemitenkov in #20257
- [block-stm] Remove before materialization guard by @georgemitenkov in #20260
- [Mempool] Small improvements to txn size estimates. by @JoshLind in #20314
- [block-stm] Refactor bcs group fallback into its method by @georgemitenkov in #20267
- [framework] Add cleanup on orderless proofs by @gregnazario in #20070
- [block-stm] Split TransactionOutput into base and LegacyTxnOutput by @georgemitenkov in #20271
- [prover] implement ghost field for structs/enums by @rahxephon89 in #20272
- [Consensus] Return errors for missing peers when processing AugData messages. by @JoshLind in #20325
- [vm] fix cache layouts of vector-wrapped structs by @rahxephon89 in #20333
- [mono-move]
unit_testsigner natives by @georgemitenkov in #20328 - [vm] Add ordering for side-effects traversal by @georgemitenkov in #20337
- [Config] Update seed peers across networks. by @JoshLind in #20324
- fix mono unit tests by @rahxephon89 in #20343
- [framework] BigOrderedMap iterator contracts by @rahxephon89 in #20303
- [move prover] ghost carrier and iterator validity for intrinsic maps by @rahxephon89 in #20310
- [move-vm] Bounding per-instruction cache memory in the Move VM by @vineethk in #20341
- [paper] Camera ready version of the safety paper by @vineethk in #20346
- [api] Return 410 for pruned transaction and event reads by @jtang17 in #20332
- [mono-move] Add the MonoMove Aptos transaction executor by @vgao1996 in #20181
- [vm] Add charges for bcs value traversals by @georgemitenkov in #20336
- [repo] Ignore .atlas/ agent state directories by @gregnazario in #20369
- [framework] BigOrderedMap iterator validity specs by @rahxephon89 in #20311
- [prover] fix bv panics by @rahxephon89 in #20344
- [vm] Memoize closure frame caches in trace replay to share budget across repeated calls by @vineethk in #20347
- [mono-move] Threading bytecode provenance in the specializer by @vineethk in #20366
- [cli] Clean up CLI documentation and help text by @gregnazario in #20368
- [prover] Inline behavioral predicates for inline functions by @wrwg in #20345
- [prover] Formalize Move frontend, IR, and prover stages in Lean by @wrwg in #20315
- Increase testnet archival PFN size to 26Ti by @sionescu in #20386
- Fix royalty issue by @lightmark in #20385
- [prover] Generate one Boogie program per verification root by @wrwg in #20392
- [compiler-v2] Add compiler-side native function/struct checker mirroring VM publish-time rules by @vineethk in #20357
- [mono-move] Fix executor signer count and transaction-context seeding by @vgao1996 in #20389
- [mono-move] Replay-bench the Aptos transaction executor against AptosVM by @vgao1996 in #20370
- [mono-move] Add stateless crypto natives by @georgemitenkov in #20329
- [mono-move] Remaining bls12381 natives by @georgemitenkov in #20339
- [mono-move] Ristretto255 scalar natives by @georgemitenkov in #20395
- [mono-move] Chain ID and consensus config natives by @georgemitenkov in #20396
- use archive in url for package tests by @rahxephon89 in #20404
- [prover] add bv internal pragma by @rahxephon89 in #20384
- [prover] enumeration view for intrinsic maps by @rahxephon89 in #20380
- [prover] fix global memory in lifted lambda by @rahxephon89 in #20331
- [mono-move] Initialization natives by @georgemitenkov in #20397
- [compiler-v2] Drop support for language versions below 2.2 by @vineethk in #20398
- [config] Keep hot state across restarts on devnet by @wqfish in #20407
- [gas] Revert LATEST_GAS_FEATURE_VERSION to RELEASE_V1_49 on v1.49 branch by @JoshLind in #20400
- [cp][aptos-release-v1.49] [execution] Drain state sync before teardown by @aptos-bot in #20418
- [cp][aptos-release-v1.49] [vm] Meter BCS value nodes on deserialize by @aptos-bot in #20441
- Update timed feature to activate at noon today by @wqfish in #20454
- [cp][aptos-release-v1.49] [jemalloc] Disable HPA for tool binaries by @aptos-bot in #20456
- [aptos-release-v1.49] Bump version to 1.49.0 by @aptos-bot in #20455
Full Changelog: aptos-node-v1.48.6-rc...aptos-node-v1.49.0-rc