Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fd00e78
feat(benchmark): generate proven transactions
SantiagoPittella May 11, 2026
5b52f36
feat(benchmark): submit proven transactions
SantiagoPittella May 12, 2026
b01d087
feat(benchmark): improvements
SantiagoPittella May 12, 2026
c2d0a59
chore: make bp configurable + use block header information
SantiagoPittella May 13, 2026
1532a79
fix readme commands
SantiagoPittella May 13, 2026
a50b423
improve code organization
SantiagoPittella May 13, 2026
fcad87c
docs: add chagnglog entry
SantiagoPittella May 13, 2026
2f3425d
add remote prover support
SantiagoPittella May 15, 2026
d75ee70
update with latest changes in protocol
SantiagoPittella May 15, 2026
cedf661
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella May 20, 2026
2ae9cf9
chore: update with new proto messages
SantiagoPittella May 20, 2026
c9c38fa
fix: lint
SantiagoPittella May 20, 2026
00ea262
ci: add CI job and script to test benchmarks
SantiagoPittella May 20, 2026
064364d
ci: fix script
SantiagoPittella May 21, 2026
53f06dc
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella May 21, 2026
72a40a9
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella Jun 4, 2026
4137e3b
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella Jun 8, 2026
3a18f30
use Cargo.lock from main
SantiagoPittella Jun 8, 2026
b7d6501
chore: update bench-local with new architecture
SantiagoPittella Jun 8, 2026
44d133c
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella Jun 10, 2026
216bb4f
Fix CI
SantiagoPittella Jun 10, 2026
6887bd2
add remote prover to CI build
SantiagoPittella Jun 11, 2026
d608dcf
Merge branch 'next' into santiagopittella-benchmark-tps
SantiagoPittella Jun 11, 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
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,50 @@ jobs:
--data-directory ${{ env.DATA_DIR }} \
--iterations 10 --concurrency 1 sync-nullifiers --prefixes 10

# Smoke-tests `miden-benchmark` end-to-end against a locally bootstrapped node.
benchmark:
name: benchmark smoke
runs-on: warp-ubuntu-latest-x64-8x
timeout-minutes: 20
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Rustup
run: rustup toolchain install --no-self-update
- uses: WarpBuilds/rust-cache@9d0cc3090d9c87de74ea67617b246e978735b1a1 # v2.9.1
with:
shared-key: ${{ github.job }}
prefix-key: ${{ env.CACHE_PREFIX }}
save-if: ${{ env.SAVE_CACHE }}
- name: Build benchmark stack
run: |
cargo build --release --locked \
--bin miden-node \
--bin miden-validator \
--bin miden-ntx-builder \
--bin miden-remote-prover \
--bin miden-benchmark
- name: Run benchmark with N=1
env:
N_TXS: "1"
USE_REMOTE_PROVER: "0"
WAIT_BLOCKS: "30"
RUN_DIR: ${{ runner.temp }}/bench-local-run
run: |
export PATH="$PWD/target/release:$PATH"
./scripts/bench-local.sh
- name: Dump component logs on failure
if: failure()
run: |
set +e
for f in ${{ runner.temp }}/bench-local-run/logs/*.log; do
[ -f "$f" ] || continue
echo "::group::$(basename "$f")"
tail -n 200 "$f"
echo "::endgroup::"
done

# ===============================================================================================
# WASM related jobs
# ===============================================================================================
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ miden-node-stress-test-*
/accounts
/data

# Native benchmark runtime artifacts (data dir, logs, snapshots, proofs).
/node-data*
/logs
/snapshots
/benchmark-proofs

# Sqlite db files
*.sqlite3
*.sqlite3-shm
Expand Down
19 changes: 19 additions & 0 deletions Cargo.lock

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

9 changes: 7 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[workspace]
members = [
"bin/benchmark",
"bin/network-monitor",
"bin/node",
"bin/ntx-builder",
Expand Down Expand Up @@ -156,6 +157,10 @@ should_panic_without_expect = "allow" # We don't care about the specific panic
# Configure `cargo-typos`
[workspace.metadata.typos]
files.extend-exclude = [
"*.min.js", # Minified JS bundles (vendored htmx etc.).
"*.svg", # SVG files.
"*.min.js", # Minified JS bundles (vendored htmx etc.).
"*.svg", # SVG files.
"benchmark-proofs/", # miden-benchmark output.
"logs/", # Native benchmark process logs.
"node-data*/", # Native benchmark runtime data dir + any sibling clones (RocksDB LOGs etc.).
"snapshots/", # Snapshot tarballs used by the bench replay workflow.
]
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,10 @@ install-stress-test: ## Installs stress-test binary
install-network-monitor: ## Installs network monitor binary
cargo install --path bin/network-monitor --locked

.PHONY: install-benchmark
install-benchmark: ## Installs the benchmark binary
cargo install --path bin/benchmark --locked

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

.PHONY: local-network-build
Expand Down
32 changes: 32 additions & 0 deletions bin/benchmark/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[package]
authors.workspace = true
description = "A binary to run benchmarks of the Miden network"
edition.workspace = true
exclude.workspace = true
homepage.workspace = true
keywords = ["benchmark", "miden", "node"]
license.workspace = true
name = "miden-benchmark"
publish = true
readme.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[lints]
workspace = true

[dependencies]
anyhow = { workspace = true }
clap = { features = ["env", "string"], workspace = true }
fs-err = { workspace = true }
miden-node-proto = { workspace = true }
miden-protocol = { features = ["std", "testing"], workspace = true }
miden-remote-prover-client = { features = ["tx-prover"], workspace = true }
miden-standards = { workspace = true }
miden-tx = { features = ["concurrent", "std"], workspace = true }
rand = { workspace = true }
rayon = { workspace = true }
tokio = { features = ["full"], workspace = true }
tonic = { workspace = true }
url = { features = ["serde"], workspace = true }
Loading
Loading