Skip to content

Releases: RaoFoundation/subtensor

Runtime 432

Choose a tag to compare

@github-actions github-actions released this 16 Jul 18:34
8586e65

What's Changed

  • Consolidate pending PRs into staging by @unarbos in #2927
  • reuse canonical alpha iterator helper by @UnArbosSix in #2929
  • Publish tested localnet images and restore clippy by @UnArbosFive in #2928
  • Make privilege first-class across intents, CLI, and docs; add root emission intent by @unarbos in #2910

New Contributors

Full Changelog: v431...v432

Runtime 431 (proposed)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:06
32f3b65

Proposed runtime upgrade to spec 431 (awaiting signatures)

CI has submitted its half of the 2-of-2 deployment multisig for this
upgrade on finney. It executes once the sudo multisig (triumvirate)
produces the second approval. This tag is the exact code being
deployed.

Sign it

Each triumvirate member runs:

btcli upgrade sign --url https://github.com/RaoFoundation/subtensor/releases/tag/v431 -w <your-wallet>

btcli verifies the call data against the chain (structure, sudo key,
on-chain call hash) before submitting, and picks the right approval
(first / interior / final) from chain state automatically.

Verify it independently (recommended)

Build the runtime from this tag with srtool and compare byte-for-byte
(see .github/scripts/deploy/README.md for the full recipe):

git fetch origin && git checkout v431
# srtool build, then:
btcli upgrade check --url https://github.com/RaoFoundation/subtensor/releases/tag/v431 --wasm <path/to/your-build.wasm>

Without --wasm, btcli upgrade check --url https://github.com/RaoFoundation/subtensor/releases/tag/v431 still verifies
the published artifacts against each other and the chain, but trusts
the released wasm; a local srtool build closes that gap.

Proposal details

spec_version 431
commit 32f3b652cfa74df5f8f595a5be051bf5bb86925f
call hash 0x0e3db1de709f56aa15e93da55427b7852a292dfd84a349d460c8be5adec3a43e
deployment timepoint 8621971:21
CI key 5EqaWfYWgPWfXRFaM2hXbATkVGKdEJBznoyEUnVi8aGfN1bA
deployment multisig 5CzMP6tiNjKx3YiTbuPebLHZCtuomzTPzEGvG711iemY6u2f
wasm sha256 0xdff349a56cfa42650b046c1d1d2efdc75a8e465ec0600135f6245d2d9e7a34ff

Runtime 430 (proposed)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jul 17:38
9c8e26e

Proposed runtime upgrade to spec 430 (awaiting signatures)

CI has submitted its half of the 2-of-2 deployment multisig for this
upgrade on finney. It executes once the sudo multisig (triumvirate)
produces the second approval. This tag is the exact code being
deployed.

Sign it

Each triumvirate member runs:

btcli upgrade sign --url https://github.com/RaoFoundation/subtensor/releases/tag/v430 -w <your-wallet>

btcli verifies the call data against the chain (structure, sudo key,
on-chain call hash) before submitting, and picks the right approval
(first / interior / final) from chain state automatically.

Verify it independently (recommended)

Build the runtime from this tag with srtool and compare byte-for-byte
(see .github/scripts/deploy/README.md for the full recipe):

git fetch origin && git checkout v430
# srtool build, then:
btcli upgrade check --url https://github.com/RaoFoundation/subtensor/releases/tag/v430 --wasm <path/to/your-build.wasm>

Without --wasm, btcli upgrade check --url https://github.com/RaoFoundation/subtensor/releases/tag/v430 still verifies
the published artifacts against each other and the chain, but trusts
the released wasm; a local srtool build closes that gap.

Proposal details

spec_version 430
commit 9c8e26e7fccc76327ab5204f7978aa2e4d86efd6
call hash 0xd3cdbbaac34d4a79a36374a6e325b486e21cf311353165e05b5fb48b4e613911
deployment timepoint 8614043:27
CI key 5EqaWfYWgPWfXRFaM2hXbATkVGKdEJBznoyEUnVi8aGfN1bA
deployment multisig 5CzMP6tiNjKx3YiTbuPebLHZCtuomzTPzEGvG711iemY6u2f
wasm sha256 0x4c6a1ba447118e4353d8356383e401bcd8762a1161a3e73ada7a8fe82497aff4

v3.4.9-424

Choose a tag to compare

