Repository navigation
Expand file tree
/
Copy pathkusama-rpc.yml
More file actions
135 lines (121 loc) · 9.58 KB
/
Copy pathkusama-rpc.yml
File metadata and controls
135 lines (121 loc) · 9.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# OpenChainBench. Bench № 185
slug: kusama-rpc
number: "185"
title: Fastest free Kusama RPC, live no-key endpoint latency
seo_title: "Fastest free Kusama RPC 2026"
seo_description: "{{best_name}} leads free Kusama RPC at {{best_p50}} (chain_getHeader p50, 24h). 6 no-key providers measured every 60s from 3 regions."
subtitle: HTTP round-trip latency for chain_getHeader against every free, no-key public Kusama relay-chain endpoint, audited every 60 seconds from 3 regions.
category: RPCs
status: live
metric: RPC latency
unit: ms
higher_is_better: false
seo_intro: |
Kusama is Polkadot's canary network, a live production relay chain (KSM token) where new features ship before Polkadot mainnet. Substrate-based, ~6 s block time, same Substrate JSON-RPC wire protocol as Polkadot. Six keyless endpoints are probed continuously: PublicNode, OnFinality, dRPC, IBP Network, Dwellir, and 1RPC.
abstract: |
Per-chain member of the RPC latency cluster, extended to Kusama.
We measure the round-trip latency of a single, identical JSON-RPC call
(`chain_getHeader`) against every no-key public Kusama relay-chain endpoint
that sustains continuous probing, 6 providers at launch,
every 60 seconds, from us-east, eu-west and Singapore. The harness
classifies every response (ok / http_err / jsonrpc_err / stale /
timeout) with a relay-chain-scaled staleness gap (40 blocks). The
cross-chain view lives on the parent `rpc-capabilities` benchmark;
this page is the Kusama-scoped answer with per-region breakdowns as a
first-class dimension.
methodology:
- "Cadence: every 60 seconds per provider, from each of 3 probe regions (us-east Virginia, eu-west Amsterdam, sgp Singapore). Headline p50/p90/p99 aggregate across all 3 regions via Prometheus `avg(quantile_over_time(...))`; per-region breakdowns are first-class on this page via the region tabs."
- "Payload: `{\"jsonrpc\":\"2.0\",\"id\":<rotating>,\"method\":\"chain_getHeader\",\"params\":[]}`. Plain HTTP POST, identical for every endpoint, no API key in any request."
- "Latency: client-side round-trip delta in milliseconds, exposed as both a gauge and a histogram (buckets 50 ms to 10 s), so percentiles are computed via Prometheus `quantile_over_time` over the last 24 hours."
- "Call-result classification: `ok` (HTTP 200 + parsable hex block number), `http_err`, `jsonrpc_err`, `stale` (more than 40 relay blocks behind the cross-provider tip), `timeout`."
- "This page is part of the per-chain RPC cluster derived from the cross-chain [rpc-capabilities](https://openchainbench.com/benchmarks/rpc-capabilities) benchmark; the identical harness, cadence and exclusion rules apply on every chain."
- "Chain scope: every query on this page is pinned to `chain=\"kusama\"`. Provider coverage at launch: 6 no-key endpoints."
findings:
- "{{best_name}} currently leads free Kusama RPC at {{best_p50}} (`chain_getHeader` p50, 24h) across 6 measured providers."
faq:
- q: "What is the fastest free Kusama RPC right now?"
a: "{{best_name}} currently leads at {{best_p50}} (`chain_getHeader` p50 over the last 24h), measured against 6 no-key providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples."
- q: "Which Kusama RPCs work without an API key?"
a: "6 endpoints sustain continuous keyless probing at launch: PublicNode, OnFinality, dRPC, IBP Network (Kusama governance-funded infra), Dwellir, and 1RPC. Every listed endpoint was live-verified before inclusion."
- q: "Does the fastest Kusama RPC change by region?"
a: "Often. Substrate-ecosystem infra concentrates in Europe; endpoints that win from Amsterdam can lose from Singapore. The region tabs re-scope every number to a single origin."
- q: "How is Kusama RPC latency measured here?"
a: "One identical Substrate JSON-RPC POST (`chain_getHeader`) every 60 seconds from each of 3 regions. Responses are classified so stale or error endpoints are never ranked as fastest."
source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/rpc-capabilities
prometheus:
window: 24h
freshness_metric: rpc_latency_milliseconds
rank_matrix_query: avg by (provider, region) (ocb:rpc_latency_milliseconds:p50_24h{chain="kusama"})
dimensions:
region:
- { value: all, label: All regions }
- { value: us-east, label: US-East }
- { value: eu-west, label: EU-West }
- { value: sgp, label: Singapore }
providers:
- slug: publicnode
name: PublicNode
tag: Allnodes-operated multi-chain gateway including Substrate
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to PublicNode's no-key Kusama endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="kusama"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="publicnode", chain="kusama"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="publicnode", chain="kusama"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="publicnode", chain="kusama"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="publicnode", chain="kusama"}) / sum(ocb:rpc_call:rate_24h{provider="publicnode", chain="kusama"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="publicnode", chain="kusama"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="kusama"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="kusama", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="kusama", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="kusama", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="kusama", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="kusama", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="kusama", region="sgp"}[1h])
- slug: onfinality
name: OnFinality
tag: Substrate-native public gateway, Web3 Foundation grantee
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to OnFinality's no-key Kusama endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="onfinality", chain="kusama"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="onfinality", chain="kusama"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="onfinality", chain="kusama"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="onfinality", chain="kusama"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="onfinality", chain="kusama"}) / sum(ocb:rpc_call:rate_24h{provider="onfinality", chain="kusama"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="onfinality", chain="kusama"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="onfinality", chain="kusama"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="onfinality", chain="kusama", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="onfinality", chain="kusama", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="onfinality", chain="kusama", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="onfinality", chain="kusama", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="onfinality", chain="kusama", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="onfinality", chain="kusama", region="sgp"}[1h])
- slug: drpc
name: dRPC
tag: dRPC public gateway for Kusama relay chain
formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `chain_getHeader` POST sent every 60s from 3 regions to dRPC's no-key Kusama endpoint."
queries:
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kusama"})
p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="drpc", chain="kusama"})
p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="drpc", chain="kusama"})
mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="drpc", chain="kusama"})
success: sum(ocb:rpc_call:ok_rate_24h{provider="drpc", chain="kusama"}) / sum(ocb:rpc_call:rate_24h{provider="drpc", chain="kusama"})
sample_size: sum(ocb:rpc_call:increase_24h{provider="drpc", chain="kusama"})
series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kusama"}[1h]))
regions:
- region: us-east
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kusama", region="us-east"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kusama", region="us-east"}[1h])
- region: eu-west
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kusama", region="eu-west"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kusama", region="eu-west"}[1h])
- region: ap-southeast
p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="drpc", chain="kusama", region="sgp"})
series: avg_over_time(rpc_latency_milliseconds{provider="drpc", chain="kusama", region="sgp"}[1h])