Skip to content

add bench 103 chainlink-ccip-latency - #1452

Merged
Flotapponnier merged 3 commits into
devfrom
feat/bench-ccip-latency
Jul 25, 2026
Merged

add bench 103 chainlink-ccip-latency#1452
Flotapponnier merged 3 commits into
devfrom
feat/bench-ccip-latency

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Third-party benchmark of Chainlink CCIP end-to-end delivery latency by source chain.

What

  • New harness `harnesses/chainlink-ccip-latency/` (Go, ~200 LOC) polling public CCIP Tools API every 60s
  • New spec `benchmarks/chainlink-ccip-latency.yml` (bench 103, status draft — will flip to live after 24h of samples)
  • 8 source chains at launch: Ethereum, Solana, BNB, Polygon, Avalanche, Arbitrum, Base, Optimism

Method

  • `GET https://api.ccip.chain.link/v2/messages?limit=100\` every 60s
  • Filter `environment == "mainnet"` and `status == "SUCCESS"`
  • Latency = `receiptTimestamp - sendTimestamp` (ms) → histogram bucketed to 90 min
  • Dedupe on `messageId` via 10k LRU
  • Chain name normalization handles CCIP's hierarchical L2 naming (`ethereum-mainnet-base-1` → `base`)

Fairness note (documented in spec)

CCIP intentionally waits for source-chain finality before its DON commits — Ethereum-source lanes structurally take 12-15 min more than pre-finality signing networks (Wormhole, LayerZero). The upcoming meta-bench (cross-chain-messaging-comparison) will surface a finality-normalized column for apples-to-apples comparison. Standalone bench documents the caveat.

Deploy

  1. Merge dev → cherry-pick main
  2. VPS: rsync harness → add compose stanza + prom scrape entry → docker build → up -d
  3. Rebuild materialize-worker (per project memory) so new bench URL doesn't 404

Florent Tapponnier added 3 commits July 26, 2026 00:29
…nvalid)

Rich Results Test 2026-07-25 flagged an 'Unnamed item' Dataset on
ws-head-latency-* + xstocks-peg. Turned out to be the microdata
Dataset declared by <aside itemScope itemType=schema.org/Dataset>
in the bench-infobox component: it exposes identifier, variableMeasured,
dateModified, license, sameAs, distribution via itemProp attributes
but was missing name, description, creator.

Google parses the microdata alongside the JSON-LD block and validates
each Dataset in isolation, so an incomplete microdata Dataset flags
even when the JSON-LD siblings are complete.

Adds hidden <meta itemProp> nodes for name/description/url/creator
so the microdata graph stays valid without adding duplicate visible
text to the human-facing infobox.
GSC follow-up flag after PR #1450 fixed the critical name/description
issue: 'Missing field encodingFormat (in distribution)' non-critical
warning on the same 4 URLs. The itemProp='distribution' was on a bare
<a> tag, which Google parsed as a distribution with only url — no
encodingFormat, no contentUrl.

Wrap in itemScope + itemType=DataDownload so the microdata declares
the proper DataDownload shape. contentUrl comes from the <a> href
via itemProp='contentUrl', encodingFormat comes from a hidden meta.
@Flotapponnier
Flotapponnier merged commit 8b565fc into dev Jul 25, 2026
1 check failed
@Flotapponnier
Flotapponnier deleted the feat/bench-ccip-latency branch July 25, 2026 23:25
Flotapponnier added a commit that referenced this pull request Jul 25, 2026
* infobox: add name/description/creator to Dataset microdata (fix RRT invalid)

Rich Results Test 2026-07-25 flagged an 'Unnamed item' Dataset on
ws-head-latency-* + xstocks-peg. Turned out to be the microdata
Dataset declared by <aside itemScope itemType=schema.org/Dataset>
in the bench-infobox component: it exposes identifier, variableMeasured,
dateModified, license, sameAs, distribution via itemProp attributes
but was missing name, description, creator.

Google parses the microdata alongside the JSON-LD block and validates
each Dataset in isolation, so an incomplete microdata Dataset flags
even when the JSON-LD siblings are complete.

Adds hidden <meta itemProp> nodes for name/description/url/creator
so the microdata graph stays valid without adding duplicate visible
text to the human-facing infobox.

* infobox: wrap distribution microdata as DataDownload with encodingFormat

GSC follow-up flag after PR #1450 fixed the critical name/description
issue: 'Missing field encodingFormat (in distribution)' non-critical
warning on the same 4 URLs. The itemProp='distribution' was on a bare
<a> tag, which Google parsed as a distribution with only url — no
encodingFormat, no contentUrl.

Wrap in itemScope + itemType=DataDownload so the microdata declares
the proper DataDownload shape. contentUrl comes from the <a> href
via itemProp='contentUrl', encodingFormat comes from a hidden meta.

* add bench 103 chainlink-ccip-latency: passive CCIP end-to-end delivery latency by source chain

---------

Co-authored-by: Florent Tapponnier <contact@mobula.io>
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