关于 OpenChainBench
OpenChainBench 是面向加密基础设施的公开基准注册库,持续更新测量结果并说明方法。开发者、研究人员和服务商可查看 RPC、桥、预言机及其他市场的可比数据和测量代码。
主要功能
- 01实时服务商基准数据
- 02公开方法与测量程序
- 03JSON、Markdown、RSS 和引用
- 04服务商比较与排名
- 05开放数据接口
适用场景
- 01比较公共 RPC 延迟
- 02查看桥费用和服务商排名
- 03引用最新加密基础设施测量数据
MCP 相关
其托管 MCP 服务提供基准列表、搜索、查询、服务商比较和推荐工具,并提供基准资源模板。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://openchainbench.com/api/mcp/mcpclaude mcp add --transport http flotapponnier-openchainbench https://openchainbench.com/api/mcp/mcp{"mcpServers":{"flotapponnier-openchainbench":{"type":"http","url":"https://openchainbench.com/api/mcp/mcp"}}}在 Cursor 中打开{"servers":{"flotapponnier-openchainbench":{"type":"http","url":"https://openchainbench.com/api/mcp/mcp"}}}在 VS Code 中打开{"mcpServers":{"flotapponnier-openchainbench":{"type":"http","url":"https://openchainbench.com/api/mcp/mcp"}}}{"mcpServers":{"flotapponnier-openchainbench":{"serverUrl":"https://openchainbench.com/api/mcp/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回的行数,范围为 1 到 50。默认值为 25。 |
| category | string | 否 | 仅限此类别:RPCs、Trading、Bridges、Blockchains、Aggregators、RWA 或 NFT APIs。 |
详细介绍
OpenChainBench
OpenChainBench 以相同方式衡量每家提供商的加密基础设施,发布结果,并公开生成结果的代码。 涵盖 RPC 端点、数据 API、桥、永续 DEX、预测市场、预言机和跨链消息传递。现已上线:openchainbench.com。
它可以回答诸如哪个免费 Ethereum RPC 响应最快,或通过哪个桥转移 USDC 费用最低等问题;数据全天候重新计算,而非只记录一次。
每项基准测试都附带生成其数据的测试工具,代码采用 MIT 许可,数据集采用 CC-BY-4.0 许可;任何一方(包括受测提供商)都可以提交拉取请求。上方的卡片会实时更新,但 GitHub 会缓存它,因此卡片可能无法及时反映其链接页面的更新。
这是什么
- 一个公开的基准测试注册表,每项基准测试对应一个 YAML 规范,注明其指标、方法,以及每个已发布数据背后所用的确切 PromQL。
- 一组独立的 Go 测试工具,按计划探测提供商并公开 Prometheus 指标。一个共享的 Prometheus 实例负责抓取数据,一个工作进程负责生成快照,网站读取这些快照。
- 一个可引用的数据入口。每项基准测试的数据都可以通过 JSON、Markdown、RSS 和 MCP 服务获取。JSON 响应包含
asOf时间戳、来源 URL 和许可信息;导出的引用包含页面 URL 和检索日期。
这不是什么
- 不是代币、基金或 RPC 供应商。
- 不由受测方编辑。报告发布前,可以向提供商展示相关事实;预发布站点也是公开的,因此发布前即可查看数据。方法之外的任何人都无法更改数据。
- 不是只展示单一提供商的视角。无法在相同条件下衡量的提供商会被拆分到不同的基准测试中,或按相同范围筛选;规范中会说明具体做法。
30 秒获取数据
pip install openchainbench
from openchainbench import OpenChainBench
with OpenChainBench() as ocb:
for b in ocb.list_benchmarks()[:5]:
print(b.slug, b.leader)
head_lag = ocb.get_benchmark("aggregator-head-lag")
print(head_lag.headline)
无需密钥或账号。读取端点对每个 IP 每分钟允许 60 次请求;robots.txt 中列出的 AI 爬虫不受此限制。通过普通 HTTP 获取相同数据:
# every benchmark with its current value, leader and citation
curl https://openchainbench.com/api/citable
# one benchmark: rankings, 24h sparkline, methodology, paste-ready quote
curl https://openchainbench.com/api/stat/aggregator-head-lag
# a benchmark as Markdown instead of HTML, at the same URL
curl -H "Accept: text/markdown" https://openchainbench.com/benchmarks/bridge-fee
对于 Agent,将 MCP 客户端指向托管服务:
{ "mcpServers": { "openchainbench": { "url": "https://openchainbench.com/api/mcp/mcp" } } }
它提供 list_benchmarks、get_benchmark、search_benchmarks、compare_providers、recommend_provider 和 list_answers,以及 openchainbench://benchmark/{slug} 资源。安装说明见 /mcp。
一个端到端的基准测试
基准测试由规范、测试框架以及据此生成的各类界面组成。以 aggregator-head-lag 为例,它用于衡量数据 API 发出链上已有的交换事件需要多长时间。
规范(benchmarks/aggregator-head-lag.yml)声明了指标、单位、数值越高是否越好、书面方法说明,以及每个提供商在每个百分位对应的 PromQL 查询。页面上的数字没有一个是手动填写的。
测试框架(harnesses/aggregator-head-lag/)订阅链上事件和每个提供商的数据流,针对每笔交易进行竞速,并通过 /metrics 提供结果。
发布的数据结构,来自 GET /api/stat/aggregator-head-lag:
{
"slug": "aggregator-head-lag",
"metric": "Head lag",
"unit": "s",
"higherIsBetter": false,
"value": 0.240038, // example reading, 2026-10-25
"leader": { "name": "Codex", "slug": "codex", "value": 0.240038 },
// ms holds the raw series value in the benchmark's stored unit, which is
// not always milliseconds: on a percent benchmark it holds a percent.
"rankings": [ { "name": "Codex", "ms": { "p50": 240.038, "p90": 399.49 } } ],
"sparkline": [ /* 73 points, last 24h */ ],
"sampleSize": 184980,
"measured": 6,
"ranked": 6,
"asOf": "2026-10-25T19:26:11.573Z",
"freshness": { "ageHours": 0.2, "stale": false },
"headline": "...", // one sentence, ready to quote
"methodology": [ /* the written rules, same text as the page */ ],
"source": "https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/aggregator-head-lag",
"license": "CC-BY-4.0"
}
headline 根据当前读数生成,因此每次获取时都是准确的;一旦粘贴到文件中,就会过时。引用时请附上 asOf。正式引用请使用 /api/cite/<slug>/bib。
数据一览
| 本仓库中的项目 | 数量 |
|---|---|
基准测试规范文件(benchmarks/*.yml) | 254 |
测试框架目录(harnesses/*/,每个目录都是一个 Go 模块) | 71 |
答案页面(answers/*.yml) | 49 |
替代方案页面(alternatives/*.yml) | 21 |
不同类别(各规范中的 category: 值) | 9 |
| 已发布基准测试的类别 | 7 |
在暂存环境中保留,直至满足发布条件(DEV_ONLY_BENCH_SLUGS) | 6 |
已退役,返回 410 Gone 或重定向至后继项目(REMOVED_BENCH_SLUGS) | 25 |
254 份规范,减去暂留在暂存环境中的 6 份,再减去保留规范的 2 个已退役基准测试,本次提交发布了 246 个基准测试。统计数据来自 2026-10-26 的仓库。
按类别发布:RPC 170 个,交易 43 个,聚合器 9 个,跨链桥 9 个,区块链 8 个,RWA 6 个,NFT API 1 个。
页面顶部的徽章从 /api/citable 读取实时数量,也就是生产环境提供的数量。表格则根据你正在查看的提交生成。变更发布后,两者会一致;基准测试合并后等待发布期间,两者则会不同。对比二者可以了解实际情况,而不必盲目信任任何一方。
机器可读接口
每项基准测试均采用 CC-BY-4.0 许可,无需密钥即可访问。
| 端点 | 返回内容 |
|---|---|
/api/citable | 所有基准测试及其当前值、领先者、标题句、引用和 asOf。从这里开始。 |
/api/stat/<slug> | 单项基准测试:排名、24 小时迷你趋势图、方法、引述、来源和数据新鲜度。 |
/api/series/<slug> | 各服务提供方的时间序列。?range=24h。 |
/api/compare/<a>/<b> | 两个服务提供方在所有共有基准测试中的表现。 |
/api/cite/<slug>/<format> | 以 bib、ris、apa 或 txt 格式返回引用,并附带匹配的内容类型。 |
/api/openapi.json | OpenAPI 3.1 架构,涵盖 11 个读取端点。 |
/api/mcp/mcp | 基于可流式传输 HTTP 的 MCP 服务。提供 6 个工具和 1 个资源模板。 |
/api/llm-context | 将所有基准测试的排名和方法整合为一份 Markdown 文档。 |
/llms.txt · /llms-full.txt | 按照 llmstxt.org 规范提供索引和完整上下文。llms-full.txt 与 /api/llm-context 提供相同文档。 |
Accept: text/markdown | 在页面自身 URL 以及 /benchmarks/<slug>、/products/<slug>、/perps、/rwa 和 /capital 上返回 Markdown,而非 HTML。浏览器不受影响,因为其 Accept 标头包含 text/html。 |
/api/freshness | 每项基准测试对应的 {slug: asOf},单位为 epoch 毫秒,另附服务端的 now。缓存 30 秒。 |
/api/og/<slug> | 提供含当前值、领先者和迷你趋势图的 1200x630 卡片,URL 稳定。 |
/benchmarks/<slug>/share-card | 导出卡片,提供 5 种模板(ranking、snapshot、headline、compare、leaderboard),支持 ?theme=dark。 |
/api/badge/<bench>/<provider> | 可嵌入的 SVG,显示该服务提供方的排名和数据。添加 /snippet 可获取可直接粘贴的 Markdown。 |
/rss.xml · /feed.json | RSS 2.0 和 JSON Feed 1.1,每项在线基准测试对应一个条目。 |
/sitemap.xml · /robots.txt | 我们发布的所有 URL。明确列出并允许了 30 多种 AI 和问答引擎爬虫。 |
/contribute/ai-brief.md | 为参与贡献基准测试的编码 Agent 编写的简要说明。 |
每个基准测试页面还包含 Dataset、StatisticalReport、Observation、TechArticle、FAQPage、DataDownload 和 BreadcrumbList JSON-LD。
我们在此代码库之外发布了两个镜像:一个 Hugging Face 数据集,包含每日 parquet 快照;以及一个 Zenodo 记录,DOI 为 10.5281/zenodo.20800311。
网站版块
| 路由系列 | 内容 |
|---|---|
/benchmarks、/benchmarks/<slug>、/benchmarks/<slug>/<chain> | 目录,以及每项基准测试对应的排行榜,包含图表、账本、链和地区筛选器、分享卡片及常见问题解答。按链划分的视图还带有各自的说明。 |
/products/<slug> | 每个产品对应一个页面:列出它参与的所有基准测试、排名第一的次数、相关产品,以及它所属的每个类别对应的视图。 |
/chains/<slug> | 各链的中心页面:原生代币价格、TVL 历史记录,以及按类别分组的所有涉及该链的基准测试。 |
/compare/<a>-vs-<b> | 对比双方在共同基准测试中的表现。字母顺序为规范顺序,并通过重定向强制执行。 |
/answers/<slug> · /alternatives/<slug> | 问题页面和“X 的替代方案”页面,均由实时基准测试提供支持,而非依靠文字说明。 |
/rpc · /perps · /prediction-markets · /hyperliquid · /capital | 垂直领域中心页面,汇总各主题的多项基准测试。 |
/methodology · /contribute · /mcp · /press · /badges · /about | 介绍工作原理、如何贡献,以及如何引用和嵌入。 |
工作原理
flowchart LR
H["Go harnesses<br/>each exposing /metrics"] --> P["Shared Prometheus"]
R["Regional harnesses<br/>US, EU, SGP"] -.federated.-> P
P --> W["Materialization worker<br/>sweeps and publishes snapshots"]
W --> B["Redis plus CDN blob store<br/>kv.openchainbench.com"]
B --> S["Next.js site on Vercel<br/>reads the blob, Redis as fallback"]
S --> A["JSON, Markdown, RSS, MCP,<br/>cards, badges, citations"]
- 测试框架以容器形式运行在巴黎的一台 VPS 上。少数必须从多个地点进行测量的测试框架运行在 Railway 上,并汇总到同一个 Prometheus 中,因为延迟数值若不注明测量地点便毫无意义。
- 工作进程按定时计划扫描 Prometheus,并将原子快照发布到 Redis 和位于
kv.openchainbench.com/aggregate/...的 CDN 文件中。网站优先读取该文件,失败时回退到 Redis,再失败则使用最近一次正常快照,而不是渲染空白页面。 - 网站使用 Next.js 16,托管在 Vercel 上。
main会自动部署到生产环境,并执行预热、站点地图可索引性冒烟测试;若测试失败则自动回滚,通过后会发送 IndexNow 通知。dev会部署到暂存预览环境。 - 路由规则位于
src/middleware.ts和next.config中。已停用的基准测试会返回410 Gone,并附上指向目录的链接;若有后继项,则会永久重定向。更名的基准测试会永久重定向到新 slug。/compare/<b>-vs-<a>也会重定向到按字母顺序排列的规范地址,因此同一项对比只有一个 URL。 - 实时仪表板读取 WebSocket 中继
wss://stream.openchainbench.com/ws。维护者将其单独运行,因为它需要保存上游 API 密钥。浏览器会直接与其通信。
更多详细信息(包括克隆并自行运行的指南)见 docs/architecture.md。
仓库结构
benchmarks/ one YAML spec per benchmark
harnesses/ one Go module per harness, each self-contained and Dockerized
answers/ Q&A specs backing /answers/<slug>
alternatives/ "alternatives to X" specs backing /alternatives/<slug>
packages/ python-client, published to PyPI as openchainbench
worker/ materialization worker: Prometheus to CDN and Redis snapshots
infrastructure/ shared Prometheus config
src/ the Next.js site, App Router, TypeScript, Tailwind, Zod
scripts/ spec validators, prebuild manifests, sitemap smoke test
docs/ architecture.md, methodology, walkthrough.md
public/ static assets served by the site
video/ the renderer behind the Export video button on every benchmark page
.github/ CI, production deploy, staging preview, dataset publishing
crm/ 和 outreach/ 是内部工具,不属于已发布的基准测试界面。
参与贡献
详见 CONTRIBUTING.md,可在 /contribute 查看图文指南,并在 /contribute/ai-brief.md 查看面向编码 Agent 的简要说明。
- 在 Discussions 中提出想法。
- 编写代码前,先提交一个
Propose a benchmarkissue,说明指标和方法。 - 编写测试框架。通常使用 Go,但只要能通过 HTTPS 提供
/metrics,任何语言或技术都可以。 - 将其托管在任意稳定的 HTTPS URL 上。你保管自己的密钥并承担费用;维护者不会看到这些信息。
- 针对
dev提交 PR,附上规范、测试框架链接和 Prometheus 抓取配置。 - 在预览环境中审查。数据入库且页面显示正确后,就会发布到生产环境。
提交前的本地检查:
pnpm install
pnpm dev # http://localhost:3000
pnpm validate # every spec against the Zod schema
pnpm check # validate, typecheck, lint, test
我们如何决定发布内容
- 相同指标,相同条件。 如果无法以完全相同的方式测量各服务提供商,就将其分开或筛选到共同范围内,并在基准测试中说明,而不是照样进行比较。
- 数字不受营销影响。 已发布的方法和测试框架是唯一依据。
- 基准测试需要达到发布条件。 新基准测试会先保留在暂存环境中,直至满足书面条件,例如完成完整测量周期、进行一轮审计或达到最低服务提供商数量。条件记录在
src/lib/removed-benches.ts中,每个基准测试都有一条注释,包括仍在等待的基准测试。 - 退役,而非删除。 退役的基准测试会返回
410 Gone并保留条目;如果存在后继基准测试,则会重定向到该基准测试。这样,被索引的 URL 会如实失效,而不是直接消失。 - 每个数字都必须带时间戳。 每个 JSON 接口都包含
asOf,而/api/freshness会以 epoch 毫秒为单位返回完整映射,读者无需询问我们,就能判断数据是最新还是过时。 - 草稿不引用数据。 如果报告数据的服务提供商太少,页面会说明正在等待样本,而不是根据稀少的数据评出领先者。
引用
@misc{openchainbench,
author = {OpenChainBench},
title = {OpenChainBench: live benchmarks for crypto infrastructure},
year = {2026},
doi = {10.5281/zenodo.20800311},
url = {https://openchainbench.com},
note = {Dataset licensed CC-BY-4.0}
}
对于单项基准测试,GET /api/cite/<slug>/bib 会返回该页面对应格式的数据,也提供 ris、apa 和 txt 格式。
DOI 会解析到数据集记录的最新版本,即于 2026-06-22 发布的 v1.0.1。引用数据集时请引用该 DOI;引用你今天读到的数据时,请引用带有 asOf 的页面。
常见问题
数据可以免费使用吗? 可以。数据集采用 CC-BY-4.0 许可,因此您可以引用、制图或将其用于产品中,但须注明 OpenChainBench,并链接到您获取数据的页面。测试框架代码采用 MIT 许可。
我可以添加自己的产品吗? 可以,即使我们已经在测量您的产品也可以。服务提供商可以在此提交 PR。但 PR 不能只更改某个数字而不更改生成该数字的方法;而方法一旦更改,就会同时应用于该基准中的所有服务提供商。
我产品的某个数据看起来不对。该怎么办? 请通过 服务提供商数据更正 issue 提交问题,并说明页面、数据以及您测得的结果。每个基准值都能追溯到规范中的 PromQL 查询和此仓库中的测试框架,因此通常只要查看两者,就能解决分歧。
数据有多新? 每个基准都有自己的 asOf。/api/freshness 会在一次请求中返回完整映射;如果某个页面的数据已过期,页面会明确说明,而不会把旧数据显示为当前数据。
为什么此仓库中有某个基准,但网站上没有? 因为它尚未满足发布条件。src/lib/removed-benches.ts 中列出了这些基准及其原因,上方数字表中的计算也涵盖了所有这些基准。
你们会测量不希望被测量的服务提供商吗? 我们会测量任何客户都能根据其公开条款访问的端点,包括免费和付费端点;带密钥的基准会注明所用的套餐。服务提供商可以要求更正其方法,这通常是很好的 PR,但不能仅因结果不理想而要求删除结果。
社区与许可
讨论区 · @OpenChainBench · PyPI · Hugging Face · Zenodo · Wikidata
测试框架和网站代码:MIT,详见 LICENSE。数据集:CC-BY-4.0,须注明出处;许可信息作为每个 API 响应中的 license 字段发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。