Skip to content

feat: King of the Hill 85/10/5 payouts - #435

Merged
dylanuys merged 21 commits into
mainfrom
testnet
Sep 6, 2026
Merged

feat: King of the Hill 85/10/5 payouts#435
dylanuys merged 21 commits into
mainfrom
testnet

Conversation

@kenobijon

@kenobijon kenobijon commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Updating to a King of the Hill competition where continuous payouts are made to the king + the past 2 kings for each modality, 85/10/5.

Tested on testnet

  • Full 85/10/5 chain on image, video, and audio (three distinct kings each).
  • Validator weight builder against the live kings payload: slot weights match 40%×85/10/5 and 4%×85/10/5, unused generator share burns, vector sums to 1.0.
  • Dethrone margin: +0.009 keeps the king, +0.010 transfers; sitting king restored.
  • Unit tests for residual rollup and burn.

Note

High Risk
Validator weight-setting is a core subnet change: escrow routing is removed in favor of API-driven KOTH splits, with discriminator emissions gated on external API metadata—misconfiguration or stale kings data directly affects TAO distribution.

Overview
v5.0.0 replaces round-based / escrow discriminator rewards with King of the Hill: validators pull kings from GAS (/api/v1/validator/kings), cache them across restarts, and set weights via new build_koth_weights40% / 40% / 4% image / video / audio lanes plus 16% generators, with each lane split 85 / 10 / 5 across the current king and the last two distinct crowned hotkeys (missing kings or API gaps burn to the burn UID). Discriminator lane payouts stay off until GAS publishes emissions_enabled and a passed emissions_start_at; generators are unchanged during warmup.

Discriminator push is hardened: duplicate-hash (409) uploads count as success, chain registration is optional (--skip-chain), capped retries (--max-retries), configurable upload URL, and the CLI/process exits cleanly after push (os._exit, exit-code propagation). Upload success no longer fails when on-chain metadata is missing or chain registration exhausts retries.

Docs align with one counted model per hotkey (not three modalities per key) and document KOTH rules, defense, and dethrone margin; validator guides are consolidated. PM2 config honors NETUID and EPOCH_LENGTH env overrides.

Reviewed by Cursor Bugbot for commit 8098fa1. Bugbot is set up for automated code reviews on this repo. Configure here.

dylanuys and others added 9 commits September 2, 2026 16:00
Stop sending 84% of weights to escrow UIDs. Validators now fetch /current-kings and pay the reigning miner per modality, with last-known fallback if the API is down.

Co-authored-by: Cursor <cursoragent@cursor.com>
Testnet 169 is not the hardcoded 379 mapping, and short epochs are needed to verify KOTH weights.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bittensor metagraph threads kept the process alive, and a 409 with
--skip-chain was treated as failure. Cap chain retries and _exit.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the current king dominant while paying the previous two distinct
crowned hotkeys a residual so near-ties are not winner-take-lane.

Co-authored-by: Cursor <cursoragent@cursor.com>
Paying last-3 kings 85/10/5 is a breaking incentive change, so spec_version
should move with a major rather than sit on 4.10.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
feat: set discriminator weights on current KOTH kings
@kenobijon kenobijon changed the title feat: set discriminator weights on current KOTH kings feat: King of the Hill 85/10/5 payouts Sep 4, 2026
dylanuys and others added 5 commits September 4, 2026 15:10
Chain registration is optional. A failed or skipped commitment should
not fail the CLI after the model is already in R2 and queued for exam.

Co-authored-by: Cursor <cursoragent@cursor.com>
Miners get one image, one video, and one audio slot per registration.
Exam failures do not count and a new round does not refill the slot.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep a single Validating.md setup runbook and stop implying the full-benchmark score is TAO emissions.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match the tighter upload cap: a key cannot land one model per lane.

Co-authored-by: Cursor <cursoragent@cursor.com>
fix: succeed discriminator push after upload; one submission per hotkey
@dylanuys dylanuys self-assigned this Sep 6, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a14ffd8. Configure here.

Comment thread neurons/discriminator/push_model.py
@dylanuys
dylanuys merged commit 720df63 into main Sep 6, 2026
3 checks passed
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.

2 participants