arena: keep author names across restarts and confidence dips; stable duplicate-name suffix #23

Merged
grenade merged 1 commits from arena/sticky-attribution into main 2026-09-04 08:10:40 +00:00
Owner

Three sources of author-label churn split the per-author hashrate series into fragments (seen in the 09:45-10:30 stretch today; lair/quantus#11 follow-up):

  • Attribution state lived in memory, so every restart stripped every author of its name for a few blocks. Votes, held names and the peer-id to name map are now saved to --state-file (the service uses /var/lib/quantus-arena/attribution.json, already in ReadWritePaths) at most every 10 s and restored at start. Verified locally: after a restart our name was back on the first scrape.
  • A name dropped back to the preimage whenever confidence dipped under 0.6. A held name now stays until its node has no vote left in the 20-block window or another node out-votes it outright.
  • A duplicate name got its peer-id suffix only once a second node with that name was attributed, re-labelling the first. Any name used by more than one node on the feed now always carries the suffix.

Dashboard: the hashrate-by-author panel no longer spans nulls, so a label change shows as a gap rather than a slope drawn between two points.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5

Three sources of author-label churn split the per-author hashrate series into fragments (seen in the 09:45-10:30 stretch today; lair/quantus#11 follow-up): - Attribution state lived in memory, so every restart stripped every author of its name for a few blocks. Votes, held names and the peer-id to name map are now saved to `--state-file` (the service uses `/var/lib/quantus-arena/attribution.json`, already in ReadWritePaths) at most every 10 s and restored at start. Verified locally: after a restart our name was back on the first scrape. - A name dropped back to the preimage whenever confidence dipped under 0.6. A held name now stays until its node has no vote left in the 20-block window or another node out-votes it outright. - A duplicate name got its peer-id suffix only once a second node with that name was attributed, re-labelling the first. Any name used by more than one node on the feed now always carries the suffix. Dashboard: the hashrate-by-author panel no longer spans nulls, so a label change shows as a gap rather than a slope drawn between two points. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade added 1 commit 2026-09-04 08:10:31 +00:00
Three sources of author-label churn split the per-author hashrate series
into fragments (lair/quantus#11 follow-up):

- Attribution state lived in memory, so every restart stripped every
  author of its name for a few blocks. Votes, held names and the peer-id
  to name map are now saved to --state-file (the service uses
  /var/lib/quantus-arena/attribution.json) at most every 10 s and
  restored at start.
- A name dropped back to the preimage whenever confidence dipped under
  0.6. A held name now stays until its node has no vote left in the
  20-block window or another node out-votes it outright.
- A duplicate name got its peer-id suffix only once a second node with
  that name was attributed, re-labelling the first. Any name used by more
  than one node on the feed now always carries the suffix.

Dashboard: the hashrate-by-author panel no longer spans nulls, so a label
change shows as a gap rather than a slope drawn between two points.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade merged commit f3c026623e into main 2026-09-04 08:10:40 +00:00
grenade deleted branch arena/sticky-attribution 2026-09-04 08:10:41 +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#23