Skip to content

v0.14.0

Choose a tag to compare

@bobbinth bobbinth released this 01 Apr 13:49
· 52 commits to main since this release
885200e

Enhancements

  • Added miden-genesis tool for generating canonical AggLayer genesis accounts and configuration (#1797).
  • Expose per-tree RocksDB tuning options (#1782).
  • Expose per-tree RocksDB tuning options (#1782).
  • Added a gRPC server to the NTX builder, configurable via --ntx-builder.url / MIDEN_NODE_NTX_BUILDER_URL (#1758).
  • Added GetNoteError gRPC endpoint to query the latest execution error for network notes (#1758).
  • Added verbose info!-level logging to the network transaction builder for transaction execution, note filtering failures, and transaction outcomes (#1770).
  • [BREAKING] Move block proving from Blocker Producer to the Store (#1579).
  • [BREAKING] Updated miden-protocol dependencies to use next branch; renamed NoteInputs to NoteStorage, .inputs() to .storage(), and database inputs column to storage (#1595).
  • Validator now persists validated transactions (#1614).
  • [BREAKING] Remove SynState and introduce SyncChainMmr (#1591).
  • Introduce SyncChainMmr RPC endpoint to sync chain MMR deltas within specified block ranges (#1591).
  • Fixed TransactionHeader serialization for row insertion on database & fixed transaction cursor on retrievals (#1701).
  • Added KMS signing support in validator (#1677).
  • Added per-IP gRPC rate limiting across services as well as global concurrent connection limit (#1746, #1865).
  • Added finality field for SyncChainMmr requests (#1725).
  • Added limit to execution cycles for a transaction network, configurable through CLI args (--ntx-builder.max-tx-cycles) (#1801).
  • Added monitor version and network name to the network monitor dashboard, network name is configurable via --network-name / MIDEN_MONITOR_NETWORK_NAME (#1838).
  • Users can now submit atomic transaction batches via SubmitBatch gRPC endpoint (#1846).

Changes

  • [BREAKING] Removed obsolete SyncState RPC endpoint; clients should use SyncNotes, SyncNullifiers, SyncAccountVault, SyncAccountStorageMaps, SyncTransactions, or SyncChainMmr instead (#1636).
  • Added account ID limits for SyncTransactions, SyncAccountVault, and SyncAccountStorageMaps to GetLimits responses (#1636).
  • [BREAKING] Added typed GetAccountError for GetAccount endpoint, splitting BlockNotAvailable into UnknownBlock and BlockPruned. AccountNotFound and AccountNotPublic now return InvalidArgument gRPC status instead of NotFound; clients should parse the error details discriminant rather than branching on status codes (#1646).
  • Changed note_type field in proto NoteMetadata from uint32 to a NoteType enum (#1594).
  • Refactored NTX Builder startup and introduced NtxBuilderConfig with configurable parameters (#1610).
  • Refactored NTX Builder actor state into AccountDeltaTracker and NotePool for clarity, and added tracing instrumentation to event broadcasting (#1611).
  • Add #[track_caller] to tracing/logging helpers (#1651).
  • Added support for generic account loading at genesis (#1624).
  • Improved tracing span fields (#1650)
  • Replaced NTX Builder's in-memory state management with SQLite-backed persistence; account states, notes, and transaction effects are now stored in the database and inflight state is purged on startup (#1662).
  • [BREAKING] Reworked miden-remote-prover, removing the worker/proxy distinction and simplifying to a worker with a request queue (#1688).
  • [BREAKING] Renamed NoteRoot protobuf message used in GetNoteScriptByRoot gRPC endpoints into NoteScriptRoot (#1722).
  • NTX Builder actors now deactivate after being idle for a configurable idle timeout (--ntx-builder.idle-timeout, default 5 min) and are re-activated when new notes target their account (#1705).
  • [BREAKING] Modified TransactionHeader serialization to allow converting back into the native type after serialization (#1759).
  • Removed chain_tip requirement from mempool subscription request (#1771).
  • Moved bootstrap procedure to miden-node validator bootstrap command (#1764).
  • NTX Builder now deactivates network accounts which crash repeatedly (configurable via --ntx-builder.max-account-crashes, default 10) (#1712).
  • Removed gRPC reflection v1-alpha support (#1795).
  • [BREAKING] Rust requirement bumped from v1.91 to v1.93 (#1803).
  • [BREAKING] Updated SyncNotes endpoint to returned multiple note updates ((#1843)).
  • [BREAKING] Refactored NoteSyncRecord to returned a fixed-size NoteMetadataHeader (#1837).

Fixes

  • Fixed network monitor looping on stale wallet nonce after node restarts by re-syncing wallet state from RPC after repeated failures (#1748).
  • Fixed bundled start panicking due to duplicate data_directory clap argument name between BundledCommand::Start and NtxBuilderConfig (#1732).
  • Fixed bundled bootstrap requiring --validator.key.hex or --validator.key.kms-id despite a default key being configured (#1732).
  • Fixed incorrectly classifying private notes with the network attachment as network notes (#1378).
  • Fixed accept header version negotiation rejecting all pre-release versions; pre-release label matching is now lenient, accepting any numeric suffix within the same label (e.g. alpha.3 accepts alpha.1) (#1755).
  • Fixed GetAccount returning an internal error for AllEntries requests on storage maps where all entries are in a single block (e.g. genesis accounts) (#1816).
  • Fixed GetAccount returning empty storage map entries instead of too_many_entries when a genesis account's map exceeds the pagination limit (#1816).