From 8d4542aac65d53634f2914c1debf5f2db1b5bddc Mon Sep 17 00:00:00 2001 From: Mirko von Leipzig <48352201+Mirko-von-Leipzig@users.noreply.github.com> Date: Mon, 31 Aug 2026 17:49:34 +0200 Subject: [PATCH 1/4] Miden note transport skeleton --- .github/pull_request_template.md | 2 +- .github/workflows/docker.yml | 1 + Cargo.lock | 4 +++ Cargo.toml | 1 + Dockerfile | 2 ++ Makefile | 27 +++++++++++++++++++- bin/note-transport/Cargo.toml | 15 ++++++++++++ bin/note-transport/src/main.rs | 1 + scripts/publish-crates.sh | 42 -------------------------------- xtask/src/changelog.rs | 1 + xtask/src/changelog/render.rs | 6 +++-- xtask/src/changelog/tests.rs | 13 ++++++++++ 12 files changed, 69 insertions(+), 46 deletions(-) create mode 100644 bin/note-transport/Cargo.toml create mode 100644 bin/note-transport/src/main.rs delete mode 100755 scripts/publish-crates.sh diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 86e2470530..5cfc39b2c6 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -24,7 +24,7 @@ changelog = "none" reason = "Internal change only." ``` -Allowed scopes: rpc, protocol, docs, node, network-monitor, ntx-builder, prover, validator, internal, general +Allowed scopes: rpc, protocol, docs, node, note-transport, network-monitor, ntx-builder, prover, validator, internal, general Allowed impacts: breaking, migration, added, changed, fixed, removed, deprecated --> diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6e3631436a..0d701d9efd 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -101,6 +101,7 @@ jobs: [ {"component":"node","bin":"miden-node","port":57291}, {"component":"validator","bin":"miden-validator","port":50101}, + {"component":"note-transport","bin":"miden-note-transport","port":57292}, {"component":"ntx-builder","bin":"miden-ntx-builder","port":50301}, {"component":"remote-prover","bin":"miden-remote-prover","port":50051}, {"component":"network-monitor","bin":"miden-network-monitor","port":3000}, diff --git a/Cargo.lock b/Cargo.lock index 62607fc410..2de13cb46c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4468,6 +4468,10 @@ dependencies = [ "url", ] +[[package]] +name = "miden-note-transport" +version = "0.16.0-rc.3" + [[package]] name = "miden-note-transport-proto" version = "0.5.0-rc.2" diff --git a/Cargo.toml b/Cargo.toml index 968a34e429..53e9510758 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ members = [ "bin/large-account-benchmark", "bin/network-monitor", "bin/node", + "bin/note-transport", "bin/ntx-builder", "bin/remote-prover", "bin/stress-test", diff --git a/Dockerfile b/Dockerfile index 72afa40491..deb7641c03 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,6 +108,7 @@ RUN --mount=type=cache,sharing=shared,id=cargo-registry-local-${TARGETARCH},targ cargo build --release --locked --jobs "$JOBS" \ --bin miden-node \ --bin miden-validator \ + --bin miden-note-transport \ --bin miden-ntx-builder \ --bin miden-network-monitor \ --bin miden-remote-prover \ @@ -115,6 +116,7 @@ RUN --mount=type=cache,sharing=shared,id=cargo-registry-local-${TARGETARCH},targ mkdir -p /app/bin && \ cp /app/target/release/miden-node \ /app/target/release/miden-validator \ + /app/target/release/miden-note-transport \ /app/target/release/miden-ntx-builder \ /app/target/release/miden-network-monitor \ /app/target/release/miden-remote-prover \ diff --git a/Makefile b/Makefile index 7ba3f7eb1d..79cb0e8326 100644 --- a/Makefile +++ b/Makefile @@ -154,6 +154,10 @@ install-node: ## Installs node install-validator: ## Installs validator cargo install --path bin/validator --locked +.PHONY: install-note-transport +install-note-transport: ## Installs note transport + cargo install --path bin/note-transport --locked + .PHONY: install-ntx-builder install-ntx-builder: ## Installs ntx-builder cargo install --path bin/ntx-builder --locked @@ -214,7 +218,14 @@ local-network-logs: ## Follows logs for the local development network $(DOCKER_COMMAND) compose $(COMPOSE_OVERRIDE_ARGS) $(COMPOSE_PROFILE_ARGS) logs -f .PHONY: docker-build -docker-build: docker-build-node docker-build-validator docker-build-ntx-builder docker-build-monitor docker-build-remote-prover docker-build-benchmark ## Builds all Docker images +docker-build: ## Builds all Docker images +docker-build: docker-build-node \ + docker-build-validator \ + docker-build-note-transport \ + docker-build-ntx-builder \ + docker-build-monitor \ + docker-build-remote-prover \ + docker-build-benchmark .PHONY: docker-build-node docker-build-node: ## Builds the Miden node using Docker @@ -244,6 +255,20 @@ docker-build-validator: ## Builds the Miden validator using Docker --build-arg PORT=50101 \ -t miden-validator . +.PHONY: docker-build-note-transport +docker-build-note-transport: ## Builds the Miden note transport service using Docker + @CREATED=$$(date -u +'%Y-%m-%dT%H:%M:%SZ') && \ + VERSION="$(DOCKER_VERSION)" && \ + COMMIT=$$(git rev-parse HEAD) && \ + $(DOCKER_COMMAND) build $(DOCKER_PULL_ARG) $(DOCKER_PLATFORM_ARG) \ + --build-arg CREATED="$$CREATED" \ + --build-arg VERSION="$$VERSION" \ + --build-arg COMMIT="$$COMMIT" \ + --build-arg BUILDER="$(DOCKER_BUILDER)" \ + --build-arg BIN=miden-note-transport \ + --build-arg PORT=57292 \ + -t miden-note-transport . + .PHONY: docker-build-ntx-builder docker-build-ntx-builder: ## Builds the Miden network transaction builder using Docker @CREATED=$$(date -u +'%Y-%m-%dT%H:%M:%SZ') && \ diff --git a/bin/note-transport/Cargo.toml b/bin/note-transport/Cargo.toml new file mode 100644 index 0000000000..3e40aa4aec --- /dev/null +++ b/bin/note-transport/Cargo.toml @@ -0,0 +1,15 @@ +[package] +authors.workspace = true +description = "Miden Note Transport Service" +edition.workspace = true +homepage.workspace = true +keywords = ["messaging", "miden"] +license.workspace = true +name = "miden-note-transport" +readme.workspace = true +repository.workspace = true +rust-version.workspace = true +version.workspace = true + +[lints] +workspace = true diff --git a/bin/note-transport/src/main.rs b/bin/note-transport/src/main.rs new file mode 100644 index 0000000000..f328e4d9d0 --- /dev/null +++ b/bin/note-transport/src/main.rs @@ -0,0 +1 @@ +fn main() {} diff --git a/scripts/publish-crates.sh b/scripts/publish-crates.sh deleted file mode 100755 index 29ae1c3634..0000000000 --- a/scripts/publish-crates.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -# Script to publish all miden-node crates to crates.io. -# Usage: ./publish-crates.sh [args] -# -# E.G: ./publish-crates.sh -# ./publish-crates.sh --dry-run - -set -e - -# Check -credentials=~/.cargo/credentials.toml -if [ ! -f "$credentials" ]; then - red="\033[0;31m" - echo "${red}WARNING: $credentials not found. See https://doc.rust-lang.org/cargo/reference/publishing.html." - echo "\033[0m" -fi - -# Checkout -echo "Checking out main branch..." -git checkout main -git pull origin main - -# Publish -echo "Publishing crates..." -crates=( -miden-node-utils -miden-node-proto-build -miden-node-proto -miden-node-store -miden-remote-prover -miden-node-block-producer -miden-node-rpc -miden-node -miden-network-monitor -miden-ntx-builder -miden-validator -) -for crate in ${crates[@]}; do - echo "Publishing $crate..." - cargo publish -p "$crate" $@ -done diff --git a/xtask/src/changelog.rs b/xtask/src/changelog.rs index 85d3ddf5d0..85104f57c1 100644 --- a/xtask/src/changelog.rs +++ b/xtask/src/changelog.rs @@ -36,6 +36,7 @@ enum Scope { Protocol, Docs, Node, + NoteTransport, NetworkMonitor, NtxBuilder, Prover, diff --git a/xtask/src/changelog/render.rs b/xtask/src/changelog/render.rs index 98953cf012..47439dcfbe 100644 --- a/xtask/src/changelog/render.rs +++ b/xtask/src/changelog/render.rs @@ -108,7 +108,7 @@ fn append_callout_entry(notes: &mut String, entry: &ReleaseNoteEntry) { } impl Scope { - const fn sort_order() -> [Self; 10] { + const fn sort_order() -> [Self; 11] { [ Self::General, Self::Protocol, @@ -117,6 +117,7 @@ impl Scope { Self::Prover, Self::NtxBuilder, Self::Validator, + Self::NoteTransport, Self::NetworkMonitor, Self::Docs, Self::Internal, @@ -134,6 +135,7 @@ impl std::fmt::Display for Scope { Self::Prover => "Prover", Self::NtxBuilder => "NTX Builder", Self::Validator => "Validator", + Self::NoteTransport => "Note Transport", Self::NetworkMonitor => "Network Monitor", Self::Docs => "Docs", Self::Internal => "Internal", @@ -173,7 +175,7 @@ impl std::fmt::Display for Impact { } } -const SCOPE_ORDER: [Scope; 10] = Scope::sort_order(); +const SCOPE_ORDER: [Scope; 11] = Scope::sort_order(); #[cfg(test)] mod tests { diff --git a/xtask/src/changelog/tests.rs b/xtask/src/changelog/tests.rs index c78ddfb989..3686d312f7 100644 --- a/xtask/src/changelog/tests.rs +++ b/xtask/src/changelog/tests.rs @@ -106,6 +106,19 @@ description = "Fixed release automation metadata." verify_pr_body(&body).unwrap(); } +#[test] +fn accepts_note_transport_scope() { + let body = valid_body( + r#"[[entry]] +scope = "note-transport" +impact = "added" +description = "Added the note transport service." +"#, + ); + + verify_pr_body(&body).unwrap(); +} + #[test] fn accepts_no_changelog_marker() { let body = valid_body( From 8461a0debea3c85a620440565e95c3e6749d62a7 Mon Sep 17 00:00:00 2001 From: Mirko von Leipzig <48352201+Mirko-von-Leipzig@users.noreply.github.com> Date: Thu, 3 Sep 2026 13:57:24 +0200 Subject: [PATCH 2/4] Fix lockfile --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index b56ddd08fa..ad515b70d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4470,7 +4470,7 @@ dependencies = [ [[package]] name = "miden-note-transport" -version = "0.16.0-rc.3" +version = "0.16.0-rc.5" [[package]] name = "miden-note-transport-proto" From 63ccb46be4928fc60551a157371d8ea61a3588cd Mon Sep 17 00:00:00 2001 From: Mirko von Leipzig <48352201+Mirko-von-Leipzig@users.noreply.github.com> Date: Thu, 3 Sep 2026 14:06:52 +0200 Subject: [PATCH 3/4] Emit kache stats. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 31ff768175..1beea36d47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -119,6 +119,7 @@ RUN --mount=type=cache,sharing=locked,id=cargo-registry-${TARGETARCH},target=/us /app/target/release/miden-remote-prover \ /app/target/release/miden-benchmark \ /app/bin/ && \ + kache stats && \ rm -rf /app/target && \ kache gc From 337fb479de4555bb9e11a1bcf56f8347686ec5cd Mon Sep 17 00:00:00 2001 From: Mirko von Leipzig <48352201+Mirko-von-Leipzig@users.noreply.github.com> Date: Thu, 3 Sep 2026 14:09:08 +0200 Subject: [PATCH 4/4] Emit summary --- .github/workflows/docker.yml | 10 +++++++++- Dockerfile | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 47d5aaf598..25acef9cf6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -195,10 +195,18 @@ jobs: context: . push: false file: ./Dockerfile - target: builder + target: build-report platforms: ${{ matrix.platform }} profile-name: ${{ vars.WARPBUILD_DOCKER_BUILDER_PROFILE }} pull: true + outputs: type=local,dest=${{ runner.temp }}/kache-report + + - name: Add Kache cache summary + run: | + { + echo "## ${{ matrix.platform }}" + cat "${RUNNER_TEMP}/kache-report/kache-report.md" + } >> "${GITHUB_STEP_SUMMARY}" dry-run-docker: name: Validate ${{ matrix.component }} image diff --git a/Dockerfile b/Dockerfile index 1beea36d47..b0ed2d5291 100644 --- a/Dockerfile +++ b/Dockerfile @@ -120,9 +120,13 @@ RUN --mount=type=cache,sharing=locked,id=cargo-registry-${TARGETARCH},target=/us /app/target/release/miden-benchmark \ /app/bin/ && \ kache stats && \ + kache report --format github --output /app/kache-report.md && \ rm -rf /app/target && \ kache gc +FROM scratch AS build-report +COPY --from=builder /app/kache-report.md /kache-report.md + # Baseline runtime image with runtime dependencies installed. FROM debian:${DEBIAN_RELEASE}-slim AS runtime-base RUN apt-get update && \