Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
52c8265
chore: increment crate versions to v0.15.0
bobbinth Apr 1, 2026
56fc161
Merge branch 'main' into next
bobbinth Apr 1, 2026
a893a97
fix: Update SyncChainMmr endpoint upper bound logic (#1860)
sergerad Apr 1, 2026
9ea3a63
fix: Genesis(SignedBlock) (#1858)
sergerad Apr 1, 2026
62e76b8
feat: Add proof to GetBlockByNumber (#1864)
sergerad Apr 2, 2026
6eb0af9
chore: Cache proven chain tip in State (#1861)
sergerad Apr 6, 2026
8540706
chore: Reduce block proving timeout worst case (#1857)
sergerad Apr 6, 2026
2725499
Merge branch 'main' into next
bobbinth Apr 7, 2026
93fcc65
Merge branch 'main' into next
bobbinth Apr 7, 2026
32f76e5
fix: Fix transact spans (#1897)
sergerad Apr 7, 2026
7b5e621
Merge branch 'main' into next
bobbinth Apr 8, 2026
127af82
Merge branch 'main' into next
bobbinth Apr 9, 2026
2fe4c60
Merge branch 'main' into next
bobbinth Apr 10, 2026
31a8b2f
Merge branch 'main' into next
bobbinth Apr 10, 2026
c254bc7
feat: Replace bundled command with compose (#1786)
sergerad Apr 12, 2026
03a4a82
chore: remove InflightNetworkNote (#1929)
SantiagoPittella Apr 14, 2026
410e3b9
fix: Various run-node.sh issues (#1943)
sergerad Apr 15, 2026
e1c96bd
Merge branch 'main' into next
bobbinth Apr 15, 2026
1c344e5
Port crypto RocksDB budgeted deserialization (#1923)
huitseeker Apr 16, 2026
8cdbe55
chore: custom CSS properties (#1938)
SantiagoPittella Apr 16, 2026
b4c6022
chore: ServiceStatus builder methods (#1937)
SantiagoPittella Apr 16, 2026
df34d7b
feat: add Validator card to network monitor dashboard (#1900)
SantiagoPittella Apr 16, 2026
74e2009
feat: generalize get_network_note_status endpoint (#1892)
SantiagoPittella Apr 16, 2026
8d3cee7
chore: simplify actor start up (#1902)
SantiagoPittella Apr 16, 2026
228636d
refactor(proto): Use `codegen` for proto code generation (#1946)
kkovaacs Apr 16, 2026
7d997e3
chore: Add spans to get_account stack (#1935)
sergerad Apr 17, 2026
6676834
chore: improve error diagnostics (#1939)
SantiagoPittella Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## v0.15.0 (TBD)

- [BREAKING] Changed `GetBlockByNumber` to accept a `BlockRequest` (with optional `include_proof` flag) and returns a response containing the block and an optional block proof ([#1864](https://github.com/0xMiden/node/pull/1864)).
- Extended `ValidatorStatus` proto response with `chain_tip`, `validated_transactions_count`, and `signed_blocks_count`; added Validator card to the network monitor dashboard ([#1900](https://github.com/0xMiden/node/pull/1900)).
- Updated the RocksDB SMT backend to use budgeted deserialization for bytes read from disk, ported from `0xMiden/crypto` PR [#846](https://github.com/0xMiden/crypto/pull/846) ([#1923](https://github.com/0xMiden/node/pull/1923)).
- [BREAKING] Renamed `GetNoteError` endpoint to `GetNetworkNoteStatus` and extended it to return the full lifecycle status of a network note (`Pending`, `Processed`, `Discarded`, `Committed`) instead of only error information. Consumed notes are now retained in the database after block commit instead of being deleted ([#1892](https://github.com/0xMiden/node/pull/1892)).

## v0.14.7 (2026-04-15)

- [BREAKING] Aligned proto `TransactionHeader` with domain type and exposed erased notes in `SyncTransactions` ([#1941](https://github.com/0xMiden/node/pull/1941)).
Expand All @@ -23,14 +30,14 @@

## v0.14.2 (2026-04-07)

- Added inclusion proofs to `SyncTransactions` output notes ([#1893](https://github.com/0xMiden/node/pull/1893)).
- Added `block_header` field to `SyncChainMmrResponse` so clients can obtain the `block_to` block header without a separate request ([#1881](https://github.com/0xMiden/node/pull/1881)).
- Added inclusion proofs to `SyncTransactions` output notes ([#1893](https://github.com/0xMiden/node/pull/1893)).

## v0.14.1 (2026-04-02)

- Fixed batch building issue with unauthenticated notes consumed in the same batch as they were created ([#1875](https://github.com/0xMiden/node/issues/1875)).

## v0.14.0 (2025-04-01)
## v0.14.0 (2026-04-01)

### Enhancements

Expand Down Expand Up @@ -71,6 +78,7 @@
- [BREAKING] Modified `TransactionHeader` serialization to allow converting back into the native type after serialization ([#1759](https://github.com/0xMiden/node/issues/1759)).
- Removed `chain_tip` requirement from mempool subscription request ([#1771](https://github.com/0xMiden/node/pull/1771)).
- Moved bootstrap procedure to `miden-node validator bootstrap` command ([#1764](https://github.com/0xMiden/node/pull/1764)).
- [BREAKING] Removed `bundled` command; each component is now started as a separate process. Added `ntx-builder` CLI subcommand. Added `docker-compose.yml` for local multi-process deployment ([#1765](https://github.com/0xMiden/node/pull/1765)).
- NTX Builder now deactivates network accounts which crash repeatedly (configurable via `--ntx-builder.max-account-crashes`, default 10) ([#1712](https://github.com/0xMiden/miden-node/pull/1712)).
- Removed gRPC reflection v1-alpha support ([#1795](https://github.com/0xMiden/node/pull/1795)).
- [BREAKING] Rust requirement bumped from `v1.91` to `v1.93` ([#1803](https://github.com/0xMiden/node/pull/1803)).
Expand All @@ -80,8 +88,6 @@
### Fixes

- Fixed network monitor looping on stale wallet nonce after node restarts by re-syncing wallet state from RPC after repeated failures ([#1748](https://github.com/0xMiden/node/pull/1748)).
- Fixed `bundled start` panicking due to duplicate `data_directory` clap argument name between `BundledCommand::Start` and `NtxBuilderConfig` ([#1732](https://github.com/0xMiden/node/pull/1732)).
- Fixed `bundled bootstrap` requiring `--validator.key.hex` or `--validator.key.kms-id` despite a default key being configured ([#1732](https://github.com/0xMiden/node/pull/1732)).
- Fixed incorrectly classifying private notes with the network attachment as network notes ([#1378](https://github.com/0xMiden/node/pull/1738)).
- 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](https://github.com/0xMiden/node/pull/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](https://github.com/0xMiden/node/pull/1816)).
Expand Down
46 changes: 28 additions & 18 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 15 additions & 14 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ license = "MIT"
readme = "README.md"
repository = "https://github.com/0xMiden/node"
rust-version = "1.93"
version = "0.14.7"
version = "0.15.0"

# Optimize the cryptography for faster tests involving account creation.
[profile.test.package.miden-crypto]
Expand All @@ -43,22 +43,22 @@ debug = true

[workspace.dependencies]
# Workspace crates.
miden-large-smt-backend-rocksdb = { path = "crates/large-smt-backend-rocksdb", version = "0.14" }
miden-node-block-producer = { path = "crates/block-producer", version = "0.14" }
miden-node-db = { path = "crates/db", version = "0.14" }
miden-node-grpc-error-macro = { path = "crates/grpc-error-macro", version = "0.14" }
miden-node-ntx-builder = { path = "crates/ntx-builder", version = "0.14" }
miden-node-proto = { path = "crates/proto", version = "0.14" }
miden-node-proto-build = { path = "proto", version = "0.14" }
miden-node-rpc = { path = "crates/rpc", version = "0.14" }
miden-node-store = { path = "crates/store", version = "0.14" }
miden-large-smt-backend-rocksdb = { path = "crates/large-smt-backend-rocksdb", version = "0.15" }
miden-node-block-producer = { path = "crates/block-producer", version = "0.15" }
miden-node-db = { path = "crates/db", version = "0.15" }
miden-node-grpc-error-macro = { path = "crates/grpc-error-macro", version = "0.15" }
miden-node-ntx-builder = { path = "crates/ntx-builder", version = "0.15" }
miden-node-proto = { path = "crates/proto", version = "0.15" }
miden-node-proto-build = { path = "proto", version = "0.15" }
miden-node-rpc = { path = "crates/rpc", version = "0.15" }
miden-node-store = { path = "crates/store", version = "0.15" }
miden-node-test-macro = { path = "crates/test-macro" }
miden-node-utils = { path = "crates/utils", version = "0.14" }
miden-node-validator = { path = "crates/validator", version = "0.14" }
miden-remote-prover-client = { path = "crates/remote-prover-client", version = "0.14" }
miden-node-utils = { path = "crates/utils", version = "0.15" }
miden-node-validator = { path = "crates/validator", version = "0.15" }
miden-remote-prover-client = { path = "crates/remote-prover-client", version = "0.15" }
# Temporary workaround until <https://github.com/rust-rocksdb/rust-rocksdb/pull/1029>
# is part of `rocksdb-rust` release
miden-node-rocksdb-cxx-linkage-fix = { path = "crates/rocksdb-cxx-linkage-fix", version = "0.14" }
miden-node-rocksdb-cxx-linkage-fix = { path = "crates/rocksdb-cxx-linkage-fix", version = "0.15" }

# miden-protocol dependencies. These should be updated in sync.
miden-agglayer = { version = "0.14" }
Expand All @@ -78,6 +78,7 @@ assert_matches = { version = "1.5" }
async-trait = { version = "0.1" }
build-rs = { version = "0.3" }
clap = { features = ["derive"], version = "4.5" }
codegen = { version = "0.3" }
deadpool = { default-features = false, version = "0.12" }
deadpool-diesel = { version = "0.6" }
deadpool-sync = { default-features = false, version = "0.1" }
Expand Down
18 changes: 18 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,24 @@ install-network-monitor: ## Installs network monitor binary

# --- docker --------------------------------------------------------------------------------------

.PHONY: compose-genesis
compose-genesis: ## Wipes node volumes and creates a fresh genesis block
$(CONTAINER_RUNTIME) compose down --volumes --remove-orphans
$(CONTAINER_RUNTIME) volume rm -f miden-node_genesis-data miden-node_store-data miden-node_validator-data miden-node_ntx-builder-data miden-node_accounts
$(CONTAINER_RUNTIME) compose --profile genesis run --rm genesis

.PHONY: compose-up
compose-up: ## Starts all node components via docker compose
$(CONTAINER_RUNTIME) compose up -d

.PHONY: compose-down
compose-down: ## Stops and removes all node containers via docker compose
$(CONTAINER_RUNTIME) compose down

.PHONY: compose-logs
compose-logs: ## Follows logs for all node components via docker compose
$(CONTAINER_RUNTIME) compose logs -f

.PHONY: docker-build-node
docker-build-node: ## Builds the Miden node using Docker (override with CONTAINER_RUNTIME=podman)
@CREATED=$$(date) && \
Expand Down
2 changes: 2 additions & 0 deletions bin/network-monitor/.env
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ MIDEN_MONITOR_COUNTER_LATENCY_TIMEOUT=2m
MIDEN_MONITOR_EXPLORER_URL=https://scan-backend-devnet-miden.eu-central-8.gateway.fm/graphql
# note transport checks
MIDEN_MONITOR_NOTE_TRANSPORT_URL=https://transport.miden.io
# validator checks
MIDEN_MONITOR_VALIDATOR_URL=
11 changes: 11 additions & 0 deletions bin/network-monitor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ miden-network-monitor start --faucet-url http://localhost:8080 --enable-otel
- `--faucet-url`: Faucet service URL for testing. If omitted, faucet testing is disabled.
- `--explorer-url`: Explorer service GraphQL endpoint. If omitted, explorer checks are disabled.
- `--note-transport-url`: Note transport service URL for health checking. If omitted, note transport checks are disabled.
- `--validator-url`: Validator service URL for status checking. If omitted, validator checks are disabled.
- `--disable-ntx-service`: Disable the network transaction service checks (enabled by default). The network transaction service consists of two components: counter increment (sending increment transactions) and counter tracking (monitoring counter value changes).
- `--remote-prover-test-interval`: Interval at which to test the remote provers services (default: `2m`)
- `--faucet-test-interval`: Interval at which to test the faucet services (default: `2m`)
Expand All @@ -58,6 +59,7 @@ If command-line arguments are not provided, the application falls back to enviro
- `MIDEN_MONITOR_FAUCET_URL`: Faucet service URL for testing. If unset, faucet testing is disabled.
- `MIDEN_MONITOR_EXPLORER_URL`: Explorer service GraphQL endpoint. If unset, explorer checks are disabled.
- `MIDEN_MONITOR_NOTE_TRANSPORT_URL`: Note transport service URL for health checking. If unset, note transport checks are disabled.
- `MIDEN_MONITOR_VALIDATOR_URL`: Validator service URL for status checking. If unset, validator checks are disabled.
- `MIDEN_MONITOR_DISABLE_NTX_SERVICE`: Set to `true` to disable the network transaction service checks (enabled by default). This affects both counter increment and tracking components.
- `MIDEN_MONITOR_REMOTE_PROVER_TEST_INTERVAL`: Interval at which to test the remote provers services
- `MIDEN_MONITOR_FAUCET_TEST_INTERVAL`: Interval at which to test the faucet services
Expand All @@ -83,6 +85,7 @@ Starts the network monitoring service with the web dashboard. RPC status is alwa
- Faucet testing: enabled when `--faucet-url` (or `MIDEN_MONITOR_FAUCET_URL`) is provided
- Network transaction service: enabled when `--disable-ntx-service=false` or unset (or `MIDEN_MONITOR_DISABLE_NTX_SERVICE=false` or unset)
- Note transport checks: enabled when `--note-transport-url` (or `MIDEN_MONITOR_NOTE_TRANSPORT_URL`) is provided
- Validator checks: enabled when `--validator-url` (or `MIDEN_MONITOR_VALIDATOR_URL`) is provided

```bash
# Start with default configuration (RPC only)
Expand Down Expand Up @@ -216,6 +219,14 @@ The monitor application provides real-time status monitoring for the following M
- Service URL
- gRPC serving status (Serving, NotServing, Unknown)

### Validator
- **Service Health**: Checks the validator service via its gRPC Status endpoint
- **Metrics**:
- Service URL and version
- Chain tip (highest signed block number)
- Validated transactions count (total transactions validated via `SubmitProvenTransaction`)
- Signed blocks count (total blocks signed via `SignBlock`)

## User Interface

The web dashboard provides a clean, responsive interface with the following features:
Expand Down
Loading
Loading