fix(deps): bump bittensor to 10.3.0 — fixes NetUid(u16) metagraph sync failure
Fix
bittensor==9.9.0 → 10.3.0inrequirements.txt.- Lowercase class aliases removed in 10.x → renamed the references the codebase used (type annotations + constructors only;
bt.loggingand.configattribute access untouched):bt.subtensor→bt.Subtensor,bt.metagraph→bt.Metagraph,bt.wallet→bt.Wallet,bt.axon→bt.Axon,bt.dendrite→bt.Dendrite,bt.config(...)→bt.Config(...). substrate-interfacedropped. 10.x no longer depends on it, and it drags inscalecodec, which conflicts with 10.x'scyscaleand breaksimport bittensoroutright.common/api_client.pynow importsKeypairfrombittensor_wallet(fallback to the legacy package for older installs), and the stalesubstrate-interface==1.7.11pin is removed.
Verification (end-to-end on 10.3.0, live finney)
MetagraphSyncer.do_initial_sync()— the exact class in the stack trace — now succeeds: netuid=13, n=256. Fails on the installed 9.0.0.common/api_client.pyauth signing (TaoSigner) verified with thebittensor_walletKeypair — produces validX-Tao-Signatureheaders.- Confirmed the 10.3.0 environment has no
scalecodec(onlycyscale), soimport bittensoris clean. - All edited files compile on py3.11 and py3.13;
test_s3_validation_results_client.pypasses (4/4).
Rollout safety
bittensor 9.0.0 already exposes the capitalized aliases, so this code change is backward-compatible with the currently-installed SDK — the code and the pip install do not have to flip in the same instant. Deploy: merge → pip install -r requirements.txt on validator/miner hosts → restart.
⚠️ Major version jump (9→10). Recommend one validator host canary before fleet-wide restart, watching for a cleanSuccessfully synced metagraph for 13and a normal weight-set cycle.