OpenChainBench

Consulta puntos de referencia reproducibles de infraestructura cripto en vivo (finalidad L1, latencia RPC, tarifas de puente, precisión de gas) desde agentes de IA. Servidor remoto, sin clave API: https://openchainbench.com/api/mcp/mcp

Documentación

OpenChainBench

Benchmarks abiertos y reproducibles para infraestructura cripto. Agregadores, puentes, RPCs, oráculos, feeds de precios, mercados de predicción, DEX de perpetuos, mensajería entre cadenas. Misma métrica, mismas condiciones, cada proveedor. En vivo en openchainbench.com.

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

OpenChainBench publica un benchmark a la vez, cada uno con el harness que produce sus datos. El objetivo es hacer del rendimiento una propiedad observable de la infraestructura cripto, medida en abierto, por cualquiera que quiera añadir un proveedor o una métrica.

Dirigido por la comunidad, harnesses con licencia MIT + datos CC-BY-4.0, PRs de cualquier parte, incluidos los proveedores que evaluamos.

De un vistazo

  • 94 especificaciones de benchmark en vivo en 8 categorías (RPCs, Trading, Agregadores, Puentes, Blockchains, RWA, Exploradores, APIs de NFT)
  • 50 harnesses autocontenidos en Go, cada uno con un endpoint Prometheus /metrics
  • 32 páginas de preguntas/respuestas curadas · 23 páginas de aterrizaje "alternativas a X"
  • 26 rutas de API legibles por máquina (citación, insignias, MCP, feeds, cotizaciones por formato)
  • Un Prometheus compartido, un worker de materialización, almacén de snapshots con fastpath CDN: lecturas en frío en < 100 ms en el edge, sin fan-out de origen en rutas calientes

Inicio 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

Para añadir un benchmark, escribir un harness o corregir un número: consulta CONTRIBUTING.md + el recorrido visual en /contribute.

Superficies legibles por máquina

Cada benchmark tiene licencia CC-BY-4.0 y se expone a través de endpoints diseñados para citación por periodistas, desarrolladores y agentes de IA:

EndpointAudienciaQué devuelve
/llms.txt · /llms-full.txtRastreadores de LLMÍndice en texto plano (corto) + contexto completo en Markdown (largo) según la convención llmstxt.org.
/api/citableDesarrolladores, agentesJSON plano: cada benchmark con valor actual, líder, frase titular, URL de citación, URL de imagen OG.
/api/stat/<slug>Desarrolladores, agentesBenchmark individual: rankings completos, sparkline (24h), metodología, cita lista para pegar, URL de atribución.
/api/cite/<slug>/<format>Zotero, Mendeley, PerplexityCitación en bibtex, apa, ris o txt con el tipo MIME correcto.
/api/openapi.jsonLangChain, GPTs personalizados, clientes genéricosEsquema OpenAPI 3.1 que describe cada endpoint.
/api/mcp/mcpClientes MCP (Claude Desktop, Cursor, herramientas de ChatGPT)Servidor MCP: herramientas list_benchmarks, get_benchmark, query_prom + recurso openchainbench://benchmark/{slug}.
/api/freshnessUI en vivo, panelesMapa {slug → asOf ms}. Cacheado en el edge durante 5 s.
/api/llm-contextPrompts de sistema de LLMCada benchmark con rankings + metodología en un solo bloque Markdown.
/benchmarks/<slug>/opengraph-imageX, LinkedIn, Slack, iMessagePNG de 1200×630 con valor actual + líder + sparkline. Se sirve automáticamente al desplegar el enlace.
/benchmarks/<slug>/share-card?template=...Exportación manual5 plantillas (ranking / snapshot / titular / comparación / leaderboard), ?theme=dark compatible.
/api/badge/<bench>/<provider>Sitios de proveedores, READMEsSVG incrustable de 360×36 con el rango del proveedor + cifra principal.
/rss.xml · /feed.jsonLectores de feeds, herramientas de agentesEspejos RSS 2.0 + JSON Feed 1.1, una entrada por benchmark en vivo, actualizados en cada lanzamiento.
/sitemap.xml · /robots.tsRastreadoresTodos los rastreadores de IA (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …) explícitamente permitidos.

Datos estructurados en cada página de benchmark: JSON-LD Dataset + StatisticalReport + Observation + TechArticle + FAQPage + BreadcrumbList, además de un grafo de microdatos schema.org Dataset superpuesto al infobox visible "De un vistazo".

Formato de citación para periodistas (lo que emite /api/stat/<slug>.headlineSentence):

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

Superficies del sitio

