# Scaling RPC Nodes Under Rising Gas Limits Goal: We assume gas-limit increases will proceed. This note identifies the RPC workflows most affected and highlights client + infra work the EF should resource to mitigate the worst cases. ## 1) Context - More gas per block ⇒ more state writes per block ⇒ larger live state and higher state churn (cache misses, write amplification, compactions). - The effect is two-fold: 1. nodes are more under strain, and 2. EVM simulations are heavier (e.g. due to large contract storage). - A big operational pain point for providers is **archive capability** to serve real use-cases (e.g., ORU fault proofs). - Full archive nodes are heavy and brittle. As gas limits rise, they become harder to run and maintain (disk, IOPS, compactions, sync, recovery). - Goal: enable **vertical scaling** without “just run more full nodes.” --- ## 2) Workflows to prioritize ### A) Head-of-Chain Execution & Tracing **Methods:** `eth_call`, `eth_estimateGas`, `debug_traceCall`, `traceBlock`, `traceTransaction` **at head** **Why:** This is the **majority of traffic**. It hits the **latest state**. **Pain:** The only way to unburden existing nodes is to run more full nodes. **What we need:** a **lighter read-replica model** that shares a heavy state store, [Besu Fleet](https://consensys.io/blog/besu-fleet-the-future-of-rpc-scaling) style. ### B) Historical Execution & Tracing **Methods:** `eth_call`, `eth_estimateGas`, tracing **at block N** **Users:** explorers, analytics, debugging, incident response. **Pain:** Same as above. **What we need:** read-replica of partial/Erigon-style archive, which is harder. ### C) Recent-Window State Proofs **Methods:** `eth_getProof` for the **last X months** **Users:** optimistic rollups (fault proofs), some bridges. ORUs need ~**1 month** minimum; provider data shows **~4 months covers ~85%** of `eth_getProof` requests. **Pain**: The only way to serve these request is a full archive node, very heavy and brittle. **What we need:** partial archive nodes with configurable trie retention (X months). The idea is that a partial archive node with 4 months of trie history will still be more lightweight than a full archive node. ### D) Deep-History State Proofs (long tail) **Methods:** `eth_getProof` for **older blocks** (e.g., genesis–5M ≈ **~5%** of requests) **Users:** Not clear. **Pain:** The only way to serve these requests is a full archive node. **What we need:** external tooling to index trie history. Keep it off live nodes. ### E) Other `eth_getLogs` is a honorary mention but we believe it is largely solved by the new geth log indexer. --- ## 3) Assumptions & measurement Ask: Coordinate a short joint instrumentation effort (providers + clients) to keep these numbers current as gas limits move. - **Traffic mix telemetry:** % of QPS by method and by **age** (head vs recent window vs deep history). - **Latency SLOs:** target **p50/p95/p99** for (A) head execution/tracing and (B) historical execution/tracing under realistic load.