Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Decisions are recorded in the affected thread.

## Reporting

For private reports — including suspected manipulation, harassment, or undisclosed conflicts of interest — email **conduct@openchainbench.xyz** or open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures).
For private reports — including suspected manipulation, harassment, or undisclosed conflicts of interest — email **conduct@openchainbench.com** or open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures).

We treat reporters' identities as confidential by default.

Expand Down
2 changes: 1 addition & 1 deletion .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) on this repository. Do **not** open a public issue for a security report — the advisory mechanism keeps the disclosure private until a fix is in place.

If GitHub is not an option, email **security@openchainbench.xyz** with:
If GitHub is not an option, email **security@openchainbench.com** with:

- A description of the vulnerability and the affected component (site, harness, infrastructure).
- A reproducer or proof of concept.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

OpenChainBench is community-run. Anyone can submit a benchmark, fix a number, propose a methodology change. The web tutorial at [`/contribute`](https://openchainbench.xyz/contribute) walks through the steps; this file is the long-form reference. For a concrete end-to-end worked example, see [`docs/walkthrough.md`](./docs/walkthrough.md).
OpenChainBench is community-run. Anyone can submit a benchmark, fix a number, propose a methodology change. The web tutorial at [`/contribute`](https://openchainbench.com/contribute) walks through the steps; this file is the long-form reference. For a concrete end-to-end worked example, see [`docs/walkthrough.md`](./docs/walkthrough.md).

## What lives where

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenChainBench

> Open, reproducible benchmarks for crypto infrastructure — aggregators, bridges, RPCs, price feeds. Same metric, same conditions, every provider. Live at [openchainbench.xyz](https://openchainbench.xyz).
> Open, reproducible benchmarks for crypto infrastructure — aggregators, bridges, RPCs, price feeds. Same metric, same conditions, every provider. Live at [openchainbench.com](https://openchainbench.com).

OpenChainBench publishes one benchmark at a time, each one shipping with the script that produces its data. The goal is to make performance an observable property of crypto infra — measured in the open, by anyone who wants to add a provider or a metric.

Expand Down Expand Up @@ -53,7 +53,7 @@ OpenChainBench is a federation of independently-hosted harnesses connected by a
│ HTTPS
│ /api/v1/query
openchainbench.xyz
openchainbench.com
(Next.js site on Vercel, ISR 60s)
```

Expand Down Expand Up @@ -139,7 +139,7 @@ You never share API keys or wallet keys with the project. Your harness runs with

## Links

- Site — [openchainbench.xyz](https://openchainbench.xyz)
- Site — [openchainbench.com](https://openchainbench.com)
- Twitter — [@openchainbench](https://twitter.com/openchainbench)
- GitHub — [OpenChainBench/OpenChainBench](https://github.com/OpenChainBench/OpenChainBench)

Expand Down
10 changes: 5 additions & 5 deletions docs/walkthrough.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A concrete, end-to-end example of how a new benchmark gets onto the site. Written from the contributor's perspective, with the maintainer + automation actions called out so you can see what is yours to do and what happens around you.

For the formal step-by-step reference, see [`/CONTRIBUTING.md`](../CONTRIBUTING.md) and the [`/contribute`](https://openchainbench.xyz/contribute) page. This document is the "what does a real contribution look like in practice" version.
For the formal step-by-step reference, see [`/CONTRIBUTING.md`](../CONTRIBUTING.md) and the [`/contribute`](https://openchainbench.com/contribute) page. This document is the "what does a real contribution look like in practice" version.

## The scenario

Expand Down Expand Up @@ -59,7 +59,7 @@ methodology:
source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/wallet-portfolio-latency

prometheus:
url: https://prom.openchainbench.xyz
url: https://prom.openchainbench.com
window: 24h

providers:
Expand Down Expand Up @@ -202,14 +202,14 @@ A maintainer pulls up the PR. They check four things:

The maintainer comments "looks good", merges to `main`. The PR is auto-linked to the original issue, which moves to `In progress` on the roadmap.

**Vercel rebuilds the site automatically.** The benchmark page appears at `https://openchainbench.xyz/benchmarks/wallet-portfolio-latency` immediately, but it's empty — the central Prometheus has not been told to scrape Alex's URL yet.
**Vercel rebuilds the site automatically.** The benchmark page appears at `https://openchainbench.com/benchmarks/wallet-portfolio-latency` immediately, but it's empty — the central Prometheus has not been told to scrape Alex's URL yet.

## Phase 7 — Apply the scrape (Day 3, ~30 s)

The maintainer triggers a Prometheus reload:

```bash
curl -X POST https://prom.openchainbench.xyz/-/reload
curl -X POST https://prom.openchainbench.com/-/reload
```

Prometheus reloads its config file (which now has Alex's new scrape job), starts hitting `https://alex-portfolio-bench.fly.dev/metrics` every 15 s, and stores the data with `benchmark: wallet-portfolio-latency, host: alex` labels.
Expand All @@ -220,7 +220,7 @@ The site's ISR cache for `/benchmarks/wallet-portfolio-latency` expires (default

Alex's benchmark is live. The roadmap card moves to `Live`. The maintainer pings the original issue:

> "Live at https://openchainbench.xyz/benchmarks/wallet-portfolio-latency. Initial 24-hour run will smooth out — the page may look noisy until then."
> "Live at https://openchainbench.com/benchmarks/wallet-portfolio-latency. Initial 24-hour run will smooth out — the page may look noisy until then."

## What Alex did vs what Alex didn't have to do

Expand Down
2 changes: 1 addition & 1 deletion infrastructure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ OpenChainBench is a federation. **Each harness is hosted by whoever wrote it**
└────────────────┬───────────────────┘
│ HTTPS, /api/v1/query
openchainbench.xyz
openchainbench.com
(Next.js site on Vercel)
```

Expand Down
2 changes: 1 addition & 1 deletion src/app/benchmarks/[slug]/share-card/route.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ function CardFooter({
}}
>
<span>
openchainbench.xyz · № {benchmark.number} · {benchmark.category}
openchainbench.com · № {benchmark.number} · {benchmark.category}
</span>
<span
style={{
Expand Down
2 changes: 1 addition & 1 deletion src/app/contribute/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
</p>
<h2 className="mt-2 display text-xl">A federation, not a platform.</h2>
<p className="mt-3 text-[0.95rem] leading-relaxed text-ink-soft">
Every benchmark on this site is run by whoever wrote it. You host your harness wherever you like, expose <Code>/metrics</Code> over HTTPS, and the project's shared Prometheus scrapes that URL on a schedule. You keep your API keys, your wallet keys, your budget. Maintainers only see the metric values your harness chooses to publish.

Check failure on line 40 in src/app/contribute/page.tsx

View workflow job for this annotation

GitHub Actions / check

`'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`
</p>
<p className="mt-3 text-[0.95rem] leading-relaxed text-ink-soft">
The only piece of infrastructure shared by the project is one Prometheus instance. that is the URL every YAML spec points at. Adding a new harness is one extra <Code>scrape_configs</Code> block in <Code>infrastructure/prometheus/prometheus.yml</Code>. No new credentials, no new services, no privileged access to share.
Expand Down Expand Up @@ -111,7 +111,7 @@
source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/wallet-portfolio

prometheus:
url: https://prom.openchainbench.xyz # shared OpenChainBench Prometheus
url: https://prom.openchainbench.com # shared OpenChainBench Prometheus
window: 24h

providers:
Expand Down
4 changes: 2 additions & 2 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const jetbrainsMono = JetBrains_Mono({
});

export const metadata: Metadata = {
metadataBase: new URL("https://openchainbench.xyz"),
metadataBase: new URL("https://openchainbench.com"),
title: {
default: "OpenChainBench — Open benchmarks for crypto infrastructure",
template: "%s · OpenChainBench",
Expand All @@ -45,7 +45,7 @@ export const metadata: Metadata = {
title: "OpenChainBench",
description: "Open, reproducible benchmarks for the multichain stack.",
type: "website",
url: "https://openchainbench.xyz",
url: "https://openchainbench.com",
siteName: "OpenChainBench",
},
twitter: {
Expand Down
2 changes: 1 addition & 1 deletion src/app/opengraph-image.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ export default function OG() {
color: "#1c1a17",
}}
>
<span>openchainbench.xyz</span>
<span>openchainbench.com</span>
<span>@openchainbench</span>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/app/twitter-image.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export default function TwitterImage() {
color: "#1c1a17",
}}
>
<span>openchainbench.xyz</span>
<span>openchainbench.com</span>
<span>@openchainbench</span>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/data/site.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export const SITE = {
name: "OpenChainBench",
url: "https://openchainbench.xyz",
url: "https://openchainbench.com",
twitter: "@openchainbench",
github: "https://github.com/OpenChainBench/OpenChainBench",
description:
Expand Down
Loading