Skip to content

evm-quote-latency: the region selector the page already promised - #3032

Merged
Flotapponnier merged 1 commit into
devfrom
feat/evm-quote-regions
Oct 18, 2026
Merged

Flotapponnier merged 1 commit into
devfrom
feat/evm-quote-regions

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

The bench has run from three Railway replicas since it was built, the spec declares all four region values, and ?region=us-east has always worked on the variant API. The page never showed a region selector.

Why. regionOptions is not built from the declared dimension. It is built from extras.regions and extras.seriesByRegion24h, which the loader only fills when providers declare per-region queries. This spec had none, so regionsWithData came back empty, regionOptions came back [], and the row of tabs never rendered. Side by side:

evm-quote-latency   declared: all, us-east, eu-west, sgp    extras.regions entries:  0
rpc-capabilities    declared: all, us-east, eu-west, sgp    extras.regions entries: 12

Two lines of published copy already described the missing thing:

methodology: "...so the page can filter to a single edge or aggregate across all three."

faq: "The bench page filter on region selects which slice of the histogram is queried."

Neither changes here. They stop being aspirational.

The change. Eight providers each get a regions: block shaped like rpc-capabilities: the region key is the canonical ap-southeast while the PromQL selector uses the label the harness actually stamps, sgp.

Every query was run against Prometheus before being written into the spec. Six of the eight report in all three regions; openocean (403) and enso (429) report in none, which is their documented state and not a consequence of this change.

What it exposes, measured while writing this:

provider     us-east   eu-west       sgp
route          117       189        460
kyberswap      233       279        168
mobula         454       346        650

The leader flips by region and the all-regions average hides it. Route is three to four times slower from Singapore than from Virginia, and KyberSwap is fastest from the one edge where Route is slowest. That is the whole point of having run three replicas for months.

Cost, stated rather than discovered later: this adds 48 queries to an aggregate load of this bench, the same shape of cost rpc-capabilities already carries for 13 providers.

Gates: 253 specs valid, 597 tests pass.

The bench has run from three Railway replicas since it was built, the
spec declares all four region values, and ?region=us-east has always
worked on the variant API. The page never showed a region selector.

regionOptions is not built from the declared dimension. It is built from
extras.regions and extras.seriesByRegion24h, which the loader only fills
when providers declare per-region queries. This spec had none, so
regionsWithData came back empty, regionOptions came back [], and the row
of tabs never rendered.

Two lines of published copy already described the thing that was missing:

  methodology: "...so the page can filter to a single edge or aggregate
                across all three."
  faq:         "The bench page filter on region selects which slice of
                the histogram is queried."

Both are now true rather than aspirational, so neither changes.

Eight providers each get a regions block, shaped like rpc-capabilities:
the region key is the canonical ap-southeast while the PromQL selector
uses the label the harness actually stamps, sgp.

Every query was run against Prometheus before being written. Six of the
eight report in all three regions; openocean (403) and enso (429) report
in none, which is their documented state and not a consequence of this.

What the selector exposes, measured while writing this:

  provider     us-east   eu-west       sgp
  route          117       189        460
  kyberswap      233       279        168
  mobula         454       346        650

The leader flips by region and the all-regions average hides it. Route
is three to four times slower from Singapore than from Virginia, and
KyberSwap is fastest from the one edge where Route is slowest.

Cost, stated rather than discovered later: this adds 48 queries to an
aggregate load of this bench, the same shape of cost rpc-capabilities
already carries for 13 providers.
@Flotapponnier
Flotapponnier merged commit 90da41d into dev Oct 18, 2026
2 checks passed
bakabhai993 pushed a commit to bakabhai993/OpenChainBench that referenced this pull request Oct 18, 2026
Route went to main as a cherry-pick (ChainBench#3028, 45faeaf) so it could ship
without waiting for the release. dev carries the same change under its own
SHA, so git sees two unrelated commits touching the same lines and ChainBench#3021
went from clean to CONFLICTING.

One file conflicts, benchmarks/evm-quote-latency.yml, and it is not a
disagreement. Checked line by line before resolving: every non-blank line
on main is present on dev, and dev adds 80 that main does not have, which
is exactly the eight providers times ten lines of regions blocks from
ChainBench#3032. dev is a strict superset, so the resolution takes dev's side whole.

token-quote-coverage.yml auto-merged with no help.

Gates on the merge result: 253 specs valid, tsc clean, 597 tests pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant