You’ll need a blockchain RPC endpoint URL to test. You can use a public endpoint or provision one from Chainstack.
Your first benchmark
Choose your testing approach
Chainbench offers two ways to run load tests:
- Single method testing - Test a specific RPC method like
eth_blockNumber - Profile-based testing - Use pre-configured profiles with multiple weighted methods
Run your first test
Test the This command:
eth_blockNumber method with a quick 1-minute load test:- Tests the
eth_blockNumbermethod - Simulates 50 concurrent users
- Uses 2 worker processes
- Runs for 1 minute
- Operates in headless mode (no web UI)
- Automatically quits when finished
Replace
https://your-node-url with your actual blockchain node endpoint URL.Review the results
After the test completes, results are saved to the Key metrics include:
./results directory:- Request rates (requests per second)
- Response times (min, max, median, 95th percentile)
- Failure rates and error types
- Time-series data for visualization
Try web UI mode (optional)
For real-time monitoring, run without the Open your browser to
--headless flag:http://localhost:8089 and you’ll see the Locust web interface where you can:- Start/stop tests manually
- Adjust user count in real-time
- View live charts and statistics
- Download results in various formats
Understanding test parameters
Essential Parameters
The blockchain node RPC endpoint URL to test.Example:
https://ethereum-mainnet-rpc.allthatnode.comNumber of concurrent simulated users making requests.
Number of worker processes to distribute the load.
Duration of the test. Accepts formats like
30s, 5m, 1h, 12h.Mode Flags
Run without the web UI for automated/remote testing.
Automatically exit when the test completes (useful with
--headless).Exploring profiles
Instead of testing single methods, use pre-configured profiles that test multiple methods with realistic weights:- Ethereum
- BSC
- Polygon
- Generic EVM
Testing single methods
List all available RPC methods:Common use cases
Testing nodes with limited history
For nodes running in snap sync or other modes with limited block history:--use-latest-blocks flag ensures test data uses only recent blocks that the node has available.
Batch request testing
Test how your node handles batch JSON-RPC requests:Discovering supported methods
Before testing, discover which methods your endpoint supports:Running on a remote server
For long-running tests on remote servers, usenohup:
Test data sizes
Chainbench generates test data by fetching real blockchain data. The--size flag controls how many blocks are used:
| Size | Blocks | Use Case |
|---|---|---|
| XS | 10 | Quick tests, development |
| S | 100 | Default, general testing |
| M | 1,000 | Extended testing |
| L | 10,000 | Long-running tests |
| XL | 100,000 | Comprehensive stress tests |
Next steps
Core concepts
Learn about profiles, test data, and load patterns
Running tests
Detailed guide on running and configuring tests
Command reference
Complete reference for all commands and options
Custom profiles
Create custom profiles for your specific needs