Skip to content

feat(iota-private-network): add benchmark mode and white flag env vars#11224

Open
piotrm50 wants to merge 2 commits intoconsensus/feat/transaction-certificateless-flow-featurefrom
consensus/feat/certificate-removal/benchmark-stress-tooling
Open

feat(iota-private-network): add benchmark mode and white flag env vars#11224
piotrm50 wants to merge 2 commits intoconsensus/feat/transaction-certificateless-flow-featurefrom
consensus/feat/certificate-removal/benchmark-stress-tooling

Conversation

@piotrm50
Copy link
Copy Markdown
Contributor

Description of change

Add tooling to support stress benchmarking against the Docker private network:

  • -b flag for bootstrap.sh: Injects deterministic benchmark gas accounts (from GenesisConfig::benchmark_gas_keys() with seed 0) into the genesis template and generates a benchmark.keystore with matching private keys. This allows the stress binary to run against the Docker network in remote mode without needing faucet funding.

  • White flag env vars in docker-compose.yaml: Adds IOTA_PROTOCOL_CONFIG_OVERRIDE_ENABLE and IOTA_PROTOCOL_CONFIG_FEATURE_FLAGS_OVERRIDE_ENABLE_WHITE_FLAG_FLOW as passthrough env vars (defaulting to off). This allows toggling the white flag (pcool) flow without rebuilding Docker images.

  • README update: Documents the benchmark mode usage with example stress commands.

Links to any relevant issues

Related to #11159

How the change has been tested

  • Basic tests (linting, compilation, formatting, unit/integration tests)
  • Patch-specific tests (correctness, functionality coverage)
  • Benchmarked locally (macOS Docker) and on ressims server with geo-distributed latencies
  • Verified benchmark keystore generation produces correct deterministic keys
  • Verified white flag env var toggle works (confirmed via validator logs)

@piotrm50 piotrm50 requested review from a team as code owners April 10, 2026 11:46
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

6 Skipped Deployments
Project Deployment Actions Updated (UTC)
apps-backend Ignored Ignored Preview Apr 16, 2026 11:39pm
apps-ui-kit Ignored Ignored Preview, Comment Apr 16, 2026 11:39pm
iota-evm-bridge Ignored Ignored Preview Apr 16, 2026 11:39pm
iota-multisig-toolkit Ignored Ignored Preview Apr 16, 2026 11:39pm
rebased-explorer Ignored Ignored Preview Apr 16, 2026 11:39pm
wallet-dashboard Ignored Ignored Preview Apr 16, 2026 11:39pm

Request Review

@iota-ci iota-ci added consensus Issues related to the Core Consensus team core-protocol labels Apr 10, 2026
@filipdulic filipdulic force-pushed the consensus/feat/transaction-certificateless-flow-feature branch from 233e7b5 to c126048 Compare April 10, 2026 15:47
@filipdulic filipdulic requested review from a team as code owners April 10, 2026 15:47
@filipdulic filipdulic force-pushed the consensus/feat/transaction-certificateless-flow-feature branch from c126048 to fc411c9 Compare April 10, 2026 16:00
@piotrm50 piotrm50 force-pushed the consensus/feat/certificate-removal/benchmark-stress-tooling branch from 7b7b76e to 39550db Compare April 10, 2026 18:10
@piotrm50 piotrm50 removed request for a team April 10, 2026 18:31
@piotrm50 piotrm50 force-pushed the consensus/feat/transaction-certificateless-flow-feature branch from fc411c9 to 15b02d4 Compare April 10, 2026 18:59
@piotrm50 piotrm50 force-pushed the consensus/feat/certificate-removal/benchmark-stress-tooling branch from 39550db to 0dd1ad5 Compare April 10, 2026 19:01
@piotrm50 piotrm50 force-pushed the consensus/feat/transaction-certificateless-flow-feature branch from 15b02d4 to 35e82ca Compare April 15, 2026 12:36
@piotrm50 piotrm50 force-pushed the consensus/feat/certificate-removal/benchmark-stress-tooling branch 2 times, most recently from 8abd373 to bb3a606 Compare April 16, 2026 12:21
Add `-b` flag to bootstrap.sh that injects deterministic benchmark gas
accounts (from GenesisConfig::benchmark_gas_keys) into the genesis
template and generates a benchmark.keystore for use with the stress
tool against a running Docker network.

Add protocol config override env vars to docker-compose.yaml so the
white flag (pcool) flow can be toggled without rebuilding images.

Update README with benchmark mode usage instructions.
Add comment noting that the protocol config override env vars in
docker-compose.yaml can be removed once white flag flow is enabled
by default in the protocol config on develop.
@piotrm50 piotrm50 force-pushed the consensus/feat/certificate-removal/benchmark-stress-tooling branch from bb3a606 to 52d5b95 Compare April 16, 2026 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consensus Issues related to the Core Consensus team core-protocol

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Benchmark pcool vs certificate flow: transaction latency and throughput on local network

4 participants