Skip to content

Promote generator qualification and reward fixes to main - #455

Merged
dylanuys merged 47 commits into
mainfrom
testnet
Sep 15, 2026
Merged

dylanuys merged 47 commits into
mainfrom
testnet

Conversation

@dylanuys

@dylanuys dylanuys commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Promotes #446 (with #451, #453, #454) and #450 (with #456).

  • Gate generator pay independently by 7-day fool rate: image >2%, video >1%, with at least 20 benchmark evaluations per modality. Challenge slots use qualified/onboarding/probe pools (36/8/6 defaults).
  • Persist hotkey-keyed qualification for restart/API-outage payout fallback without transferring eligibility to replacement hotkeys; stale challenge sampling uses onboarding.
  • Keep separate image/video EMAs and clear disqualified histories immediately. Legacy combined EMA resets once on upgrade; 30/70 modality weights and the 16% generator pot are unchanged.
  • Add interactive paid discriminator resubmissions: after the free submission, the CLI requests approval to burn 0.5 TAO worth of SN34 alpha and sends the receipt to the upload API. Existing alpha uses burn_alpha; insufficient alpha uses add_stake_burn.
  • Reuse saved burn receipts after failed uploads. Treat only explicit duplicate-file responses as already uploaded; other HTTP 409 conflicts remain errors.

The resubmission flow requires the upload API changes in BitMind-AI/bmcore#392 to be deployed first. Main's callback, memory-pressure, and burn-control fixes are preserved via #452.

Validation

Combined testnet tree (60b9e4a): 163 tests passed; CI-selected Ruff checks passed.

dylanuys and others added 30 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
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
Match the tighter upload cap: a key cannot land one model per lane. Also drop cloud-evaluated wording from the miner guides.
Replace the combined fool-rate bonus with a per-modality gate so only
image >2% / video >1% (n>=20 benchmark evals) earn in that modality.

Co-authored-by: Cursor <cursoragent@cursor.com>
… slots.

Replace uniform 50-UID sampling with 36/8/6 buckets so validators keep
challenging new and under-bar miners without letting them dominate the round.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the stale fool-rate bonus writeup with the per-modality pay
gate and the 36/8/6 qualified/onboarding/probe challenge split.

Co-authored-by: Cursor <cursoragent@cursor.com>
… torch.

The test job skips the GPU stack; eager package imports were failing
collection on the new qualification and allocation tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ble.

A 200 with no parseable rows or a parse error was replacing the cache
with an empty gate and burning the 16% pot.

Co-authored-by: Cursor <cursoragent@cursor.com>
If gascli d push hits a used free slot, the CLI offers to burn SN34 alpha
from this wallet, then retries the upload with the on-chain receipt so
miners do not have to paste a transaction hash.

Co-authored-by: Cursor <cursoragent@cursor.com>
A first push never mentions burning. A later push always walks through
the 0.5 TAO SN34 alpha burn; declining or running non-interactively
stops the upload.

Co-authored-by: Cursor <cursoragent@cursor.com>
A second push still burns existing SN34 alpha when there is enough.
Otherwise it spends 0.5 TAO in one add_stake_burn instead of staking
and burning in two steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
A crash after the extrinsic lands should not charge a second 0.5 TAO
when the same receipt can still claim unused credit.

Co-authored-by: Cursor <cursoragent@cursor.com>
dylanuys and others added 17 commits September 15, 2026 17:38
Allow the interactive prints, burn when staked alpha already covers
the 0.5 TAO fee, keep the receipt until confirm, and start a new burn
when a saved hash is already used.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sync main into testnet before generator qualification rollout
Fix cross-modality generator EMA carryover
…cation

Persist generator qualification across validator restarts
Qualify generators on fool rate and allocate challenge slots
…ation

Distinguish duplicate uploads from other 409 conflicts
Walk miners through a 0.5 TAO burn on a second push
Fix resubmit burn crash recovery and concurrent-push safety
@dylanuys
dylanuys merged commit 04d3d1b into main Sep 15, 2026
2 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