| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Standalone load generator for ev-node stress testing. Talks to a spamoor-daemon sidecar via HTTP API.
ev-loadgen (this binary) --> spamoor-daemon --> ev-reth RPC
| |
reads matrix JSON manages wallets,
creates/polls spammers signs & sends txs
Runs a continuous scheduler with regular and burst workloads. Designed for long-running deployments.
ev-loadgen start --spamoor-url=http://localhost:8080Regular workloads fire immediately at startup, then repeat at --interval. Per-run tx count = tx-per-day / (24h / interval), overriding each matrix entry's BENCH_COUNT_PER_SPAMMER.
Bursts are randomly spaced throughout a rolling 24h window. Set --burst-per-day=0 (the default) to disable bursts entirely.
| Flag | Env | Default | Description |
|---|---|---|---|
| --tx-per-day | BENCH_TX_PER_DAY | 1000000 | sustained txs/day |
| --interval | BENCH_INTERVAL | 1h | regular workload frequency |
| --burst-tx-count | BENCH_BURST_TX_COUNT | 500000 | txs per burst |
| --burst-per-day | BENCH_BURST_PER_DAY | 0 | bursts per day, randomly spaced (0 = disabled) |
| --regular-matrix | BENCH_REGULAR_MATRIX | /home/ev/baseline.json | path to regular matrix JSON |
| --burst-matrix | BENCH_BURST_MATRIX | /home/ev/burst.json | path to burst matrix JSON |
Runs all entries from a matrix JSON file with probability filtering and sync waiting, then exits.
ev-loadgen run matrices/baseline.json --spamoor-url=http://localhost:8080Fires one burst workload immediately and exits.
ev-loadgen burst --spamoor-url=http://localhost:8080| Flag | Env | Default | Description |
|---|---|---|---|
| --tx-count | BENCH_BURST_TX_COUNT | 500000 | total transactions for the burst |
| --burst-matrix | BENCH_BURST_MATRIX | /home/ev/burst.json | path to burst matrix JSON |
--spamoor-url (or BENCH_SPAMOOR_URL env, default http://spamoor-daemon:8080)
docker run -d --name spamoor -p 8080:8080 \
ethpandaops/spamoor:latest /app/spamoor-daemon \
--privkey=<funded-private-key> \
--rpchost=http://<ev-reth-host>:8545 \
--port=8080 --startup-delay=0# build
cd apps/loadgen && go build -o ev-loadgen .
# one-shot matrix run
./ev-loadgen run matrices/baseline.json --spamoor-url=http://localhost:8080
# continuous daemon (~1M tx/day, no bursts)
./ev-loadgen start --spamoor-url=http://localhost:8080
# continuous daemon with bursts
./ev-loadgen start \
--spamoor-url=http://localhost:8080 \
--tx-per-day=500000 \
--interval=30m \
--burst-tx-count=100000 \
--burst-per-day=4Spins up both spamoor-daemon and loadgen together:
export BENCH_PRIVATE_KEY=<funded-private-key>
export BENCH_ETH_RPC_URL=http://<ev-reth-host>:8545
docker compose -f apps/loadgen/docker-compose.yml upEach entry specifies a spamoor scenario, tx counts, and optional probability:
{
"entries": [
{
"test_name": "EOATransfer",
"scenario": "eoatx",
"timeout": "15m",
"env": {
"BENCH_NUM_SPAMMERS": "4",
"BENCH_COUNT_PER_SPAMMER": "10500",
"BENCH_THROUGHPUT": "200",
"BENCH_MAX_PENDING": "50000",
"BENCH_MAX_WALLETS": "200",
"BENCH_BASE_FEE": "500",
"BENCH_TIP_FEE": "50"
}
}
]
}| Field | Description |
|---|---|
| scenario | spamoor scenario name (eoatx, gasburnertx, erc20tx, uniswap-swaps, etc.) |
| probability | 0.0-1.0, chance of running per invocation (omit = always run) |
| timeout | max duration per entry (default 15m) |
When using start or burst, BENCH_COUNT_PER_SPAMMER is overridden by the computed per-run count. The matrix value is used as-is by run.
# binary
cd apps/loadgen && go build -o ev-loadgen .
# docker image
docker build -f apps/loadgen/Dockerfile -t ev-loadgen:dev .
# via just
just build-loadgen
just docker-build-loadgen| Back | FazBrowse Home | New Git URL |