From cbc0fbab4a75a5c1c32d277c1d394f51b1bbee63 Mon Sep 17 00:00:00 2001 From: Flotapponnier <160007691+Flotapponnier@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:54:25 +0200 Subject: [PATCH] port the corrected race bullet to dev From #2817: the bullet quoted one reading (254 races an hour) of a rate that swings between 25 and 203 across consecutive windows. Now states the order of magnitude and the comparison that carries the claim. The worker clones dev at BUILD time, so the methodology reaches the page from here. pnpm validate: 235 specs valid. Co-Authored-By: Claude Opus 5 (1M context) --- benchmarks/aggregator-head-lag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/aggregator-head-lag.yml b/benchmarks/aggregator-head-lag.yml index 45bf2ee76..232c70c3a 100644 --- a/benchmarks/aggregator-head-lag.yml +++ b/benchmarks/aggregator-head-lag.yml @@ -70,7 +70,7 @@ methodology: - "Solana (since 2026-09-16): the headline is the lag behind the first feed to report the trade, our own node subscription included in the race. Solana has no on-chain timestamp with sub-second precision, so the timestamps providers send compare conventions: Mobula's `date` (its ingestion time) read as a constant 0.10 s, Serialized's `at` (blockTime, whole seconds) as 0.75 s, while against a common clock the two feeds are 10 to 30 ms apart." - "Solana zero point: no RPC WebSocket we hold, public or keyed (mainnet-beta, Helius, Alchemy), precedes the providers' geyser feeds, so an absolute zero point is not available and the first observation is the ruler. Our node stays in the race: it validates the hash on chain and bounds the field whenever a feed is slower than a plain RPC subscription." - "Race: every feed's arrival for a transaction is compared to the earliest feed's (ties within 5 ms count as first for each feed involved; trades only one feed reported are not scored). Published on every chain as `head_lag_first_share_pct`, the First to report view: the share of the last 24 h of trades a feed reported before every other feed." - - "Race eligibility (since 2026-10-04): only trades our own pool subscription saw are raced. OKX and Birdeye are subscribed per token and see every pool on it, so the book had filled with trades from pools this bench does not measure, scored as a race between those two alone. Measured after the filter: on Solana it discards 576,530 off-pool races an hour and scores 254. Feeds seeing only our pool had been divided by a denominator they could not enter." + - "Race eligibility (since 2026-10-04): only trades our own pool subscription saw are raced. OKX and Birdeye are subscribed per token and see every pool on it, so the book had filled with trades from pools this bench does not measure, scored as a race between those two alone. After the filter, Solana discards hundreds of thousands of off-pool races an hour and scores of order 100, its rate before those feeds arrived. Feeds seeing only our pool had been divided by a denominator they could not enter." - "Consequence for the Solana column: `head_lag_seconds` there is the lag behind the first feed in a race, so it moved with the same fix. Figures published before 2026-10-04 for OKX and Birdeye on that column were measured on a wider set of trades than the other four feeds." - "Solana headline: `head_lag_seconds` is the lag behind the first observation of the trade, our node included, floored at 1 ms. GeckoTerminal polls and lands 15 to 100 s later; it is measured against the same first arrival." - "Reading the Solana column: the leading feed's figure is the floor, not a measured latency. Whichever feed wins a race has a lag of zero by definition, published as 1 ms so the row renders, and over a recent 30 minutes the leader sat on that floor for 94% of its samples with p50 and p90 both at 1 ms. So the gap between the leader and the next feed is not a speed ratio; it is how far behind the others arrived. Read the leader through First to report and the others through their own lag."