OpenChainBench

Consulte benchmarks de infraestrutura cripto ao vivo e reproduzíveis (finalidade L1, latência RPC, taxas de bridge, precisão de gas) a partir de agentes de IA. Servidor remoto, sem chave de API: https://openchainbench.com/api/mcp/mcp

Documentação

OpenChainBench

Benchmarks abertos e reproduzíveis para infraestrutura cripto. Agregadores, pontes, RPCs, oráculos, feeds de preços, mercados de previsão, DEXs perpétuos, mensageria entre cadeias. Mesma métrica, mesmas condições, todos os provedores. Ao vivo em openchainbench.com.

License: MIT Data: CC-BY-4.0 Benchmarks MCP llms.txt

O OpenChainBench publica um benchmark por vez, cada um acompanhado do harness que produz seus dados. O objetivo é tornar o desempenho uma propriedade observável da infraestrutura cripto, medido de forma aberta, por qualquer pessoa que queira adicionar um provedor ou uma métrica.

Comunidade executada, harnesses com licença MIT + dados CC-BY-4.0, PRs de qualquer parte, incluindo os provedores que avaliamos.

De relance

  • 94 especificações de benchmark ativas em 8 categorias (RPCs, Trading, Agregadores, Pontes, Blockchains, RWA, Explorers, APIs de NFT)
  • 50 harnesses Go autocontidos, cada um com um endpoint Prometheus /metrics
  • 32 páginas de perguntas/respostas selecionadas · 23 páginas de destino "alternativas a X"
  • 26 rotas de API legíveis por máquina (citação, badges, MCP, feeds, cotações por formato)
  • Um Prometheus compartilhado, um worker de materialização, armazenamento de snapshots com fastpath CDN: leituras frias em < 100 ms na borda, sem fan-out de origem em caminhos quentes

Início rápido

pnpm install
pnpm dev              # site at http://localhost:3000
pnpm validate         # bench spec Zod schema check (run before opening a PR)
pnpm typecheck        # tsc --noEmit

Adicionar um benchmark, escrever um harness ou corrigir um número: veja CONTRIBUTING.md + o passo a passo visual em /contribute.

Superfícies legíveis por máquina

Cada benchmark é licenciado CC-BY-4.0 e exposto por meio de endpoints projetados para citação por jornalistas, desenvolvedores e agentes de IA:

EndpointPúblicoO que retorna
/llms.txt · /llms-full.txtCrawlers de LLMÍndice em texto puro (curto) + contexto Markdown completo (longo) conforme a convenção llmstxt.org.
/api/citableDevs, agentesJSON plano: cada benchmark com valor atual, líder, frase de manchete, URL de citação, URL de imagem OG.
/api/stat/<slug>Devs, agentesBenchmark único: rankings completos, sparkline (24h), metodologia, citação pronta para colar, URL de atribuição.
/api/cite/<slug>/<format>Zotero, Mendeley, PerplexityCitação em bibtex, apa, ris ou txt com o tipo MIME correto.
/api/openapi.jsonLangChain, GPTs personalizados, clientes genéricosEsquema OpenAPI 3.1 descrevendo cada endpoint.
/api/mcp/mcpClientes MCP (Claude Desktop, Cursor, ferramentas ChatGPT)Servidor MCP: ferramentas list_benchmarks, get_benchmark, query_prom + recurso openchainbench://benchmark/{slug}.
/api/freshnessUI ao vivo, dashboardsMapa {slug → asOf ms}. Cache de borda de 5 s.
/api/llm-contextPrompts de sistema de LLMCada benchmark com rankings + metodologia em um único bloco Markdown.
/benchmarks/<slug>/opengraph-imageX, LinkedIn, Slack, iMessagePNG 1200×630 com valor atual + líder + sparkline. Servido automaticamente no unfurl de links.
/benchmarks/<slug>/share-card?template=...Exportação manual5 modelos (ranking / snapshot / manchete / comparar / leaderboard), ?theme=dark suportado.
/api/badge/<bench>/<provider>Sites de provedores, READMEsSVG incorporável 360×36 com o rank do provedor + figura de manchete.
/rss.xml · /feed.jsonLeitores de feed, ferramentas de agenteEspelhos RSS 2.0 + JSON Feed 1.1, uma entrada por bench ao vivo, atualizados no lançamento.
/sitemap.xml · /robots.tsCrawlersTodos os crawlers de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …) explicitamente permitidos.

Dados estruturados em cada página de bench: JSON-LD Dataset + StatisticalReport + Observation + TechArticle + FAQPage + BreadcrumbList, além de um grafo de microdados schema.org Dataset sobreposto à caixa de informações "De relance" visível.

Formato de citação para jornalistas (o que /api/stat/<slug>.headlineSentence emite):

