Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
2db2fc1
feat: add worst_case_miner setup deployer
CPerezz Dec 23, 2025
b637c1c
feat: add URL loading support for deployment data and contracts
CPerezz Dec 23, 2025
d375706
refactor: remove local data files in favor of external URL loading
CPerezz Dec 24, 2025
7978753
fix: remove solc dependency and file writing for Docker compatibility
CPerezz Dec 31, 2025
03433cf
feat: add extcodesize_setup scenario for deploying EXTCODESIZE benchm…
CPerezz Jan 2, 2026
d3117a5
Merge pull request #7 from CPerezz/feat/storage-trie-brancher-scenario
CPerezz Jan 5, 2026
1bfbaf5
Merge branch 'statebloat' into feat/deployment_for_extcodesize_setup
CPerezz Jan 5, 2026
308620b
Merge pull request #8 from CPerezz/feat/deployment_for_extcodesize_setup
CPerezz Jan 5, 2026
98486bd
docs: format README tables
CPerezz Jan 5, 2026
bb28485
fix(erc20_bloater): fix progress reset on restart - units mismatch bug
CPerezz Jan 30, 2026
c5e6a14
Merge branch 'master' into pk910/statebloat-rebase
pk910 Feb 15, 2026
51041db
Merge pull request #9 from ethpandaops/pk910/statebloat-rebase
CPerezz Feb 16, 2026
f37e1f1
Merge branch 'master' into pk910/statebloat-rebase-2
pk910 Feb 27, 2026
72d92aa
Merge pull request #10 from ethpandaops/pk910/statebloat-rebase-2
CPerezz Feb 27, 2026
79ee420
Merge branch 'master' into pk910/statebload-rebase-3
pk910 Feb 27, 2026
de2fd4c
feat(storage-trie-brancher): add max_pending and filling_ratio options
CPerezz Feb 27, 2026
8230aa6
Merge pull request #11 from ethpandaops/pk910/statebload-rebase-3
CPerezz Feb 27, 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
54 changes: 27 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
[![License](https://img.shields.io/github/license/ethpandaops/spamoor)](LICENSE)
[![Docker](https://img.shields.io/docker/pulls/ethpandaops/spamoor)](https://hub.docker.com/r/ethpandaops/spamoor)

Spamoor is a robust transaction spamming tool designed for stress testing, network validation, and continuous transaction testing on Ethereum testnets. With 14+ different transaction scenarios and a powerful web-based daemon mode, it's the ultimate tool for Ethereum network testing.
Spamoor is a robust transaction spamming tool designed for stress testing, network validation, and continuous transaction testing on Ethereum testnets. With 14+ different transaction scenarios and a powerful web-based daemon mode, it's the ultimate tool for Ethereum network testing

## 🚀 Quick Start

Expand Down Expand Up @@ -37,10 +37,10 @@ spamoor run <yaml-file> [flags]
```

### 🔑 Required Parameters
| Parameter | Description |
|-----------|-------------|
| Parameter | Description |
| ----------- | ----------------------------------------------------- |
| `--privkey` | Private key for the root wallet (funds child wallets) |
| `--rpchost` | RPC endpoint(s) to send transactions to |
| `--rpchost` | RPC endpoint(s) to send transactions to |

### 🔧 Advanced Configuration

Expand Down Expand Up @@ -96,14 +96,14 @@ spamoor run <yaml-file> [flags]
```

### Flags
| Flag | Short | Description |
|------|-------|-------------|
| `--spammers` | `-s` | Indexes of spammers to run (e.g., `-s 0,2`). If not specified, runs all |
| `--privkey` | `-p` | Private key for the root wallet |
| `--rpchost` | `-h` | RPC endpoints (multiple allowed) |
| `--rpchost-file` | - | File containing RPC endpoints |
| `--verbose` | `-v` | Enable verbose logging |
| `--trace` | - | Enable trace logging |
| Flag | Short | Description |
| ---------------- | ----- | ----------------------------------------------------------------------- |
| `--spammers` | `-s` | Indexes of spammers to run (e.g., `-s 0,2`). If not specified, runs all |
| `--privkey` | `-p` | Private key for the root wallet |
| `--rpchost` | `-h` | RPC endpoints (multiple allowed) |
| `--rpchost-file` | - | File containing RPC endpoints |
| `--verbose` | `-v` | Enable verbose logging |
| `--trace` | - | Enable trace logging |

### Example Configuration
```yaml
Expand Down Expand Up @@ -170,21 +170,21 @@ spamoor-daemon [flags]

### ⚙️ Configuration Flags

| Flag | Short | Description | Default |
|------|-------|-------------|---------|
| `--db` | `-d` | Database file location | `spamoor.db` |
| `--rpchost` | `-h` | RPC endpoints (multiple allowed) | - |
| `--rpchost-file` | - | File containing RPC endpoints | - |
| `--privkey` | `-p` | Root wallet private key | - |
| `--port` | `-P` | Web UI port | `8080` |
| `--startup-spammer` | - | YAML file or URL with startup spammers | - |
| `--startup-delay` | - | Delay in seconds before starting spammers on startup | `30` |
| `--fulu-activation` | - | Unix timestamp of Fulu activation | `0` |
| `--without-batcher` | - | Disable transaction batching | `false` |
| `--disable-tx-metrics` | - | Disable transaction metrics collection | `false` |
| `--verbose` | `-v` | Enable verbose logging | `false` |
| `--debug` | - | Enable debug mode | `false` |
| `--trace` | - | Enable trace logging | `false` |
| Flag | Short | Description | Default |
| ---------------------- | ----- | ---------------------------------------------------- | ------------ |
| `--db` | `-d` | Database file location | `spamoor.db` |
| `--rpchost` | `-h` | RPC endpoints (multiple allowed) | - |
| `--rpchost-file` | - | File containing RPC endpoints | - |
| `--privkey` | `-p` | Root wallet private key | - |
| `--port` | `-P` | Web UI port | `8080` |
| `--startup-spammer` | - | YAML file or URL with startup spammers | - |
| `--startup-delay` | - | Delay in seconds before starting spammers on startup | `30` |
| `--fulu-activation` | - | Unix timestamp of Fulu activation | `0` |
| `--without-batcher` | - | Disable transaction batching | `false` |
| `--disable-tx-metrics` | - | Disable transaction metrics collection | `false` |
| `--verbose` | `-v` | Enable verbose logging | `false` |
| `--debug` | - | Enable debug mode | `false` |
| `--trace` | - | Enable trace logging | `false` |

### 🌐 Web Interface Features

Expand Down
4 changes: 4 additions & 0 deletions scenarios/scenarios.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ import (
replayeest "github.com/ethpandaops/spamoor/scenarios/replay-eest"
"github.com/ethpandaops/spamoor/scenarios/setcodetx"
erc20bloater "github.com/ethpandaops/spamoor/scenarios/statebloat/erc20_bloater"
extcodesizesetup "github.com/ethpandaops/spamoor/scenarios/statebloat/extcodesize_setup"
storagetriebrancher "github.com/ethpandaops/spamoor/scenarios/statebloat/storage_trie_brancher"
"github.com/ethpandaops/spamoor/scenarios/storagerefundtx"
"github.com/ethpandaops/spamoor/scenarios/storagespam"
"github.com/ethpandaops/spamoor/scenarios/taskrunner"
Expand Down Expand Up @@ -79,6 +81,8 @@ var nativeScenarioCategories = []*scenario.Category{
Description: "Scenarios specifically designed for state bloating",
Descriptors: []*scenario.Descriptor{
&erc20bloater.ScenarioDescriptor,
&extcodesizesetup.ScenarioDescriptor,
&storagetriebrancher.ScenarioDescriptor,
},
},
{
Expand Down
Loading