diff --git a/benchmarks/chihuahua-rpc.yml b/benchmarks/chihuahua-rpc.yml new file mode 100644 index 00000000..5a5749d2 --- /dev/null +++ b/benchmarks/chihuahua-rpc.yml @@ -0,0 +1,136 @@ +# OpenChainBench. Bench No 250 + +slug: chihuahua-rpc +number: "250" +title: Fastest free Chihuahua RPC, live no-key endpoint latency +seo_title: "Fastest free Chihuahua RPC 2026" +seo_description: "{{best_name}} leads free Chihuahua RPC at {{best_p50}} (block height p50, 24h). 3 providers measured every 60s from 3 regions." +subtitle: HTTP round-trip latency for Tendermint /status queries against every available public Chihuahua endpoint, audited every 60 seconds from 3 regions. + +category: RPCs +status: live +metric: RPC latency +unit: ms +higher_is_better: false + +seo_intro: | + Chihuahua is a Cosmos SDK blockchain and the native home of the HUAHUA token, focused on meme-coin culture within the Cosmos ecosystem. It uses the standard Cosmos Tendermint RPC interface; block height is fetched via the /status endpoint. Public keyless RPC nodes are provided by the Chihuahua official team (rpc.chihuahua.wtf), Polkachu, and Validatus. Every provider was live-verified with consecutive block-height probes at launch. + +abstract: | + Per-chain member of the RPC latency cluster, extended to Chihuahua. + We measure the round-trip latency of a Tendermint /status query against + every available public Chihuahua endpoint that sustains continuous probing: + 3 providers at launch, every 60 seconds, from us-east, eu-west and + Singapore. Each provider is probed via a GET /status request + from which the block number is extracted. + The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) + with a Cosmos-scaled staleness gap (20 blocks, around 120 s at 6 s/block). + The cross-chain view lives on the parent rpc-capabilities benchmark; + this page is the Chihuahua-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: GET /status. The result.sync_info.latest_block_height field (string-encoded integer) is extracted as the current block height." + - "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 (parsable block height returned), http_err, jsonrpc_err, stale (block more than 20 behind the cross-provider tip), timeout." + - "This page is part of the per-chain RPC cluster derived from the cross-chain 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=chihuahua. Provider coverage at launch: 3 endpoints (Chihuahua official, Polkachu, Validatus)." + +findings: + - "{{best_name}} leads free Chihuahua RPC at {{best_p50}} (Tendermint /status p50, 24h) across 3 measured providers." + +faq: + - q: "What is the fastest free Chihuahua RPC right now?" + a: "{{best_name}} currently leads at {{best_p50}} (Chihuahua block height p50 over the last 24h), measured against 3 providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." + - q: "Which Chihuahua RPC endpoints work without an API key?" + a: "3 endpoints sustain continuous keyless probing at launch: Chihuahua official (rpc.chihuahua.wtf), Polkachu (chihuahua-rpc.polkachu.com), and Validatus (rpc.chihuahua.validatus.com). Every listed endpoint was live-verified before inclusion." + - q: "What is Chihuahua and why does its RPC latency matter?" + a: "Chihuahua is a Cosmos SDK chain and the home of HUAHUA, a community-driven meme token in the Cosmos ecosystem. Developers building wallets, explorers, or integrations for HUAHUA need low-latency RPC access to query balances, transactions, and governance state." + - q: "Does the fastest Chihuahua RPC change by region?" + a: "Often. Provider infrastructure placement differs; Polkachu runs global nodes while others may be more regionally concentrated. The region tabs re-scope every number to a single probe origin." + +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="chihuahua"}) + +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: chihuahua-official + name: Chihuahua + tag: Chihuahua official public RPC node, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc.chihuahua.wtf." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="chihuahua-official", chain="chihuahua"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="chihuahua-official", chain="chihuahua"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="chihuahua-official", chain="chihuahua"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="chihuahua-official", chain="chihuahua"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="chihuahua-official", chain="chihuahua"}) / sum(ocb:rpc_call:rate_24h{provider="chihuahua-official", chain="chihuahua"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="chihuahua-official", chain="chihuahua"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="chihuahua-official", chain="chihuahua"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="chihuahua-official", chain="chihuahua", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="chihuahua-official", chain="chihuahua", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="chihuahua-official", chain="chihuahua", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="chihuahua-official", chain="chihuahua", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="chihuahua-official", chain="chihuahua", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="chihuahua-official", chain="chihuahua", region="sgp"}[1h]) + + - slug: polkachu + name: Polkachu + tag: Polkachu public Chihuahua RPC, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to chihuahua-rpc.polkachu.com." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="chihuahua"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="polkachu", chain="chihuahua"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="polkachu", chain="chihuahua"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="polkachu", chain="chihuahua"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="polkachu", chain="chihuahua"}) / sum(ocb:rpc_call:rate_24h{provider="polkachu", chain="chihuahua"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="polkachu", chain="chihuahua"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="chihuahua"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="chihuahua", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="chihuahua", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="chihuahua", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="chihuahua", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="chihuahua", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="chihuahua", region="sgp"}[1h]) + + - slug: validatus + name: Validatus + tag: Validatus public Chihuahua RPC, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc.chihuahua.validatus.com." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="validatus", chain="chihuahua"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="validatus", chain="chihuahua"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="validatus", chain="chihuahua"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="validatus", chain="chihuahua"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="validatus", chain="chihuahua"}) / sum(ocb:rpc_call:rate_24h{provider="validatus", chain="chihuahua"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="validatus", chain="chihuahua"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="validatus", chain="chihuahua"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="validatus", chain="chihuahua", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="validatus", chain="chihuahua", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="validatus", chain="chihuahua", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="validatus", chain="chihuahua", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="validatus", chain="chihuahua", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="validatus", chain="chihuahua", region="sgp"}[1h]) diff --git a/benchmarks/fetchhub-rpc.yml b/benchmarks/fetchhub-rpc.yml new file mode 100644 index 00000000..a0a59103 --- /dev/null +++ b/benchmarks/fetchhub-rpc.yml @@ -0,0 +1,138 @@ +# OpenChainBench. Bench No 252 + +slug: fetchhub-rpc +number: "252" +title: Fastest free Fetch.ai RPC, live no-key endpoint latency +seo_title: "Fastest free Fetch.ai RPC 2026" +seo_description: "{{best_name}} leads free Fetch.ai RPC at {{best_p50}} (block height p50, 24h). 3 providers measured every 60s from 3 regions." +subtitle: HTTP round-trip latency for Tendermint /status queries against every available public Fetch.ai (FetchHub-4) endpoint, audited every 60 seconds from 3 regions. + +category: RPCs +status: live +metric: RPC latency +unit: ms +higher_is_better: false + +seo_intro: | + Fetch.ai is a Cosmos SDK blockchain (fetchhub-4 mainnet) focused on AI agents, autonomous economic agents, and the ASI Alliance (the merger of Fetch.ai, SingularityNET, and Ocean Protocol under the FET/ASI token). It uses the standard Cosmos Tendermint RPC interface; block height is fetched via the /status endpoint. Public keyless RPC nodes are provided by the Fetch.ai official team (rpc-fetchhub.fetch.ai), PublicNode, and Cosmos Directory. Every provider was live-verified with consecutive block-height probes at launch. + +abstract: | + Per-chain member of the RPC latency cluster, extended to Fetch.ai (FetchHub-4). + We measure the round-trip latency of a Tendermint /status query against + every available public Fetch.ai endpoint that sustains continuous probing: + 3 providers at launch, every 60 seconds, from us-east, eu-west and + Singapore. Each provider is probed via a GET /status request + from which the block number is extracted. + The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) + with a Cosmos-scaled staleness gap (20 blocks, around 120 s at 6 s/block). + The cross-chain view lives on the parent rpc-capabilities benchmark; + this page is the Fetch.ai-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: GET /status. The result.sync_info.latest_block_height field (string-encoded integer) is extracted as the current block height." + - "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 (parsable block height returned), http_err, jsonrpc_err, stale (block more than 20 behind the cross-provider tip), timeout." + - "This page is part of the per-chain RPC cluster derived from the cross-chain 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=fetchhub. Provider coverage at launch: 3 endpoints (Fetch.ai official, PublicNode, Cosmos Directory)." + +findings: + - "{{best_name}} leads free Fetch.ai RPC at {{best_p50}} (Tendermint /status p50, 24h) across 3 measured providers." + +faq: + - q: "What is the fastest free Fetch.ai RPC right now?" + a: "{{best_name}} currently leads at {{best_p50}} (Fetch.ai block height p50 over the last 24h), measured against 3 providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." + - q: "Which Fetch.ai RPC endpoints work without an API key?" + a: "3 endpoints sustain continuous keyless probing at launch: Fetch.ai official (rpc-fetchhub.fetch.ai), PublicNode (fetch-rpc.publicnode.com), and Cosmos Directory (rpc.cosmos.directory/fetchhub). Every listed endpoint was live-verified before inclusion." + - q: "What is Fetch.ai and why does its RPC latency matter?" + a: "Fetch.ai is a Cosmos SDK blockchain enabling autonomous AI agents to transact, negotiate, and execute tasks on-chain. The FET token (rebranded as ASI following the ASI Alliance merger with SingularityNET and Ocean Protocol) powers agent services and staking. Developers building AI agent frameworks, DeFi integrations, or on-chain governance tools need reliable low-latency RPC access to query agent registrations, transactions, and network state." + - q: "Does the fastest Fetch.ai RPC change by region?" + a: "Often. The official Fetch.ai node infrastructure is concentrated in specific regions while PublicNode distributes globally. The region tabs re-scope every number to a single probe origin." + - q: "What is the ASI Alliance and how does it relate to FetchHub?" + a: "The ASI Alliance is a merger of Fetch.ai, SingularityNET, and Ocean Protocol into a unified AI blockchain project. FetchHub-4 remains the underlying Cosmos SDK chain; the FET token migrated to the ASI token name while the technical RPC infrastructure and chain ID are unchanged." + +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="fetchhub"}) + +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: fetchai-official + name: Fetch.ai + tag: Fetch.ai official public RPC node, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc-fetchhub.fetch.ai." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="fetchai-official", chain="fetchhub"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="fetchai-official", chain="fetchhub"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="fetchai-official", chain="fetchhub"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="fetchai-official", chain="fetchhub"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="fetchai-official", chain="fetchhub"}) / sum(ocb:rpc_call:rate_24h{provider="fetchai-official", chain="fetchhub"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="fetchai-official", chain="fetchhub"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="fetchai-official", chain="fetchhub"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="fetchai-official", chain="fetchhub", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="fetchai-official", chain="fetchhub", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="fetchai-official", chain="fetchhub", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="fetchai-official", chain="fetchhub", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="fetchai-official", chain="fetchhub", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="fetchai-official", chain="fetchhub", region="sgp"}[1h]) + + - slug: publicnode + name: PublicNode + tag: PublicNode public Fetch.ai RPC, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to fetch-rpc.publicnode.com." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="fetchhub"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="publicnode", chain="fetchhub"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="publicnode", chain="fetchhub"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="publicnode", chain="fetchhub"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="publicnode", chain="fetchhub"}) / sum(ocb:rpc_call:rate_24h{provider="publicnode", chain="fetchhub"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="publicnode", chain="fetchhub"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="fetchhub"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="fetchhub", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="fetchhub", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="fetchhub", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="fetchhub", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="fetchhub", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="fetchhub", region="sgp"}[1h]) + + - slug: cosmos-directory + name: Cosmos Directory + tag: Cosmos Directory public Fetch.ai RPC proxy, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc.cosmos.directory/fetchhub." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="fetchhub"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="cosmos-directory", chain="fetchhub"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="cosmos-directory", chain="fetchhub"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="cosmos-directory", chain="fetchhub"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="cosmos-directory", chain="fetchhub"}) / sum(ocb:rpc_call:rate_24h{provider="cosmos-directory", chain="fetchhub"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="cosmos-directory", chain="fetchhub"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="fetchhub"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="fetchhub", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="fetchhub", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="fetchhub", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="fetchhub", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="fetchhub", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="fetchhub", region="sgp"}[1h]) diff --git a/benchmarks/sentinel-rpc.yml b/benchmarks/sentinel-rpc.yml new file mode 100644 index 00000000..ccbb64bb --- /dev/null +++ b/benchmarks/sentinel-rpc.yml @@ -0,0 +1,136 @@ +# OpenChainBench. Bench No 251 + +slug: sentinel-rpc +number: "251" +title: Fastest free Sentinel DVPN RPC, live no-key endpoint latency +seo_title: "Fastest free Sentinel DVPN RPC 2026" +seo_description: "{{best_name}} leads free Sentinel DVPN RPC at {{best_p50}} (block height p50, 24h). 3 providers measured every 60s from 3 regions." +subtitle: HTTP round-trip latency for Tendermint /status queries against every available public Sentinel DVPN endpoint, audited every 60 seconds from 3 regions. + +category: RPCs +status: live +metric: RPC latency +unit: ms +higher_is_better: false + +seo_intro: | + Sentinel is a decentralized VPN (dVPN) protocol built on the Cosmos SDK, operating on the sentinelhub-2 mainnet. It enables users to share bandwidth and access privacy-preserving connectivity through DVPN token incentives. Sentinel uses the standard Cosmos Tendermint RPC interface; block height is fetched via the /status endpoint. Public keyless RPC nodes are available from Polkachu, PublicNode, and Cosmos Directory. Every provider was live-verified with consecutive block-height probes at launch. + +abstract: | + Per-chain member of the RPC latency cluster, extended to Sentinel DVPN. + We measure the round-trip latency of a Tendermint /status query against + every available public Sentinel endpoint that sustains continuous probing: + 3 providers at launch, every 60 seconds, from us-east, eu-west and + Singapore. Each provider is probed via a GET /status request + from which the block number is extracted. + The harness classifies every response (ok / http_err / jsonrpc_err / stale / timeout) + with a Cosmos-scaled staleness gap (20 blocks, around 120 s at 6 s/block). + The cross-chain view lives on the parent rpc-capabilities benchmark; + this page is the Sentinel-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: GET /status. The result.sync_info.latest_block_height field (string-encoded integer) is extracted as the current block height." + - "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 (parsable block height returned), http_err, jsonrpc_err, stale (block more than 20 behind the cross-provider tip), timeout." + - "This page is part of the per-chain RPC cluster derived from the cross-chain 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=sentinel. Provider coverage at launch: 3 endpoints (Polkachu, PublicNode, Cosmos Directory)." + +findings: + - "{{best_name}} leads free Sentinel DVPN RPC at {{best_p50}} (Tendermint /status p50, 24h) across 3 measured providers." + +faq: + - q: "What is the fastest free Sentinel DVPN RPC right now?" + a: "{{best_name}} currently leads at {{best_p50}} (Sentinel block height p50 over the last 24h), measured against 3 providers probed every 60 seconds from us-east, eu-west and Singapore. The leaderboard re-sorts continuously against fresh Prometheus samples." + - q: "Which Sentinel DVPN RPC endpoints work without an API key?" + a: "3 endpoints sustain continuous keyless probing at launch: Polkachu (sentinel-rpc.polkachu.com), PublicNode (sentinel-rpc.publicnode.com), and Cosmos Directory (rpc.cosmos.directory/sentinel). Every listed endpoint was live-verified before inclusion." + - q: "What is Sentinel and why does its RPC latency matter?" + a: "Sentinel is a decentralized VPN network where node operators earn DVPN tokens for sharing bandwidth. Developers building dVPN clients, node management tools, or on-chain governance integrations require reliable low-latency RPC access to query bandwidth sessions, staking state, and transaction history." + - q: "Does the fastest Sentinel RPC change by region?" + a: "Often. Polkachu runs globally distributed infrastructure while PublicNode concentrates nodes near major internet exchange points. The region tabs re-scope every number to a single probe origin." + +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="sentinel"}) + +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: polkachu + name: Polkachu + tag: Polkachu public Sentinel DVPN RPC, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to sentinel-rpc.polkachu.com." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="sentinel"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="polkachu", chain="sentinel"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="polkachu", chain="sentinel"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="polkachu", chain="sentinel"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="polkachu", chain="sentinel"}) / sum(ocb:rpc_call:rate_24h{provider="polkachu", chain="sentinel"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="polkachu", chain="sentinel"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="sentinel"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="sentinel", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="sentinel", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="sentinel", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="sentinel", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="polkachu", chain="sentinel", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="polkachu", chain="sentinel", region="sgp"}[1h]) + + - slug: publicnode + name: PublicNode + tag: PublicNode public Sentinel DVPN RPC, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to sentinel-rpc.publicnode.com." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="sentinel"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="publicnode", chain="sentinel"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="publicnode", chain="sentinel"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="publicnode", chain="sentinel"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="publicnode", chain="sentinel"}) / sum(ocb:rpc_call:rate_24h{provider="publicnode", chain="sentinel"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="publicnode", chain="sentinel"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="sentinel"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="sentinel", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="sentinel", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="sentinel", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="sentinel", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="publicnode", chain="sentinel", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", chain="sentinel", region="sgp"}[1h]) + + - slug: cosmos-directory + name: Cosmos Directory + tag: Cosmos Directory public Sentinel DVPN RPC proxy, no API key required + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a GET /status sent every 60s from 3 regions to rpc.cosmos.directory/sentinel." + queries: + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="sentinel"}) + p90: avg(ocb:rpc_latency_milliseconds:p90_24h{provider="cosmos-directory", chain="sentinel"}) + p99: avg(ocb:rpc_latency_milliseconds:p99_24h{provider="cosmos-directory", chain="sentinel"}) + mean: avg(ocb:rpc_latency_milliseconds:mean_24h{provider="cosmos-directory", chain="sentinel"}) + success: sum(ocb:rpc_call:ok_rate_24h{provider="cosmos-directory", chain="sentinel"}) / sum(ocb:rpc_call:rate_24h{provider="cosmos-directory", chain="sentinel"}) + sample_size: sum(ocb:rpc_call:increase_24h{provider="cosmos-directory", chain="sentinel"}) + series: avg(avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="sentinel"}[1h])) + regions: + - region: us-east + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="sentinel", region="us-east"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="sentinel", region="us-east"}[1h]) + - region: eu-west + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="sentinel", region="eu-west"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="sentinel", region="eu-west"}[1h]) + - region: ap-southeast + p50: avg(ocb:rpc_latency_milliseconds:p50_24h{provider="cosmos-directory", chain="sentinel", region="sgp"}) + series: avg_over_time(rpc_latency_milliseconds{provider="cosmos-directory", chain="sentinel", region="sgp"}[1h]) diff --git a/harnesses/rpc-capabilities/cmd/script/config.go b/harnesses/rpc-capabilities/cmd/script/config.go index 8af3e2ce..c985e447 100644 --- a/harnesses/rpc-capabilities/cmd/script/config.go +++ b/harnesses/rpc-capabilities/cmd/script/config.go @@ -1671,6 +1671,39 @@ func chains() []Chain { {Slug: "interlay-official", Name: "Interlay", URL: envDefault("RPC_URL_INTERLAY_OFFICIAL", "https://api.interlay.io/parachain")}, }, }, + // 2026-08-28 wave-11. Chihuahua — Cosmos SDK, Tendermint /status. Official node + Polkachu + Validatus. + { + Slug: "chihuahua", + Name: "Chihuahua", + Kind: "cosmos", + Providers: []Provider{ + {Slug: "chihuahua-official", Name: "Chihuahua", URL: envDefault("RPC_URL_CHIHUAHUA_OFFICIAL", "https://rpc.chihuahua.wtf")}, + {Slug: "polkachu", Name: "Polkachu", URL: envDefault("RPC_URL_CHIHUAHUA_POLKACHU", "https://chihuahua-rpc.polkachu.com")}, + {Slug: "validatus", Name: "Validatus", URL: envDefault("RPC_URL_CHIHUAHUA_VALIDATUS", "https://rpc.chihuahua.validatus.com")}, + }, + }, + // 2026-08-28 wave-11. Sentinel — Cosmos SDK, Tendermint /status. Polkachu + PublicNode + Cosmos Directory. + { + Slug: "sentinel", + Name: "Sentinel", + Kind: "cosmos", + Providers: []Provider{ + {Slug: "polkachu", Name: "Polkachu", URL: envDefault("RPC_URL_SENTINEL_POLKACHU", "https://sentinel-rpc.polkachu.com")}, + {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_SENTINEL_PUBLICNODE", "https://sentinel-rpc.publicnode.com")}, + {Slug: "cosmos-directory", Name: "Cosmos Directory", URL: envDefault("RPC_URL_SENTINEL_COSMOSDIRECTORY", "https://rpc.cosmos.directory/sentinel")}, + }, + }, + // 2026-08-28 wave-11. Fetch.ai (FetchHub-4) — Cosmos SDK, Tendermint /status. Official + PublicNode + Cosmos Directory. + { + Slug: "fetchhub", + Name: "Fetch.ai", + Kind: "cosmos", + Providers: []Provider{ + {Slug: "fetchai-official", Name: "Fetch.ai", URL: envDefault("RPC_URL_FETCHHUB_OFFICIAL", "https://rpc-fetchhub.fetch.ai")}, + {Slug: "publicnode", Name: "PublicNode", URL: envDefault("RPC_URL_FETCHHUB_PUBLICNODE", "https://fetch-rpc.publicnode.com")}, + {Slug: "cosmos-directory", Name: "Cosmos Directory", URL: envDefault("RPC_URL_FETCHHUB_COSMOSDIRECTORY", "https://rpc.cosmos.directory/fetchhub")}, + }, + }, // 2026-08-27 wave-10. Zcash — getblockcount JSON-RPC (Tatum zcashd + Tatum Zebra) + Blockchair REST GET. ~75 s/block. { Slug: "zcash", diff --git a/public/logos/chihuahua.svg b/public/logos/chihuahua.svg new file mode 100644 index 00000000..c4d9d7ac --- /dev/null +++ b/public/logos/chihuahua.svg @@ -0,0 +1,4 @@ + + + HUAHUA + diff --git a/public/logos/fetchai.svg b/public/logos/fetchai.svg new file mode 100644 index 00000000..1b39935a --- /dev/null +++ b/public/logos/fetchai.svg @@ -0,0 +1,4 @@ + + + FET + diff --git a/public/logos/sentinel.svg b/public/logos/sentinel.svg new file mode 100644 index 00000000..e6a50505 --- /dev/null +++ b/public/logos/sentinel.svg @@ -0,0 +1,4 @@ + + + DVPN + diff --git a/src/data/provider-registry.ts b/src/data/provider-registry.ts index 169cffc4..ac5e2244 100644 --- a/src/data/provider-registry.ts +++ b/src/data/provider-registry.ts @@ -2591,6 +2591,34 @@ export const PROVIDER_REGISTRY: Record = { "Acala official public RPC node 2 (acala-rpc-2.aca-api.network). Keyless Substrate JSON-RPC interface for the Acala DeFi parachain on Polkadot.", twitter: "@AcalaNetwork", }, + + // ─── Chihuahua providers (bench 250) ───────────────────────────────── + "chihuahua-official": { + url: "https://rpc.chihuahua.wtf", + description: + "Chihuahua official public Tendermint RPC node. Keyless endpoint for the Chihuahua Cosmos SDK chain.", + twitter: "@ChihuahuaChain", + }, + validatus: { + url: "https://validatus.com", + description: + "Validatus public Cosmos RPC infrastructure. Provides keyless Tendermint RPC endpoints for multiple Cosmos SDK chains.", + }, + + // ─── Cosmos Directory (shared across benches 251-252) ──────────────── + "cosmos-directory": { + url: "https://cosmos.directory", + description: + "Cosmos Directory public RPC proxy. Aggregates Tendermint RPC endpoints across the Cosmos ecosystem, no API key required.", + }, + + // ─── Fetch.ai providers (bench 252) ────────────────────────────────── + "fetchai-official": { + url: "https://rpc-fetchhub.fetch.ai", + description: + "Fetch.ai official public Tendermint RPC node for the FetchHub-4 mainnet. Keyless endpoint maintained by the Fetch.ai / ASI Alliance team.", + twitter: "@Fetch_ai", + }, }; /** diff --git a/src/lib/brand.ts b/src/lib/brand.ts index 83d02a58..eac119eb 100644 --- a/src/lib/brand.ts +++ b/src/lib/brand.ts @@ -173,8 +173,11 @@ const BRANDS: Record = { acala: { color: "#E40C5B" }, // acala red/pink (official brand) interlay: { color: "#1A3BDB" }, // interlay blue (official brand) - // ─── Cosmos SDK chains (bench 247) ─── - babylon: { color: "#F8811A" }, // babylon orange (official brand) + // ─── Cosmos SDK chains (benches 247, 250-252) ─── + babylon: { color: "#F8811A" }, // babylon orange (official brand) + chihuahua: { color: "#E05F2A" }, // chihuahua orange-red (official brand) + sentinel: { color: "#00C2FF" }, // sentinel cyan (official brand) + fetchhub: { color: "#3B2D8E" }, // fetch.ai deep purple (official brand) // ─── Bitcoin Cash chain + providers (bench 244) ─── "bitcoin-cash": { color: "#0AC18E" }, // bch official green diff --git a/src/lib/logo-manifest.ts b/src/lib/logo-manifest.ts index 0c20e4c4..c2250789 100644 --- a/src/lib/logo-manifest.ts +++ b/src/lib/logo-manifest.ts @@ -328,6 +328,9 @@ const RAW: Record = { acala: "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/logos/acala.svg", interlay: "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/logos/interlay.svg", litecoinspace: "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/logos/litecoinspace.svg", + chihuahua: "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/logos/chihuahua.svg", + sentinel: "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/logos/sentinel.svg", + fetchhub: "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/logos/fetchai.svg", // ─── Oracle deviation (bench 025) — additional brand logos ─── // (pairs alias to chain/asset logos in the ALIASES block below) @@ -736,6 +739,10 @@ const ALIASES: Record = { "acala-rpc0": "acala", "acala-rpc2": "acala", + // Chihuahua + Fetch.ai official node aliases → chain logo + "chihuahua-official": "chihuahua", + "fetchai-official": "fetchhub", + // Non-EVM wave-3 (benches 222-231) — provider-official aliases to chain slug "ecadinfra": "tezos", "tzbeta": "tezos",