RutaQué contiene
/Hero + tabla de benchmarks más recientes + panel en vivo
/benchmarks · /benchmarks/[slug]Cuadrícula de catálogo + leaderboard por benchmark con gráfico, ledger, filtros de cadena/región, tarjetas para compartir, FAQ
/benchmarks/[slug]/[chain]Vista de benchmark por cadena con explicación específica de la cadena
/products/[slug]La página única por producto: cada benchmark en el que aparece, recuentos de top-1, productos relacionados y una vista por categoría a la que pertenece (app de trading, perpetuos, mercados de predicción, API de datos, puente, RPC, Hyperliquid) seleccionable por píldora o hash de URL
/chains/[slug]Centro por cadena: precio nativo en vivo, historial de TVL, cada benchmark que toca esta cadena agrupado por categoría
/compare/[a]-vs-[b]Comparación cara a cara entre benchmarks compartidos, orden alfabético canónico aplicado en el edge
/alternatives/[slug]Páginas de aterrizaje "alternativas a X" con leaderboard en vivo del benchmark referenciado
/answers/[slug]Páginas de preguntas/respuestas respaldadas por un benchmark en vivo, formateadas para motores de respuesta de IA
/hyperliquidCohorte de frontends de HyperLiquid; el panel de cada constructor (ingresos, volumen, fecha de primera actividad) es la vista Hyperliquid de su página /products/[slug]
/perps · /prediction-markets · /rpcCentros verticales que agregan múltiples benchmarks por tema
/mcpDocumentación del servidor MCP + instrucciones de instalación
/methodology · /contribute · /team · /about · /press · /badgesEstáticas

Arquitectura

┌─────────────────────────┐    ┌───────────────────┐    ┌──────────────────────┐
│  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 se ejecutan en un VPS (ocb-par-main en París) mediante docker compose. Un puñado de harnesses multirregión (rpc-capabilities-us/eu/sgp, evm-quote-latency, aggregator-head-lag regionales) permanecen en Railway y se federan en el Prometheus del VPS.
  • Worker publica snapshots atómicos cada 60 s en Redis + blobs CDN en kv.openchainbench.com/aggregate/{latest,benches/<slug>,variants/<slug>/<sig>}.json. El sitio lee primero el CDN (~20 ms en el edge), recurre a SRH y luego a la clave de snapshot última conocida en caché fría.
  • Sitio es Next.js 16 App Router en Vercel Fluid Compute. Auto-despliegue desde main en cada push (con prueba de humo del sitemap + auto-rollback + precalentamiento de páginas de benchmark); la rama dev se ejecuta en la vista previa de staging.
  • Middleware (src/middleware.ts) gestiona la normalización 308 en minúsculas, /compare/<b>-vs-<a> → orden alfabético canónico, 410 Gone para benchmarks eliminados, 301 para los renombrados y normalización de claves de caché en APIs públicas de solo lectura.
  • Relé de stream en vivo (WebSocket en wss://stream.openchainbench.com/ws) es un servicio separado gestionado por los mantenedores de OpenChainBench porque tiene claves de API upstream; el navegador habla directamente con él, Vercel solo sirve el shell estático.

Recorrido completo con diagramas + una sección "clona y ejecútalo tú mismo" en docs/architecture.md.

Estructura del repositorio

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

Contribuciones

Lee CONTRIBUTING.md para la guía extensa. TL;DR:

  1. Propón una idea en Discussions
  2. Abre un issue 📊 Propose a benchmark con la métrica + metodología
  3. Escribe el harness (Go recomendado, cualquier lenguaje que sirva /metrics funciona)
  4. Alójalo (en cualquier lugar con HTTPS + /metrics público)
  5. Abre un PR contra dev: YAML de especificación + referencia del harness + configuración de scrape de Prom
  6. Revisa en la vista previa de staging; fusiona a main cuando lleguen los datos

Convenciones editoriales

  • Misma métrica, mismas condiciones. Si dos proveedores no pueden medirse de forma idéntica, no comparten benchmark.
  • El marketing de los proveedores no da forma a los números publicados. La metodología pública + el harness reproducible son la única fuente de verdad.
  • Retiro antes que eliminación. Los benchmarks retirados devuelven 410 Gone con un enlace al catálogo actual para que las URLs previamente indexadas decaigan limpiamente.
  • Señales de frescura en todas partes. Cada superficie citable lleva dateModified + asOf para que los LLM distingan datos frescos de obsoletos.
  • Los benchmarks en borrador nunca citan un número. Si el quórum cae, la página muestra "esperando muestras" en lugar de un líder fabricado.

Comunidad + licencia

Licencia: código de harness MIT · dataset CC-BY-4.0 · atribución requerida. Consulta LICENSE.