arena: calibrated quick-follow ratio from arrival times; blank cells stay blank #16

Merged
grenade merged 2 commits from arena/leaderboard-calibrated into main 2026-09-04 06:05:55 +00:00
Owner

Two corrections found by looking at the rendered table (#15):

  1. Empty cells took the base threshold colour, so authors without timing samples showed red and blue. Threshold bases are now transparent.

  2. The gap column flagged honest authors, including us. For a Poisson block process the 10th-percentile gap of any author is about one second by construction, and worse, block timestamps are set when the node builds the proposal, right after the previous block arrives, so author-timestamp gaps measure proposal timing rather than release timing. Over two hours the old ratio put us at 2.8 and the 30% miner at 0.9.

    Withheld blocks show in arrival timing. The exporter now also records quantus_block_arrival_gap_seconds from its own observation time, polling every second, and the column becomes quick-follow ×: the share of an author's blocks arriving within 2 s of the previous block, divided by the network's share. About 1 is normal, 2 or more is withheld-block behaviour, shown only with 10 or more samples. The "Author timing" panel uses the same series. Telemetry first-seen (#11) will replace the observation time with millisecond resolution later.

    The author-timestamp histogram stays, relabelled as what it is: proposal timing.

Bucket boundaries are selected as le="2.0": Prometheus 3 normalises classic histogram boundaries to float strings, which is why the first attempt matched nothing.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5

Two corrections found by looking at the rendered table (#15): 1. **Empty cells took the base threshold colour**, so authors without timing samples showed red and blue. Threshold bases are now transparent. 2. **The gap column flagged honest authors, including us.** For a Poisson block process the 10th-percentile gap of any author is about one second by construction, and worse, block timestamps are set when the node *builds the proposal*, right after the previous block arrives, so author-timestamp gaps measure proposal timing rather than release timing. Over two hours the old ratio put us at 2.8 and the 30% miner at 0.9. Withheld blocks show in *arrival* timing. The exporter now also records `quantus_block_arrival_gap_seconds` from its own observation time, polling every second, and the column becomes **quick-follow ×**: the share of an author's blocks arriving within 2 s of the previous block, divided by the network's share. About 1 is normal, 2 or more is withheld-block behaviour, shown only with 10 or more samples. The "Author timing" panel uses the same series. Telemetry first-seen (#11) will replace the observation time with millisecond resolution later. The author-timestamp histogram stays, relabelled as what it is: proposal timing. Bucket boundaries are selected as `le="2.0"`: Prometheus 3 normalises classic histogram boundaries to float strings, which is why the first attempt matched nothing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade added 2 commits 2026-09-04 06:05:46 +00:00
For a Poisson block process the 10th-percentile gap of an honest author is
about one second by construction, so a fixed threshold flagged everyone.
quick-follow x is the share of an author's blocks arriving within 1 s of
the previous block divided by the network's share: 1 is normal, 2 or more
is withheld-block behaviour; needs 10 samples. Bucket boundaries are
selected as le="1.0" (Prometheus 3 normalises them to float strings).
Threshold bases are transparent so authors without samples show blank
cells, not red or blue.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
Author timestamps are set when the node builds the proposal, right after
the previous block arrives, so gaps between author timestamps measure
proposal timing and flagged our own honest node at 2.8x the network's
quick-follow share. Withheld blocks show in arrival timing instead:
quantus_block_arrival_gap_seconds uses the exporter's observation time
(poll interval now 1 s; telemetry first-seen replaces it under #11). The
leaderboard's quick-follow column and the Author timing panel now use it,
with a 2 s window to sit above the poll resolution.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade merged commit a865c717f1 into main 2026-09-04 06:05:55 +00:00
grenade deleted branch arena/leaderboard-calibrated 2026-09-04 06:05:56 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lair/quantus#16