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 gera seus dados. O objetivo é tornar o desempenho uma propriedade observável da infraestrutura cripto, medido abertamente, 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 completo em Markdown (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 benchmark ativo, atualizados no lançamento.
/sitemap.xml · /robots.tsCrawlersTodo crawler de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …) explicitamente permitido.

Dados estruturados em cada página de benchmark: 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 benchmark com gráfico, ledger, filtros de cadeia/região, cartões de compartilhamento, FAQ
/benchmarks/[slug]/[chain]Visualização de benchmark por cadeia com explicação por cadeia
/products/[slug]A página única por produto: cada benchmark em que aparece, contagens de top-1, produtos relacionados e uma visualização por categoria à qual pertence (app de Trading, Perpétuos, Mercados de previsão, API de dados, Ponte, RPC, Hyperliquid) selecionável por pílula ou hash de URL
/chains/[slug]Hub por cadeia: preço nativo ao vivo, histórico de TVL, cada benchmark que toca esta cadeia agrupado por categoria
/compare/[a]-vs-[b]Comparação frente a frente entre benchmarks compartilhados, ordem alfabética canônica aplicada na borda
/alternatives/[slug]Páginas de destino "Alternativas a X" com leaderboard ao vivo do benchmark referenciado
/answers/[slug]Páginas de perguntas/respostas apoiadas por um benchmark ao vivo, formatadas para mecanismos de resposta de IA
/hyperliquidCoorte de frontends HyperLiquid; o dashboard de cada construtor (receita, volume, data de primeira atividade) é a visualização Hyperliquid em sua página /products/[slug]
/perps · /prediction-markets · /rpcHubs verticais agregando múltiplos benchmarks 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 VPS (ocb-par-main em Paris) via docker compose. Alguns harnesses multirregião (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 para 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 à chave de snapshot última-conhecida-válida 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 de sitemap + auto-rollback + warm-up de página de benchmark); a branch dev roda no preview de staging.
  • Middleware (src/middleware.ts) lida com normalização 308 minúscula, /compare/<b>-vs-<a> → alfabético canônico, 410 Gone para benchmarks 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 pelos mantenedores do OpenChainBench porque detém 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-execute-você-mesmo" 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. Proponha 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 emita /metrics funciona)
  4. Hospede-o (em qualquer lugar com HTTPS + /metrics público)
  5. Abra um PR contra dev: YAML de especificação + ref do harness + config de scrape do Prom
  6. Revise no preview de staging; mescle para 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 benchmark.
  • 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. Benchmarks aposentados retornam 410 Gone com um link para o catálogo atual para que URLs previamente indexadas decaiam de forma limpa.
  • Sinais de frescor em todos os lugares. Toda superfície citável carrega dateModified + asOf para que LLMs possam distinguir dados frescos de desatualizados.
  • Benchmarks 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.