Make PM coldkey mapping opportunistic#293
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
coldkey_mapis missing or partial.coldkey_mapping_requiredas a hard blocker for PM status/challenges/CNF/submit paths.Why
Production has
CATHEDRAL_PERMINER_REQUIRE_COLDKEY=true, but the coldkey map can be stale or partial. That blocks honest miners from the paying PM lane before they can fetch or submit private challenges. This hotfix keeps coldkey collapse where we have the map, while preventing map freshness from becoming an admission gate.Review Notes
Claude reviewed the core diff adversarially. Verdict: ship as a hotfix. Risk is bounded but real: unmapped hotkeys temporarily score as separate identities until the map converges. This is preferable to blocking honest unmapped miners entirely during stabilization.
Verification
publisher_verify.py: PASS all 147weights_verify.py: PASS all 32assigned_lane_verify.py: PASS all 15python -m compileall -q scaffold publisher_verify.py weights_verify.py assigned_lane_verify.py: PASSgit diff --check: PASSPost-Deploy Checks
coldkey_mapping_required./v1/validator/weights/nextmetadata exposesidentity_modeandunmapped_hotkeys_24h.unmapped_hotkeys_24hand top PM weight concentration until the coldkey map converges./v1/leaderboard/recentstill serves signed rows.