@sam0x17 sam0x17 released this 29 Jun 19:35
6d81084

What's Changed

  • Fix balancer performance by @gztensor in #2803
  • Hotifx: Allow locked alpha transfers in coldkey swaps by @gztensor in #2810
  • Apply tx & dispatch extensions conditionally by @l0r1s in #2812

Full Changelog: v3.4.8-423...v3.4.9-424

v3.4.8-423

Choose a tag to compare

@sam0x17 sam0x17 released this 25 Jun 20:37
06032d5

What's Changed

New Contributors

Full Changelog: v3.4.7-422...v3.4.8-423

v3.4.7-422

Choose a tag to compare

@sam0x17 sam0x17 released this 23 Jun 20:46
e367ae6

What's Changed

  • Default subnet emission off on registration by @unconst in #2787

Full Changelog: v3.4.6-421...v3.4.7-422

v3.4.6-421

Choose a tag to compare

@sam0x17 sam0x17 released this 23 Jun 00:31
6016381

What's Changed

  • Price-based emissions with miner-burn scaling (+ locked transfer flags) by @unconst in #2781

Full Changelog: v3.4.5-419...v3.4.6-421

v3.4.5-419

Choose a tag to compare

@sam0x17 sam0x17 released this 17 Jun 14:34
fa83646

Security hotfix — resolves a set of findings from a recent security audit, primarily hardening the proxy permission system along with several hotkey-swap and staking edge cases. Mainnet upgraded to spec_version 419. All findings were reproduced with regression tests before being fixed.

🔒 Security advisories

Advisory Severity Summary
GHSA-m759-m8mv-q3m5 🟠 High Restricted proxies (NonTransfer/NonFungible/NonCritical) can take over an entire coldkey via the announce/swap coldkey-swap lifecycle
GHSA-qh57-vpv2-3fvp 🟠 High NonFungible proxy denylist omits live swap_hotkey_v2 (call 72), letting a scoped delegate reassign a victim's hotkey identity
GHSA-xm63-2wwx-pm6w 🟡 Moderate Owner proxy except sudo_set_sn_owner_hotkey carve-out is bypassable via the duplicate alias sudo_set_subnet_owner_hotkey
GHSA-h98r-p37h-h4mv 🟡 Moderate set_weights/commit_weights family is Pays::No with the per-neuron rate limit enforced only in the dispatch body, enabling fee-free block-fill flooding
GHSA-6c95-q3r3-rgwq 🟢 Low Root cleanliness gate omits RootClaimed, letting a hotkey-swap merge inflate the claimed high-water mark and under-pay future root dividends
GHSA-vpjj-mhgr-cphg 🟢 Low Per-subnet hotkey-swap cooldown (HotkeySwapOnSubnetInterval) is bypassable via the all-subnets swap path
GHSA-rhmm-mqf8-v6gv 🟢 Low StakingColdkeysByIndex / NumStakingColdkeys grow monotonically and are never pruned
GHSA-wc2g-rc74-vgw3 🟢 Low Per-subnet ChildkeyTake is not migrated during hotkey swap, silently resetting it

What's changed

  • Proxy filter hardening — cover the coldkey-swap lifecycle, swap_hotkey_v2, and the sudo_set_subnet_owner_hotkey alias in the restricted-proxy filters (#5, #6, #7)
  • Weight-setting throttle — enforce the per-neuron set_weights/commit_weights rate limit pre-dispatch (#10)
  • Hotkey-swap correctnessRootClaimed watermark accounting (#14), per-subnet swap cooldown on the all-subnets path (#15), per-subnet ChildkeyTake migration (#18), plus review follow-ups merging RootClaimed by sum and extending the cooldown to parent-key subnets (#22)
  • Storage housekeeping — prune the staking-coldkey index when no longer needed (#16)
  • Bump spec_version to 419

Full Changelog: v3.4.4-417...v3.4.5-419

v3.4.4-417

Choose a tag to compare

@sam0x17 sam0x17 released this 10 Jun 21:34
49164bd

Hotfix: adds a check that ensures that during a hotkey swap, the new hotkey already exists globally and is owned by corresponding coldkey

Full Changelog: v3.4.3-416...v3.4.4-417

v3.4.3-416

Choose a tag to compare

@sam0x17 sam0x17 released this 08 Jun 21:19
3c5aff0

What's Changed

Full Changelog: v3.4.2-415...v3.4.3-416