CompareNodes provides independent and transparent RPC benchmarking services for blockchain nodes and endpoints. Our default regions are North America, Europe and Asia. Other regions are also available upon request.
A typical benchmark run lasts 15 minutes and dispatches between 1 million and 5 million RPC requests to capture successes, fails and timeouts for a mix of 23-25 popular RPC methods.
Related Materials
- Use Cases: RPC Consumers & RPC Sellers
- Example: AWS Managed Blockchain M5.4xlarge vs. C5.4xlarge
- Dashboard Documentation (request permission)
- 25 RPC Scenarios for EVM Protocols
- Sign-Up for RPC Benchmarking With These Steps
Supported Protocols & Networks
Protocol | Networks | Full-node mode | Archive mode |
Arbitrum One | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
Avalanche | C-chain Mainnet | 24 RPC scenarios | 24 RPC scenarios |
Base | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
Blast | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
BSC | Mainnet, Chapel | 24 RPC scenarios | 24 RPC scenarios |
Ethereum | Mainnet, Holesky, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
Mantle | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
opBNB | Mainnet, Testnet | 25 RPC scenarios | 25 RPC scenarios |
Optimism | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
Polygon | Mainnet, Amoy | 24 RPC scenarios | 24 RPC scenarios |
Scroll | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
Swellchain | Mainnet, Testnet | 24 RPC scenarios | 24 RPC scenarios |
Unichain | Sepolia | 24 RPC scenarios | 24 RPC scenarios |
ZKsync Era | Mainnet, Sepolia | 24 RPC scenarios | 24 RPC scenarios |
OTHER EVM Protocols | Please let us know |
25 RPC Scenarios for EVM Protocols
Percentage values are adjustable for each protocol-network. The table below shows the setup for a “generic” EVM network. Specific setup is determined during the consultation call (see the steps section on the bottom).
Method | Weight | RPC / sec @ 5k peak | Note |
eth_call | 0.3300 | 1650 | Executes Sol bytecode for eth_blockNumber() |
eth_blockNumber | 0.2100 | 1050 | Additional requests are made to update params for other methods |
eth_chainId | 0.1200 | 600 | — |
eth_getBalance | 0.0815 | 408 | Updated with new blockNumbers or offset for archive mode |
eth_getBlockByNumber | 0.0700 | 350 | Additional requests are made to update params for other methods |
eth_getTransactionReceipt | 0.0700 | 350 | Updated with new txHash to follow the top of the chain |
eth_getLogs | 0.0500 | 250 | Updated with new blockNumbers to follow the top of the chain |
eth_getTransactionByHash | 0.0200 | 100 | Updated with new txHash to follow the top of the chain |
eth_getTransactionCount | 0.0200 | 100 | Updated with new blockNumbers to follow the top of the chain |
eth_getCode | 0.0055 | 28 | — |
eth_gasPrice | 0.0050 | 25 | — |
eth_feeHistory | 0.0035 | 18 | — |
batch_eth_blockNumber | 0.0035 | 18 | 21 invocations of eth_blockNumber(); not applicable to Amazon Managed Blockchain |
eth_getStorageAt | 0.0035 | 18 | — |
eth_getBlockByHash | 0.0016 | 8 | Updated with new hash to follow the top of the chain |
web3_clientVersion | 0.0016 | 8 | — |
eth_estimateGas | 0.0016 | 8 | Executes Sol bytecode for eth_blockNumber() |
eth_getTransactionByBlockHashAndIndex | 0.0006 | 3 | Updated with new hash to follow the top of the chain |
eth_syncing | 0.0006 | 3 | — |
net_listening | 0.0006 | 3 | — |
net_version | 0.0006 | 3 | — |
eth_getBlockTransactionCountByHash | 0.0001 | 1 | Updated with new hash to follow the top of the chain |
eth_getBlockTransactionCountByNumber | 0.0001 | 1 | Updated with new blockNumbers to follow the top of the chain |
eth_maxPriorityFeePerGas | 0.0001 | 1 | — |
debug_traceCall | 0.0 | 0 | ad hoc |
RPC Benchmarking Setup Process & Steps
- Schedule a consultation with our CTO Simon using this Calendly link
- We will evaluate your goals and determine the appropriate benchmark setup parameters: RPC requests per second; regions; protocols; full-node vs. archive mode etc.
- Also, we will share pricing and timing information during this session.
- Schedule each of your benchmarks:
- You will receive a separate calendar link during the consultation call;
- When you pick your slot, you will provide to us endpoints/credentials;
- We will share with you our static IP addresses in case you need to setup firewall.
- We will run the benchmarks during the slots you selected.
- Receive private results:
- For each rpc benchmark run, we will create a dedicated dashboard in Grafana and share it with you & your team privately — we will send dedicated user credentials.
- After your review of the results, you will inform us if you wish that we publish your results on CompareNodes.com and/or on your domain via <iFrame>. Otherwise, the results will remain private and accessible to your credentials in Grafana.