From a335e25a2375c7ce02ad800fce9950c56abcb352 Mon Sep 17 00:00:00 2001 From: sergerad Date: Mon, 11 May 2026 16:22:36 +1200 Subject: [PATCH 1/8] Move ntx-builder command to bin crate --- .github/workflows/build-docker.yml | 3 + .github/workflows/publish-debian-all.yml | 28 ++++++++ .github/workflows/publish-debian.yml | 1 + .github/workflows/publish-docker.yml | 3 + Cargo.lock | 65 ++++++++++--------- Cargo.toml | 3 +- Makefile | 26 ++++++-- bin/network-monitor/Dockerfile | 39 ----------- bin/node/Cargo.toml | 1 - bin/node/src/commands/mod.rs | 1 - bin/node/src/main.rs | 6 -- bin/ntx-builder/.env | 12 ++++ {crates => bin}/ntx-builder/Cargo.toml | 13 ++-- {crates => bin}/ntx-builder/build.rs | 0 {crates => bin}/ntx-builder/diesel.toml | 0 .../ntx-builder/src/actor/candidate.rs | 0 .../ntx-builder/src/actor/execute.rs | 0 {crates => bin}/ntx-builder/src/actor/mod.rs | 0 {crates => bin}/ntx-builder/src/builder.rs | 0 .../ntx-builder/src/chain_state.rs | 0 .../ntx-builder/src/clients/block_producer.rs | 0 .../ntx-builder/src/clients/mod.rs | 0 .../ntx-builder/src/clients/store.rs | 0 .../ntx-builder/src/clients/validator.rs | 0 .../src/commands/mod.rs} | 14 ++-- .../ntx-builder/src/coordinator.rs | 0 .../ntx-builder/src/db/migrations.rs | 0 .../migrations/2026020900000_setup/down.sql | 0 .../db/migrations/2026020900000_setup/up.sql | 0 {crates => bin}/ntx-builder/src/db/mod.rs | 0 .../src/db/models/account_effect.rs | 0 .../ntx-builder/src/db/models/conv.rs | 0 .../ntx-builder/src/db/models/mod.rs | 0 .../src/db/models/queries/accounts.rs | 0 .../src/db/models/queries/chain_state.rs | 0 .../ntx-builder/src/db/models/queries/mod.rs | 0 .../src/db/models/queries/note_scripts.rs | 0 .../src/db/models/queries/notes.rs | 0 .../src/db/models/queries/tests.rs | 0 {crates => bin}/ntx-builder/src/db/schema.rs | 0 .../ntx-builder/src/db/schema_hash.rs | 0 {crates => bin}/ntx-builder/src/lib.rs | 0 bin/ntx-builder/src/main.rs | 22 +++++++ {crates => bin}/ntx-builder/src/server.rs | 0 {crates => bin}/ntx-builder/src/test_utils.rs | 0 compose/monitor.yml | 2 +- crates/ntx-builder/README.md | 6 -- docker-compose.yml | 5 +- .../ntx-builder/miden-ntx-builder.service | 16 +++++ packaging/ntx-builder/postinst | 28 ++++++++ packaging/ntx-builder/postrm | 12 ++++ scripts/run-node.sh | 3 +- 52 files changed, 203 insertions(+), 106 deletions(-) delete mode 100644 bin/network-monitor/Dockerfile create mode 100644 bin/ntx-builder/.env rename {crates => bin}/ntx-builder/Cargo.toml (80%) rename {crates => bin}/ntx-builder/build.rs (100%) rename {crates => bin}/ntx-builder/diesel.toml (100%) rename {crates => bin}/ntx-builder/src/actor/candidate.rs (100%) rename {crates => bin}/ntx-builder/src/actor/execute.rs (100%) rename {crates => bin}/ntx-builder/src/actor/mod.rs (100%) rename {crates => bin}/ntx-builder/src/builder.rs (100%) rename {crates => bin}/ntx-builder/src/chain_state.rs (100%) rename {crates => bin}/ntx-builder/src/clients/block_producer.rs (100%) rename {crates => bin}/ntx-builder/src/clients/mod.rs (100%) rename {crates => bin}/ntx-builder/src/clients/store.rs (100%) rename {crates => bin}/ntx-builder/src/clients/validator.rs (100%) rename bin/{node/src/commands/ntx_builder.rs => ntx-builder/src/commands/mod.rs} (93%) rename {crates => bin}/ntx-builder/src/coordinator.rs (100%) rename {crates => bin}/ntx-builder/src/db/migrations.rs (100%) rename {crates => bin}/ntx-builder/src/db/migrations/2026020900000_setup/down.sql (100%) rename {crates => bin}/ntx-builder/src/db/migrations/2026020900000_setup/up.sql (100%) rename {crates => bin}/ntx-builder/src/db/mod.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/account_effect.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/conv.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/mod.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/accounts.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/chain_state.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/mod.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/note_scripts.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/notes.rs (100%) rename {crates => bin}/ntx-builder/src/db/models/queries/tests.rs (100%) rename {crates => bin}/ntx-builder/src/db/schema.rs (100%) rename {crates => bin}/ntx-builder/src/db/schema_hash.rs (100%) rename {crates => bin}/ntx-builder/src/lib.rs (100%) create mode 100644 bin/ntx-builder/src/main.rs rename {crates => bin}/ntx-builder/src/server.rs (100%) rename {crates => bin}/ntx-builder/src/test_utils.rs (100%) delete mode 100644 crates/ntx-builder/README.md create mode 100644 packaging/ntx-builder/miden-ntx-builder.service create mode 100644 packaging/ntx-builder/postinst create mode 100644 packaging/ntx-builder/postrm diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index 2f84ea3662..a9aa6f195d 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -22,6 +22,9 @@ jobs: - component: validator bin: miden-validator port: 50101 + - component: ntx-builder + bin: miden-ntx-builder + port: 50301 name: Build ${{ matrix.component }} steps: - name: Set up Docker Buildx diff --git a/.github/workflows/publish-debian-all.yml b/.github/workflows/publish-debian-all.yml index 9ed73569f1..b6bcf5cd93 100644 --- a/.github/workflows/publish-debian-all.yml +++ b/.github/workflows/publish-debian-all.yml @@ -100,6 +100,34 @@ jobs: crate: miden-validator arch: ${{ matrix.arch }} + publish-ntx-builder: + name: Publish Ntx-Builder ${{ matrix.arch }} Debian + permissions: + contents: write + strategy: + matrix: + arch: [amd64, arm64] + runs-on: + labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} + steps: + - name: Checkout repo + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + with: + fetch-depth: 0 + persist-credentials: false + - uses: ./.github/actions/install-rocksdb + - uses: ./.github/actions/install-protobuf-compiler + - name: Build and Publish Ntx-Builder + uses: ./.github/actions/debian + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + gitref: ${{ env.version }} + crate_dir: ntx-builder + package: miden-ntx-builder + packaging_dir: ntx-builder + crate: miden-ntx-builder + arch: ${{ matrix.arch }} + publish-network-monitor: name: Publish Network Monitor ${{ matrix.arch }} Debian permissions: diff --git a/.github/workflows/publish-debian.yml b/.github/workflows/publish-debian.yml index 478ea46d96..44fe6a47ac 100644 --- a/.github/workflows/publish-debian.yml +++ b/.github/workflows/publish-debian.yml @@ -10,6 +10,7 @@ on: options: - network-monitor - node + - ntx-builder - prover - validator version: diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index c82fdf5c88..1d81f67ab6 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -35,6 +35,9 @@ jobs: - component: validator bin: miden-validator port: 50101 + - component: ntx-builder + bin: miden-ntx-builder + port: 50301 name: Publish ${{ matrix.component }} ${{ inputs.version }} steps: - name: Checkout repo diff --git a/Cargo.lock b/Cargo.lock index edea84e1bc..0eb1686fff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3232,7 +3232,6 @@ dependencies = [ "fs-err", "humantime", "miden-node-block-producer", - "miden-node-ntx-builder", "miden-node-rpc", "miden-node-store", "miden-node-utils", @@ -3294,37 +3293,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "miden-node-ntx-builder" -version = "0.15.0" -dependencies = [ - "anyhow", - "build-rs", - "diesel", - "diesel_migrations", - "futures", - "libsqlite3-sys", - "miden-node-db", - "miden-node-proto", - "miden-node-proto-build", - "miden-node-utils", - "miden-protocol", - "miden-remote-prover-client", - "miden-standards", - "miden-tx", - "rand_chacha", - "rstest", - "tempfile", - "thiserror 2.0.18", - "tokio", - "tokio-stream", - "tonic", - "tonic-reflection", - "tower-http", - "tracing", - "url", -] - [[package]] name = "miden-node-proto" version = "0.15.0" @@ -3506,6 +3474,39 @@ dependencies = [ "url", ] +[[package]] +name = "miden-ntx-builder" +version = "0.15.0" +dependencies = [ + "anyhow", + "build-rs", + "clap", + "diesel", + "diesel_migrations", + "futures", + "humantime", + "libsqlite3-sys", + "miden-node-db", + "miden-node-proto", + "miden-node-proto-build", + "miden-node-utils", + "miden-protocol", + "miden-remote-prover-client", + "miden-standards", + "miden-tx", + "rand_chacha", + "rstest", + "tempfile", + "thiserror 2.0.18", + "tokio", + "tokio-stream", + "tonic", + "tonic-reflection", + "tower-http", + "tracing", + "url", +] + [[package]] name = "miden-package-registry" version = "0.22.1" diff --git a/Cargo.toml b/Cargo.toml index 9a1424cec4..f0c9c8f2e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = [ "bin/genesis", "bin/network-monitor", "bin/node", + "bin/ntx-builder", "bin/remote-prover", "bin/stress-test", "bin/validator", @@ -10,7 +11,6 @@ members = [ "crates/db", "crates/grpc-error-macro", "crates/large-smt-backend-rocksdb", - "crates/ntx-builder", "crates/proto", "crates/remote-prover-client", "crates/rocksdb-cxx-linkage-fix", @@ -47,7 +47,6 @@ miden-large-smt-backend-rocksdb = { path = "crates/large-smt-backend-rocksdb", v 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" } diff --git a/Makefile b/Makefile index aa6a035b47..2628151c20 100644 --- a/Makefile +++ b/Makefile @@ -151,7 +151,7 @@ compose-logs: ## Follows logs for all components via docker compose docker compose $(COMPOSE_FILES) logs -f .PHONY: docker-build -docker-build: docker-build-node docker-build-validator ## Builds all Docker images +docker-build: docker-build-node docker-build-validator docker-build-ntx-builder docker-build-monitor ## Builds all Docker images .PHONY: docker-build-node docker-build-node: ## Builds the Miden node using Docker @@ -177,11 +177,29 @@ docker-build-validator: ## Builds the Miden validator using Docker --build-arg PORT=50101 \ -t miden-validator . +.PHONY: docker-build-ntx-builder +docker-build-ntx-builder: ## Builds the Miden network transaction builder using Docker + @CREATED=$$(date) && \ + VERSION=$$(cat bin/ntx-builder/Cargo.toml | grep -m 1 '^version' | cut -d '"' -f 2) && \ + COMMIT=$$(git rev-parse HEAD) && \ + docker build --build-arg CREATED="$$CREATED" \ + --build-arg VERSION="$$VERSION" \ + --build-arg COMMIT="$$COMMIT" \ + --build-arg BIN=miden-ntx-builder \ + --build-arg PORT=50301 \ + -t miden-ntx-builder . + .PHONY: docker-build-monitor docker-build-monitor: ## Builds the network monitor using Docker - docker build \ - -f bin/network-monitor/Dockerfile \ - -t miden-network-monitor-image . + @CREATED=$$(date) && \ + VERSION=$$(cat bin/network-monitor/Cargo.toml | grep -m 1 '^version' | cut -d '"' -f 2) && \ + COMMIT=$$(git rev-parse HEAD) && \ + docker build --build-arg CREATED="$$CREATED" \ + --build-arg VERSION="$$VERSION" \ + --build-arg COMMIT="$$COMMIT" \ + --build-arg BIN=miden-network-monitor \ + --build-arg PORT=3000 \ + -t miden-network-monitor . .PHONY: docker-run-node docker-run-node: ## Runs the Miden node as a Docker container diff --git a/bin/network-monitor/Dockerfile b/bin/network-monitor/Dockerfile deleted file mode 100644 index b954f73f58..0000000000 --- a/bin/network-monitor/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -FROM rust:1.93-slim-bookworm AS chef -# Install build dependencies. RocksDB is compiled from source by librocksdb-sys. -RUN apt-get update && \ - apt-get -y upgrade && \ - apt-get install -y \ - llvm \ - clang \ - libclang-dev \ - cmake \ - pkg-config \ - libssl-dev \ - libsqlite3-dev \ - ca-certificates && \ - rm -rf /var/lib/apt/lists/* -RUN cargo install cargo-chef -WORKDIR /app - -FROM chef AS planner -COPY . . -RUN cargo chef prepare --recipe-path recipe.json - -FROM chef AS builder -COPY --from=planner /app/recipe.json recipe.json -# Build dependencies - this is the caching Docker layer! -RUN cargo chef cook --release --recipe-path recipe.json -# Build application -COPY . . -RUN cargo build --release --locked --bin miden-network-monitor - -FROM debian:bookworm-slim AS runtime -RUN apt-get update && \ - apt-get -y upgrade && \ - apt-get install -y --no-install-recommends sqlite3 ca-certificates \ - && rm -rf /var/lib/apt/lists/* -COPY --from=builder /app/target/release/miden-network-monitor /usr/local/bin/miden-network-monitor - -EXPOSE 3000 - -CMD ["miden-network-monitor"] diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index cba7708418..85e96e5b9a 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -23,7 +23,6 @@ clap = { features = ["env", "string"], workspace = true } fs-err = { workspace = true } humantime = { workspace = true } miden-node-block-producer = { workspace = true } -miden-node-ntx-builder = { workspace = true } miden-node-rpc = { workspace = true } miden-node-store = { workspace = true } miden-node-utils = { workspace = true } diff --git a/bin/node/src/commands/mod.rs b/bin/node/src/commands/mod.rs index 95f7e14b65..ccf3c92c00 100644 --- a/bin/node/src/commands/mod.rs +++ b/bin/node/src/commands/mod.rs @@ -1,5 +1,4 @@ pub mod block_producer; -pub mod ntx_builder; pub mod rpc; pub mod store; diff --git a/bin/node/src/main.rs b/bin/node/src/main.rs index f35414d22b..a9ef2f75ac 100644 --- a/bin/node/src/main.rs +++ b/bin/node/src/main.rs @@ -32,10 +32,6 @@ pub enum Command { /// Commands related to the node's block-producer component. #[command(subcommand)] BlockProducer(commands::block_producer::BlockProducerCommand), - - /// Commands related to the node's network transaction builder component. - #[command(subcommand)] - NtxBuilder(commands::ntx_builder::NtxBuilderCommand), } impl Command { @@ -47,7 +43,6 @@ impl Command { Command::Store(subcommand) => subcommand.is_open_telemetry_enabled(), Command::Rpc(subcommand) => subcommand.is_open_telemetry_enabled(), Command::BlockProducer(subcommand) => subcommand.is_open_telemetry_enabled(), - Command::NtxBuilder(subcommand) => subcommand.is_open_telemetry_enabled(), } { OpenTelemetry::Enabled } else { @@ -60,7 +55,6 @@ impl Command { Command::Rpc(rpc_command) => rpc_command.handle().await, Command::Store(store_command) => store_command.handle().await, Command::BlockProducer(block_producer_command) => block_producer_command.handle().await, - Command::NtxBuilder(ntx_builder) => ntx_builder.handle().await, } } } diff --git a/bin/ntx-builder/.env b/bin/ntx-builder/.env new file mode 100644 index 0000000000..7146228548 --- /dev/null +++ b/bin/ntx-builder/.env @@ -0,0 +1,12 @@ +# For more info use -h on the relevant commands: +# miden-ntx-builder start -h + +MIDEN_NODE_ENABLE_OTEL=true +MIDEN_NODE_DATA_DIRECTORY= +MIDEN_NODE_NTX_BUILDER_URL= +MIDEN_NODE_NTX_BUILDER_STORE_URL= +MIDEN_NODE_NTX_BUILDER_BLOCK_PRODUCER_URL= +MIDEN_NODE_NTX_BUILDER_VALIDATOR_URL= +MIDEN_NODE_NTX_BUILDER_NTX_PROVER_URL= +MIDEN_NODE_NTX_BUILDER_SCRIPT_CACHE_SIZE= +MIDEN_NODE_NTX_BUILDER_MAX_CYCLES= diff --git a/crates/ntx-builder/Cargo.toml b/bin/ntx-builder/Cargo.toml similarity index 80% rename from crates/ntx-builder/Cargo.toml rename to bin/ntx-builder/Cargo.toml index 184a539914..2c7d7dde2c 100644 --- a/crates/ntx-builder/Cargo.toml +++ b/bin/ntx-builder/Cargo.toml @@ -1,11 +1,12 @@ [package] -description = "Miden node's network transaction builder component" +authors.workspace = true +description = "Miden network transaction builder" edition.workspace = true homepage.workspace = true -keywords = ["miden", "node"] +keywords = ["miden", "ntx-builder"] license.workspace = true -name = "miden-node-ntx-builder" -readme = "README.md" +name = "miden-ntx-builder" +readme.workspace = true repository.workspace = true rust-version.workspace = true version.workspace = true @@ -18,9 +19,11 @@ doctest = false [dependencies] anyhow = { workspace = true } +clap = { features = ["env", "string"], workspace = true } diesel = { features = ["numeric", "sqlite"], workspace = true } diesel_migrations = { features = ["sqlite"], workspace = true } futures = { workspace = true } +humantime = { workspace = true } libsqlite3-sys = { workspace = true } miden-node-db = { workspace = true } miden-node-proto = { workspace = true } @@ -31,7 +34,7 @@ miden-remote-prover-client = { features = ["tx-prover"], workspace = true } miden-standards = { workspace = true } miden-tx = { features = ["concurrent"], workspace = true } thiserror = { workspace = true } -tokio = { features = ["rt-multi-thread"], workspace = true } +tokio = { features = ["macros", "net", "rt-multi-thread"], workspace = true } tokio-stream = { features = ["net"], workspace = true } tonic = { workspace = true } tonic-reflection = { workspace = true } diff --git a/crates/ntx-builder/build.rs b/bin/ntx-builder/build.rs similarity index 100% rename from crates/ntx-builder/build.rs rename to bin/ntx-builder/build.rs diff --git a/crates/ntx-builder/diesel.toml b/bin/ntx-builder/diesel.toml similarity index 100% rename from crates/ntx-builder/diesel.toml rename to bin/ntx-builder/diesel.toml diff --git a/crates/ntx-builder/src/actor/candidate.rs b/bin/ntx-builder/src/actor/candidate.rs similarity index 100% rename from crates/ntx-builder/src/actor/candidate.rs rename to bin/ntx-builder/src/actor/candidate.rs diff --git a/crates/ntx-builder/src/actor/execute.rs b/bin/ntx-builder/src/actor/execute.rs similarity index 100% rename from crates/ntx-builder/src/actor/execute.rs rename to bin/ntx-builder/src/actor/execute.rs diff --git a/crates/ntx-builder/src/actor/mod.rs b/bin/ntx-builder/src/actor/mod.rs similarity index 100% rename from crates/ntx-builder/src/actor/mod.rs rename to bin/ntx-builder/src/actor/mod.rs diff --git a/crates/ntx-builder/src/builder.rs b/bin/ntx-builder/src/builder.rs similarity index 100% rename from crates/ntx-builder/src/builder.rs rename to bin/ntx-builder/src/builder.rs diff --git a/crates/ntx-builder/src/chain_state.rs b/bin/ntx-builder/src/chain_state.rs similarity index 100% rename from crates/ntx-builder/src/chain_state.rs rename to bin/ntx-builder/src/chain_state.rs diff --git a/crates/ntx-builder/src/clients/block_producer.rs b/bin/ntx-builder/src/clients/block_producer.rs similarity index 100% rename from crates/ntx-builder/src/clients/block_producer.rs rename to bin/ntx-builder/src/clients/block_producer.rs diff --git a/crates/ntx-builder/src/clients/mod.rs b/bin/ntx-builder/src/clients/mod.rs similarity index 100% rename from crates/ntx-builder/src/clients/mod.rs rename to bin/ntx-builder/src/clients/mod.rs diff --git a/crates/ntx-builder/src/clients/store.rs b/bin/ntx-builder/src/clients/store.rs similarity index 100% rename from crates/ntx-builder/src/clients/store.rs rename to bin/ntx-builder/src/clients/store.rs diff --git a/crates/ntx-builder/src/clients/validator.rs b/bin/ntx-builder/src/clients/validator.rs similarity index 100% rename from crates/ntx-builder/src/clients/validator.rs rename to bin/ntx-builder/src/clients/validator.rs diff --git a/bin/node/src/commands/ntx_builder.rs b/bin/ntx-builder/src/commands/mod.rs similarity index 93% rename from bin/node/src/commands/ntx_builder.rs rename to bin/ntx-builder/src/commands/mod.rs index f889313474..a96a19d974 100644 --- a/bin/node/src/commands/ntx_builder.rs +++ b/bin/ntx-builder/src/commands/mod.rs @@ -3,14 +3,14 @@ use std::path::PathBuf; use std::time::Duration; use anyhow::Context; +use clap::Parser; use miden_node_utils::clap::duration_to_human_readable_string; use miden_node_utils::grpc::UrlExt; use tokio::net::TcpListener; use url::Url; -use super::ENV_ENABLE_OTEL; -use crate::commands::ENV_DATA_DIRECTORY; - +const ENV_ENABLE_OTEL: &str = "MIDEN_NODE_ENABLE_OTEL"; +const ENV_DATA_DIRECTORY: &str = "MIDEN_NODE_DATA_DIRECTORY"; const ENV_URL: &str = "MIDEN_NODE_NTX_BUILDER_URL"; const ENV_STORE_URL: &str = "MIDEN_NODE_NTX_BUILDER_STORE_URL"; const ENV_BLOCK_PRODUCER_URL: &str = "MIDEN_NODE_NTX_BUILDER_BLOCK_PRODUCER_URL"; @@ -23,7 +23,11 @@ const DEFAULT_IDLE_TIMEOUT: Duration = Duration::from_secs(5 * 60); const DEFAULT_SCRIPT_CACHE_SIZE: NonZeroUsize = NonZeroUsize::new(1000).unwrap(); const DEFAULT_MAX_CYCLES: u32 = 1 << 18; -#[derive(clap::Subcommand)] +// NTX BUILDER COMMAND +// ================================================================================================ + +#[derive(Parser)] +#[command(version, about, long_about = None)] pub enum NtxBuilderCommand { /// Starts the network transaction builder component. Start { @@ -133,7 +137,7 @@ impl NtxBuilderCommand { let database_filepath = data_directory.join("ntx-builder.sqlite3"); - let config = miden_node_ntx_builder::NtxBuilderConfig::new( + let config = miden_ntx_builder::NtxBuilderConfig::new( store_url, block_producer_url, validator_url, diff --git a/crates/ntx-builder/src/coordinator.rs b/bin/ntx-builder/src/coordinator.rs similarity index 100% rename from crates/ntx-builder/src/coordinator.rs rename to bin/ntx-builder/src/coordinator.rs diff --git a/crates/ntx-builder/src/db/migrations.rs b/bin/ntx-builder/src/db/migrations.rs similarity index 100% rename from crates/ntx-builder/src/db/migrations.rs rename to bin/ntx-builder/src/db/migrations.rs diff --git a/crates/ntx-builder/src/db/migrations/2026020900000_setup/down.sql b/bin/ntx-builder/src/db/migrations/2026020900000_setup/down.sql similarity index 100% rename from crates/ntx-builder/src/db/migrations/2026020900000_setup/down.sql rename to bin/ntx-builder/src/db/migrations/2026020900000_setup/down.sql diff --git a/crates/ntx-builder/src/db/migrations/2026020900000_setup/up.sql b/bin/ntx-builder/src/db/migrations/2026020900000_setup/up.sql similarity index 100% rename from crates/ntx-builder/src/db/migrations/2026020900000_setup/up.sql rename to bin/ntx-builder/src/db/migrations/2026020900000_setup/up.sql diff --git a/crates/ntx-builder/src/db/mod.rs b/bin/ntx-builder/src/db/mod.rs similarity index 100% rename from crates/ntx-builder/src/db/mod.rs rename to bin/ntx-builder/src/db/mod.rs diff --git a/crates/ntx-builder/src/db/models/account_effect.rs b/bin/ntx-builder/src/db/models/account_effect.rs similarity index 100% rename from crates/ntx-builder/src/db/models/account_effect.rs rename to bin/ntx-builder/src/db/models/account_effect.rs diff --git a/crates/ntx-builder/src/db/models/conv.rs b/bin/ntx-builder/src/db/models/conv.rs similarity index 100% rename from crates/ntx-builder/src/db/models/conv.rs rename to bin/ntx-builder/src/db/models/conv.rs diff --git a/crates/ntx-builder/src/db/models/mod.rs b/bin/ntx-builder/src/db/models/mod.rs similarity index 100% rename from crates/ntx-builder/src/db/models/mod.rs rename to bin/ntx-builder/src/db/models/mod.rs diff --git a/crates/ntx-builder/src/db/models/queries/accounts.rs b/bin/ntx-builder/src/db/models/queries/accounts.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/accounts.rs rename to bin/ntx-builder/src/db/models/queries/accounts.rs diff --git a/crates/ntx-builder/src/db/models/queries/chain_state.rs b/bin/ntx-builder/src/db/models/queries/chain_state.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/chain_state.rs rename to bin/ntx-builder/src/db/models/queries/chain_state.rs diff --git a/crates/ntx-builder/src/db/models/queries/mod.rs b/bin/ntx-builder/src/db/models/queries/mod.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/mod.rs rename to bin/ntx-builder/src/db/models/queries/mod.rs diff --git a/crates/ntx-builder/src/db/models/queries/note_scripts.rs b/bin/ntx-builder/src/db/models/queries/note_scripts.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/note_scripts.rs rename to bin/ntx-builder/src/db/models/queries/note_scripts.rs diff --git a/crates/ntx-builder/src/db/models/queries/notes.rs b/bin/ntx-builder/src/db/models/queries/notes.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/notes.rs rename to bin/ntx-builder/src/db/models/queries/notes.rs diff --git a/crates/ntx-builder/src/db/models/queries/tests.rs b/bin/ntx-builder/src/db/models/queries/tests.rs similarity index 100% rename from crates/ntx-builder/src/db/models/queries/tests.rs rename to bin/ntx-builder/src/db/models/queries/tests.rs diff --git a/crates/ntx-builder/src/db/schema.rs b/bin/ntx-builder/src/db/schema.rs similarity index 100% rename from crates/ntx-builder/src/db/schema.rs rename to bin/ntx-builder/src/db/schema.rs diff --git a/crates/ntx-builder/src/db/schema_hash.rs b/bin/ntx-builder/src/db/schema_hash.rs similarity index 100% rename from crates/ntx-builder/src/db/schema_hash.rs rename to bin/ntx-builder/src/db/schema_hash.rs diff --git a/crates/ntx-builder/src/lib.rs b/bin/ntx-builder/src/lib.rs similarity index 100% rename from crates/ntx-builder/src/lib.rs rename to bin/ntx-builder/src/lib.rs diff --git a/bin/ntx-builder/src/main.rs b/bin/ntx-builder/src/main.rs new file mode 100644 index 0000000000..1da9104521 --- /dev/null +++ b/bin/ntx-builder/src/main.rs @@ -0,0 +1,22 @@ +use clap::Parser; +use miden_node_utils::logging::OpenTelemetry; + +mod commands; + +// MAIN +// ================================================================================================ + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + let command = commands::NtxBuilderCommand::parse(); + + let otel = if command.is_open_telemetry_enabled() { + OpenTelemetry::Enabled + } else { + OpenTelemetry::Disabled + }; + + let _otel_guard = miden_node_utils::logging::setup_tracing(otel)?; + + command.handle().await +} diff --git a/crates/ntx-builder/src/server.rs b/bin/ntx-builder/src/server.rs similarity index 100% rename from crates/ntx-builder/src/server.rs rename to bin/ntx-builder/src/server.rs diff --git a/crates/ntx-builder/src/test_utils.rs b/bin/ntx-builder/src/test_utils.rs similarity index 100% rename from crates/ntx-builder/src/test_utils.rs rename to bin/ntx-builder/src/test_utils.rs diff --git a/compose/monitor.yml b/compose/monitor.yml index 6d31d2650e..2d8636aec9 100644 --- a/compose/monitor.yml +++ b/compose/monitor.yml @@ -1,6 +1,6 @@ services: monitor: - image: miden-network-monitor-image + image: miden-network-monitor pull_policy: if_not_present command: - miden-network-monitor diff --git a/crates/ntx-builder/README.md b/crates/ntx-builder/README.md deleted file mode 100644 index 92b3b524f5..0000000000 --- a/crates/ntx-builder/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Miden Network Transaction Builder - -This crate implements the Network Transaction Builder service for the Miden Node. - -## License -This project is [MIT licensed](../../LICENSE). \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 45b00d310d..acb9751d72 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -115,7 +115,7 @@ services: - "57291:57291" ntx-builder: - image: miden-node + image: miden-ntx-builder pull_policy: if_not_present volumes: - node-data:/data @@ -124,8 +124,7 @@ services: - OTEL_EXPORTER_OTLP_ENDPOINT=http://tempo:4317 - OTEL_SERVICE_NAME=ntx-builder command: - - miden-node - - ntx-builder + - miden-ntx-builder - start - --store.url=http://store:50002 - --block-producer.url=http://block-producer:50201 diff --git a/packaging/ntx-builder/miden-ntx-builder.service b/packaging/ntx-builder/miden-ntx-builder.service new file mode 100644 index 0000000000..ac986a1b15 --- /dev/null +++ b/packaging/ntx-builder/miden-ntx-builder.service @@ -0,0 +1,16 @@ +[Unit] +Description=Miden network transaction builder +Wants=network-online.target + +[Install] +WantedBy=multi-user.target + +[Service] +Type=exec +Environment="OTEL_SERVICE_NAME=miden-ntx-builder" +EnvironmentFile=/lib/systemd/system/miden-ntx-builder.env +ExecStart=/usr/bin/miden-ntx-builder start +WorkingDirectory=/opt/miden-ntx-builder +User=miden-ntx-builder +RestartSec=5 +Restart=always diff --git a/packaging/ntx-builder/postinst b/packaging/ntx-builder/postinst new file mode 100644 index 0000000000..382b7f9a1d --- /dev/null +++ b/packaging/ntx-builder/postinst @@ -0,0 +1,28 @@ +#!/bin/bash +# +# This is a postinstallation script so the service can be configured and started when requested. + +svc=miden-ntx-builder + +# user is expected by the systemd service file and `/opt/` is its working directory, +sudo adduser --disabled-password --disabled-login --shell /usr/sbin/nologin --quiet --system --no-create-home --home /nonexistent "$svc" + +# Working folder. +if [ -d "/opt/$svc" ] +then + echo "Directory /opt/$svc exists." +else + mkdir -p "/opt/$svc" +fi +sudo chown -R "$svc" "/opt/$svc" + +# Configuration folder +if [ -d "/etc/opt/$svc" ] +then + echo "Directory /etc/opt/$svc exists." +else + mkdir -p "/etc/opt/$svc" +fi +sudo chown -R "$svc" "/etc/opt/$svc" + +sudo systemctl daemon-reload diff --git a/packaging/ntx-builder/postrm b/packaging/ntx-builder/postrm new file mode 100644 index 0000000000..173e10d865 --- /dev/null +++ b/packaging/ntx-builder/postrm @@ -0,0 +1,12 @@ +#!/bin/bash +# +############### +# Remove miden-ntx-builder install +############## +svc=miden-ntx-builder + +sudo rm -rf "/lib/systemd/system/$svc.service" +sudo rm -rf "/etc/opt/$svc" +sudo deluser "$svc" + +sudo systemctl daemon-reload diff --git a/scripts/run-node.sh b/scripts/run-node.sh index 7414c6c2ea..05f9df1a0f 100755 --- a/scripts/run-node.sh +++ b/scripts/run-node.sh @@ -5,6 +5,7 @@ set -euo pipefail SKIP_BOOTSTRAP="${SKIP_BOOTSTRAP:-false}" BINARY="${MIDEN_NODE_BIN:-./target/debug/miden-node}" VALIDATOR_BINARY="${MIDEN_VALIDATOR_BIN:-./target/debug/miden-validator}" +NTX_BUILDER_BINARY="${MIDEN_NTX_BUILDER_BIN:-./target/debug/miden-ntx-builder}" KMS_KEY_ID="${KMS_KEY_ID:-}" if [[ -n "$KMS_KEY_ID" ]]; then AWS_REGION="${AWS_REGION:?error: AWS_REGION environment variable must be set when KMS_KEY_ID is set}" @@ -174,7 +175,7 @@ $BINARY rpc start \ PIDS+=($!) echo "Starting network transaction builder..." -$BINARY ntx-builder start \ +$NTX_BUILDER_BINARY start \ --store.url "http://127.0.0.1:50002" \ --block-producer.url "http://127.0.0.1:50201" \ --validator.url "http://127.0.0.1:50101" \ From d8a7b7edfa34d3017425c8a01ce66bd45d250994 Mon Sep 17 00:00:00 2001 From: sergerad Date: Mon, 11 May 2026 16:25:04 +1200 Subject: [PATCH 2/8] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9f6a2aea2..4bf38015d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - [BREAKING] Removed `CheckNullifiers` endpoint ([#2049](https://github.com/0xMiden/node/pull/2049)). - [BREAKING] `BlockRange.block_to` is now required for all RPC endpoints ([#2056](https://github.com/0xMiden/node/pull/2056)). - [BREAKING] Removed `miden-node validator` subcommand and created a separate `miden-validator` binary ([#2053](https://github.com/0xMiden/node/pull/2053)). +- [BREAKING] Removed `miden-node ntx-builder` subcommand and created a separate `miden-ntx-builder` binary ([#2067](https://github.com/0xMiden/node/pull/2067)). ## v0.14.10 (2026-05-29) From 6d4e418b6e4522c2555fae95109de7d20ba89c50 Mon Sep 17 00:00:00 2001 From: sergerad Date: Tue, 12 May 2026 09:14:42 +1200 Subject: [PATCH 3/8] Parameterize and dedupe publish-debian-all.yml --- .github/workflows/publish-debian-all.yml | 141 ++++------------------- 1 file changed, 24 insertions(+), 117 deletions(-) diff --git a/.github/workflows/publish-debian-all.yml b/.github/workflows/publish-debian-all.yml index b6bcf5cd93..fa414b020a 100644 --- a/.github/workflows/publish-debian-all.yml +++ b/.github/workflows/publish-debian-all.yml @@ -18,13 +18,26 @@ permissions: contents: read jobs: - publish-node: - name: Publish Node ${{ matrix.arch }} Debian + publish: + name: Publish ${{ matrix.component.name }} ${{ matrix.arch }} Debian permissions: contents: write strategy: matrix: arch: [amd64, arm64] + component: + - name: node + extra_deps: true + - name: prover + crate_dir: remote-prover + crate: miden-remote-prover + extra_deps: false + - name: validator + extra_deps: true + - name: ntx-builder + extra_deps: true + - name: network-monitor + extra_deps: false runs-on: labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} steps: @@ -33,123 +46,17 @@ jobs: with: fetch-depth: 0 persist-credentials: false - - uses: ./.github/actions/install-rocksdb - - uses: ./.github/actions/install-protobuf-compiler - - name: Build and Publish Node + - if: ${{ matrix.component.extra_deps }} + uses: ./.github/actions/install-rocksdb + - if: ${{ matrix.component.extra_deps }} + uses: ./.github/actions/install-protobuf-compiler + - name: Build and Publish ${{ matrix.component.name }} uses: ./.github/actions/debian with: github_token: ${{ secrets.GITHUB_TOKEN }} gitref: ${{ env.version }} - crate_dir: node - package: miden-node - packaging_dir: node - crate: miden-node - arch: ${{ matrix.arch }} - - publish-prover: - name: Publish Prover ${{ matrix.arch }} Debian - permissions: - contents: write - strategy: - matrix: - arch: [amd64, arm64] - runs-on: - labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - steps: - - name: Checkout repo - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - with: - fetch-depth: 0 - persist-credentials: false - - name: Build and Publish Prover - uses: ./.github/actions/debian - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - gitref: ${{ env.version }} - crate_dir: remote-prover - package: miden-prover - packaging_dir: prover - crate: miden-remote-prover - arch: ${{ matrix.arch }} - - publish-validator: - name: Publish Validator ${{ matrix.arch }} Debian - permissions: - contents: write - strategy: - matrix: - arch: [amd64, arm64] - runs-on: - labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - steps: - - name: Checkout repo - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - with: - fetch-depth: 0 - persist-credentials: false - - uses: ./.github/actions/install-rocksdb - - uses: ./.github/actions/install-protobuf-compiler - - name: Build and Publish Validator - uses: ./.github/actions/debian - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - gitref: ${{ env.version }} - crate_dir: validator - package: miden-validator - packaging_dir: validator - crate: miden-validator - arch: ${{ matrix.arch }} - - publish-ntx-builder: - name: Publish Ntx-Builder ${{ matrix.arch }} Debian - permissions: - contents: write - strategy: - matrix: - arch: [amd64, arm64] - runs-on: - labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - steps: - - name: Checkout repo - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - with: - fetch-depth: 0 - persist-credentials: false - - uses: ./.github/actions/install-rocksdb - - uses: ./.github/actions/install-protobuf-compiler - - name: Build and Publish Ntx-Builder - uses: ./.github/actions/debian - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - gitref: ${{ env.version }} - crate_dir: ntx-builder - package: miden-ntx-builder - packaging_dir: ntx-builder - crate: miden-ntx-builder - arch: ${{ matrix.arch }} - - publish-network-monitor: - name: Publish Network Monitor ${{ matrix.arch }} Debian - permissions: - contents: write - strategy: - matrix: - arch: [amd64, arm64] - runs-on: - labels: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - steps: - - name: Checkout repo - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - with: - fetch-depth: 0 - persist-credentials: false - - name: Build and Publish Network Monitor - uses: ./.github/actions/debian - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - gitref: ${{ env.version }} - crate_dir: network-monitor - package: miden-network-monitor - packaging_dir: network-monitor - crate: miden-network-monitor + crate_dir: ${{ matrix.component.crate_dir || matrix.component.name }} + package: miden-${{ matrix.component.name }} + packaging_dir: ${{ matrix.component.name }} + crate: ${{ matrix.component.crate || format('miden-{0}', matrix.component.name) }} arch: ${{ matrix.arch }} From 647ab67a14761be68988c40aca6763138727a52d Mon Sep 17 00:00:00 2001 From: sergerad Date: Tue, 12 May 2026 09:16:22 +1200 Subject: [PATCH 4/8] RM unnecessary separators --- bin/ntx-builder/src/commands/mod.rs | 3 --- bin/ntx-builder/src/main.rs | 3 --- 2 files changed, 6 deletions(-) diff --git a/bin/ntx-builder/src/commands/mod.rs b/bin/ntx-builder/src/commands/mod.rs index c474c61624..21f17146b7 100644 --- a/bin/ntx-builder/src/commands/mod.rs +++ b/bin/ntx-builder/src/commands/mod.rs @@ -23,9 +23,6 @@ const DEFAULT_IDLE_TIMEOUT: Duration = Duration::from_secs(5 * 60); const DEFAULT_SCRIPT_CACHE_SIZE: NonZeroUsize = NonZeroUsize::new(1000).unwrap(); const DEFAULT_MAX_CYCLES: u32 = 1 << 18; -// NTX BUILDER COMMAND -// ================================================================================================ - #[derive(Parser)] #[command(version, about, long_about = None)] pub enum NtxBuilderCommand { diff --git a/bin/ntx-builder/src/main.rs b/bin/ntx-builder/src/main.rs index 1da9104521..6c71a1060b 100644 --- a/bin/ntx-builder/src/main.rs +++ b/bin/ntx-builder/src/main.rs @@ -3,9 +3,6 @@ use miden_node_utils::logging::OpenTelemetry; mod commands; -// MAIN -// ================================================================================================ - #[tokio::main] async fn main() -> anyhow::Result<()> { let command = commands::NtxBuilderCommand::parse(); From a05f88d526c11a52c468c028a8329472575a72af Mon Sep 17 00:00:00 2001 From: sergerad Date: Tue, 12 May 2026 09:17:36 +1200 Subject: [PATCH 5/8] Fix envs --- bin/node/.env | 9 --------- bin/ntx-builder/.env | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/bin/node/.env b/bin/node/.env index cd3de70d82..30689fbb3d 100644 --- a/bin/node/.env +++ b/bin/node/.env @@ -33,12 +33,3 @@ MIDEN_NODE_VALIDATOR_LISTEN= MIDEN_NODE_VALIDATOR_GENESIS_CONFIG_FILE= MIDEN_NODE_VALIDATOR_KEY= MIDEN_NODE_VALIDATOR_KMS_KEY_ID= - -# NTX Builder -MIDEN_NODE_NTX_BUILDER_LISTEN= -MIDEN_NODE_NTX_BUILDER_STORE_URL= -MIDEN_NODE_NTX_BUILDER_BLOCK_PRODUCER_URL= -MIDEN_NODE_NTX_BUILDER_VALIDATOR_URL= -MIDEN_NODE_NTX_BUILDER_NTX_PROVER_URL= -MIDEN_NODE_NTX_BUILDER_SCRIPT_CACHE_SIZE= -MIDEN_NODE_NTX_BUILDER_MAX_CYCLES= diff --git a/bin/ntx-builder/.env b/bin/ntx-builder/.env index 7146228548..72f228ded4 100644 --- a/bin/ntx-builder/.env +++ b/bin/ntx-builder/.env @@ -3,7 +3,7 @@ MIDEN_NODE_ENABLE_OTEL=true MIDEN_NODE_DATA_DIRECTORY= -MIDEN_NODE_NTX_BUILDER_URL= +MIDEN_NODE_NTX_BUILDER_LISTEN= MIDEN_NODE_NTX_BUILDER_STORE_URL= MIDEN_NODE_NTX_BUILDER_BLOCK_PRODUCER_URL= MIDEN_NODE_NTX_BUILDER_VALIDATOR_URL= From 05fe9c61621147c2e29823f9432bf3507b963cbd Mon Sep 17 00:00:00 2001 From: sergerad Date: Tue, 12 May 2026 09:21:09 +1200 Subject: [PATCH 6/8] Fix validator envs --- bin/node/.env | 6 ------ bin/validator/.env | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/bin/node/.env b/bin/node/.env index 30689fbb3d..3ec5b4e82e 100644 --- a/bin/node/.env +++ b/bin/node/.env @@ -27,9 +27,3 @@ MIDEN_NODE_RPC_STORE_URL= MIDEN_NODE_RPC_BLOCK_PRODUCER_URL= MIDEN_NODE_RPC_VALIDATOR_URL= MIDEN_NODE_RPC_NTX_BUILDER_URL= - -# Validator -MIDEN_NODE_VALIDATOR_LISTEN= -MIDEN_NODE_VALIDATOR_GENESIS_CONFIG_FILE= -MIDEN_NODE_VALIDATOR_KEY= -MIDEN_NODE_VALIDATOR_KMS_KEY_ID= diff --git a/bin/validator/.env b/bin/validator/.env index c6eddf29bb..e9cafca7ed 100644 --- a/bin/validator/.env +++ b/bin/validator/.env @@ -3,7 +3,7 @@ MIDEN_NODE_ENABLE_OTEL=true MIDEN_NODE_DATA_DIRECTORY= -MIDEN_NODE_VALIDATOR_URL= +MIDEN_NODE_VALIDATOR_LISTEN= MIDEN_NODE_VALIDATOR_GENESIS_CONFIG_FILE= MIDEN_NODE_VALIDATOR_KEY= MIDEN_NODE_VALIDATOR_KMS_KEY_ID= From c9b64178db951cec7bb5b68df80fdbc32d90cb45 Mon Sep 17 00:00:00 2001 From: sergerad Date: Tue, 12 May 2026 09:23:21 +1200 Subject: [PATCH 7/8] Fix ntx-builder binary sh var --- scripts/run-node.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run-node.sh b/scripts/run-node.sh index 979ea5d261..5b346f7867 100755 --- a/scripts/run-node.sh +++ b/scripts/run-node.sh @@ -176,7 +176,7 @@ $BINARY rpc start \ PIDS+=($!) echo "Starting network transaction builder..." -$BINARY ntx-builder start \ +$NTX_BUILDER_BINARY start \ --listen "0.0.0.0:$NTX_BUILDER_PORT" \ --store.url "http://127.0.0.1:$STORE_NTX_BUILDER_PORT" \ --block-producer.url "http://127.0.0.1:$BLOCK_PRODUCER_PORT" \ From 5499cad99c255bd68bcd963b7ec3a31b44503792 Mon Sep 17 00:00:00 2001 From: sergerad Date: Wed, 13 May 2026 10:19:33 +1200 Subject: [PATCH 8/8] Update publish-crates.sh --- scripts/publish-crates.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/publish-crates.sh b/scripts/publish-crates.sh index b04fdd9bae..227b022922 100755 --- a/scripts/publish-crates.sh +++ b/scripts/publish-crates.sh @@ -31,10 +31,11 @@ miden-node-store miden-remote-prover miden-remote-prover-client miden-node-block-producer -miden-node-ntx-builder miden-node-rpc miden-node miden-network-monitor +miden-ntx-builder +miden-validator ) for crate in ${crates[@]}; do echo "Publishing $crate..."