Reproducible evidence

Ethereum RPC latency benchmark

Warm localhost performance and cold upstream performance are different products. This benchmark measures them separately and validates every Ethereum response.

1.55ms

Warm finalized-read p50

2.84ms

Warm finalized-read p95

10,076

Sustained RPS in the published concurrency-32 audit

What was measured

TestWorkloadPublished result
Warm proof300 repeated eth_getBalance reads at an explicit finalized block300/300 valid; 1.55ms p50, 2.84ms p95, 3.32ms p99
Sustained load2,000 validated calls, concurrency 3210,076 RPS on the measured Mac
PrivacyForeground edge messages during 300 warm readsZero
CorrectnessCanonical safe head and JSON-RPC validationGate passed; zero RPC errors in proof window
Scope: These figures do not mean an uncached Internet request completes in 1.55ms. A first-ever or expired read still pays local processing, network, Worker, and upstream-node latency.

Run the shipped harness

curl -fsSL https://rpc-relay.pages.dev/install.sh | sh
rpc-relay-pro setup
rpc-relay-pro benchmark
rpc-relay-pro audit
Distribution verified July 22, 2026: the exact downloadable v1.2.0 archive was extracted outside the repository and its included rpc-relay-pro audit command passed. That run returned 300/300 valid warm reads, 2.33ms warm p95, 11,099 sustained warm-cache RPS, and zero added RPC errors. The running accelerator held a non-null multi-upstream canonical safe head; a subsequent two-validation observation window added zero failures.

How validity is checked

The harness rejects HTTP failures, JSON-RPC errors, malformed Ethereum results, missing local-cache headers, warm traffic leakage, and a missing canonical safe head. It reports client wall time separately from accelerator compute time.

Benchmark questions

Why can a cold call take tens or hundreds of milliseconds?

It must reach an upstream Ethereum node. Local caching removes that trip only after a safe result is available.

Does 10,076 RPS mean the Pro edge quota is 10,076 RPS?

No. It is localhost warm-cache capacity in one measured load test. The published Pro service limit is 300 calls per 10 seconds.