"Mobula leads head lag at 0.8s (p50, 24h) on Fastest onchain data provider.
Source: OpenChainBench (https://openchainbench.com/benchmarks/aggregator-head-lag)"

Superfícies do site

RotaO que existe lá
/Hero + tabela de benchmarks mais recentes + dashboard ao vivo
/benchmarks · /benchmarks/[slug]Grade de catálogo + leaderboard por bench com gráfico, ledger, filtros de cadeia/região, cartões de compartilhamento, FAQ
/benchmarks/[slug]/[chain]Visualização de bench por cadeia com explicador por cadeia
/products/[slug]Perfil agregado por provedor: cada bench em que aparece, contagens de top-1, produtos relacionados
/chains/[slug]Hub por cadeia: preço nativo ao vivo, histórico de TVL, cada bench que toca esta cadeia agrupado por categoria
/compare/[a]-vs-[b]Comparação frente a frente entre benches compartilhados, ordem alfabética canônica aplicada na borda
/alternatives/[slug]Páginas de destino "alternativas a X" com leaderboard ao vivo do bench referenciado
/answers/[slug]Páginas de perguntas/respostas apoiadas por um bench ao vivo, formatadas para mecanismos de resposta de IA
/hyperliquid · /hyperliquid/[slug]Coorte de frontends HyperLiquid + dashboard por builder (receita, volume, data de primeira atividade)
/perps · /prediction-markets · /rpcHubs verticais agregando múltiplos benches por tópico
/mcpDocumentação do servidor MCP + instruções de instalação
/methodology · /contribute · /team · /about · /press · /badgesEstático

Arquitetura

┌─────────────────────────┐    ┌───────────────────┐    ┌──────────────────────┐
│  50 Go harnesses on     │    │  Shared Prometheus │    │ Materialization worker│
│  ocb-par-main (Paris)   │─── ▶│  (same VPS)        │───▶│ (same VPS, docker)   │
│  each exposes /metrics  │    │  federates a few   │    │ sweeps every 60s     │
└─────────────────────────┘    │  Railway regional  │    └──────┬───────────────┘
                                │  harnesses         │           │
                                └───────────────────┘           ▼
                                                    ┌─────────────────────────┐
                                                    │ Redis + CDN blob store   │
                                                    │ (SRH at kv.opencha…)     │
                                                    └──────────┬──────────────┘
                                                               │
                                                    ┌─────────────────────────┐
                                                    │ Vercel Fluid Compute:    │
                                                    │ pages read CDN blobs     │
                                                    │ first, SRH as fallback,  │
                                                    │ last-known-good on cold  │
                                                    └─────────────────────────┘
  • Harnesses + Prometheus + worker + Redis + SRH rodam em um único VPS (ocb-par-main em Paris) via docker compose. Alguns harnesses multirregionais (rpc-capabilities-us/eu/sgp, evm-quote-latency, aggregator-head-lag regional) permanecem na Railway e federam no Prom do VPS.
  • Worker publica snapshots atômicos a cada 60 s no Redis + blobs CDN em kv.openchainbench.com/aggregate/{latest,benches/<slug>,variants/<slug>/<sig>}.json. O site lê o CDN primeiro (~20 ms na borda), recorre ao SRH e depois à última chave de snapshot conhecida em cache frio.
  • Site é Next.js 16 App Router no Vercel Fluid Compute. Auto-deploy de main a cada push (com teste de fumaça do sitemap + auto-rollback + warm-up de páginas de bench); a branch dev roda no preview de staging.
  • Middleware (src/middleware.ts) lida com normalização 308 em minúsculas, /compare/<b>-vs-<a> → ordem alfabética canônica, 410 Gone para benches removidos, 301 para renomeados e normalização de chave de cache em APIs públicas somente leitura.
  • Relay de stream ao vivo (WebSocket em wss://stream.openchainbench.com/ws) é um serviço separado executado pela Mobula porque detém as chaves de API upstream; o navegador fala diretamente com ele, o Vercel apenas serve o shell estático.

Passo a passo completo com diagramas + uma seção "clone-e-rote-por-conta-própria" está em docs/architecture.md.

Estrutura do repositório

benchmarks/        94 YAML specs, one per public benchmark
harnesses/         50 Go harnesses, each self-contained + Dockerized
answers/           32 Q&A YAMLs backing /answers/<slug>
alternatives/      23 "alternatives to X" YAMLs backing /alternatives/<slug>
worker/            Materialization worker (sweeps Prom → publishes CDN + Redis blobs)
infrastructure/    Shared Prometheus config
src/               Next.js 16 site (App Router, ISR, Tailwind 4, TypeScript, Zod)
docs/              architecture.md, methodology, walkthrough.md
scripts/           Spec validators + prebuild manifest generators
.github/           CI: prod deploy, staging preview, sync dev from main

Contribuindo

Leia CONTRIBUTING.md para o guia completo. Resumo:

  1. Apresente uma ideia em Discussions
  2. Abra uma issue 📊 Propose a benchmark com a métrica + metodologia
  3. Escreva o harness (Go recomendado, qualquer linguagem que entregue /metrics funciona)
  4. Hospede-o (em qualquer lugar com HTTPS + /metrics público)
  5. Abra um PR contra dev: YAML de spec + ref do harness + config de scrape do Prom
  6. Revise no preview de staging; faça merge em main quando os dados chegarem

Convenções editoriais

  • Mesma métrica, mesmas condições. Se dois provedores não podem ser medidos de forma idêntica, eles não compartilham um bench.
  • Marketing de provedor não molda números publicados. Metodologia pública + harness reproduzível são a única fonte de verdade.
  • Aposentadoria em vez de remoção. Benches aposentados retornam 410 Gone com um link para o catálogo atual, para que URLs indexadas anteriormente decaiam de forma limpa.
  • Sinais de frescor em todo lugar. Toda superfície citável carrega dateModified + asOf para que LLMs possam distinguir dados frescos de desatualizados.
  • Benches em rascunho nunca citam um número. Se o quórum cair, a página renderiza "aguardando amostras" em vez de um líder fabricado.

Comunidade + licença

Licença: código do harness MIT · dataset CC-BY-4.0 · atribuição necessária. Veja LICENSE.