# Ethereum Benchmarks

### **Providers included**

* Nodies
* Blast API
* Infura
* Alchemy

### RPC Method Tested

`eth_getBlockByNumber`

### Flood Command

`flood eth_getBlockByNumber <endpoint1> <endpoint2> <endpoint3> <endpoint4> <endpoint5> --rates 10 100 1000 10000 --duration 30`

### **Benchmark Summary**

Benchmarking the Ethereum mainnet endpoints across various request loads reveals the following observations:

* **P50 Latency**: Nodies consistently showcased optimal performance, maintaining sub-10ms latency even at the highest request rate of 10,000 rps. BlastAPI also demonstrated commendable latencies, particularly from 100 to 1,000 rps. Infura's latency rose drastically to nearly 77.7 seconds. Alchemy maintained latencies between 106ms and 131ms.
* **P90 Latency**: Nodies remained the top performer with its latency under 20ms across all request loads, except at 10,000 rps where it still remained below 4.5 seconds. BlastAPI and Alchemy demonstrated similar trends, though BlastAPI consistently exhibited lower latencies. Infura's latency surged to 85.9 seconds at 10,000 rps.&#x20;
* **P99 Latency**: The differences become more pronounced. Nodies' performance remained under 24.3 seconds even at the highest load. BlastAPI and Alchemy showed relatively low latencies compared Infura. Notably, Infura's latency at 10,000 rps was close to 89 seconds.

In conclusion, the Nodies endpoint demonstrated top-notch performance across all percentiles and request loads. BlastAPI also fared well, followed by Alchemy. Infura's performance, especially at the P50 and P90 percentiles for 10,000 rps, requires attention due to its extraordinarily high latency.

### Latency Benchmarks

**Metrics**: Latency percentiles (P50, P90, P99) against load rates (10, 100, 1000, and 10000 rps).\
\
**P50 Latency (in ms, lower is better):**

<table><thead><tr><th>Rate (rps)</th><th>Alchemy</th><th>BlastAPI</th><th>Infura</th><th>Nodies</th><th data-hidden>Grove</th></tr></thead><tbody><tr><td>10</td><td>117.363</td><td>27.781</td><td>103.125</td><td>8.920</td><td>30.663</td></tr><tr><td>100</td><td>112.768</td><td>9.051</td><td>96.685</td><td>8.247</td><td>25.850</td></tr><tr><td>1,000</td><td>106.054</td><td>9.440</td><td>98.897</td><td>7.823</td><td>25.236</td></tr><tr><td>10,000</td><td>130.745</td><td>112.028</td><td>77680.280</td><td>165.787</td><td>3826.537</td></tr></tbody></table>

**P90 Latency (in ms, lower is better):**

| Rate (rps) | Alchemy | BlastAPI | Infura    | Nodies   | Grove     |
| ---------- | ------- | -------- | --------- | -------- | --------- |
| 10         | 132.747 | 58.542   | 137.230   | 17.094   | 45.268    |
| 100        | 122.150 | 21.912   | 102.596   | 10.637   | 37.459    |
| 1,000      | 119.703 | 16.032   | 131.296   | 11.265   | 37.298    |
| 10,000     | 179.931 | 159.137  | 85865.594 | 4473.021 | 21106.584 |

**P99 Latency (in ms. lower is better):**

| Rate (rps) | Alchemy  | BlastAPI | Infura    | Nodies    | Grove     |
| ---------- | -------- | -------- | --------- | --------- | --------- |
| 10         | 184.018  | 92.841   | 270.613   | 32.245    | 78.539    |
| 100        | 380.943  | 51.079   | 460.038   | 13.988    | 71.516    |
| 1,000      | 376.071  | 33.736   | 879.284   | 18.376    | 75.879    |
| 10,000     | 1426.869 | 1108.877 | 88990.159 | 24312.414 | 30004.877 |

{% file src="/files/c0eiy0QmTg6CV4Cg4GBL" %}
Full report includes more indepth benchmarks such as success rates, throughput, etc.
{% endfile %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nodies.app/performance-benchmarks/ethereum-benchmarks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
