Release v470
Runtime 470 (proposed)
Published
2026-09-24 08:18:54
Generated
2026-09-24 09:01:33
总 PR
1
HIGH
1
MEDIUM
0
Stage2
0
官方 Release Notes 总结
本版为 spec_version 470 的运行时升级提案,当前正等待三方治理多签(triumvirate)的第二重签名以在 finney 网络上执行;发布标签对应精确部署代码,并附有提交哈希、调用哈希及部署时间点等详细信息。公告未提及任何安全修复、资金/共识/账户相关变更或 breaking change,仅强调验证流程:推荐使用 srtool 从该标签本地构建 wasm 并与发布产物进行字节级比对,或通过 `btcli upgrade check` 校验链上调用数据。升级由 CI 与多签协作完成,签署命令为 `btcli upgrade sign`。
TL;DR(PR 分析)
本版新增 swap_basket_many extrinsic,支持最多 128 个篮子交易腿的原子执行,仅保留一次分红刷新及每次重报价的简化估值,同时将 runtime 升级至 spec_version 470。该改动直指代币交换与篮子持仓的资金路径,涉及安全检查,属高影响变更。
HIGH 重要更新 (1)
新增 swap_basket_many extrinsic,支持一次最多 128 个篮子交易腿的原子执行,仅做一次分红刷新和一次初始估值,后续每腿只重新报价 origin/destination 持仓,并升级 runtime spec_version 至 470。
判级:新增直接操作代币交换和篮子持仓的 extrinsic,涉及资金流动和安全检查,并升级 runtime spec_version,属于高影响改动。
关键改动
- pallets/subtensor/src/macros/dispatches.rs: 新增 swap_basket_many 调度入口,call index 151,使用 BoundedVec 限制最多 128 腿
- pallets/subtensor/src/lib.rs: 定义 MAX_BASKET_SWAP_LEGS = 128 常量
- pallets/subtensor/src/staking/basket_trade.rs: 实现 do_swap_basket_many_tracked、BasketTradeState 缓存结构、try_swap_basket_with_state 单腿执行、修正 basket_trade_state 返回类型、新增 swap_basket_many_weight 和 swap_basket_many_declared_weight 权重计算
- pallets/subtensor/src/macros/errors.rs: 新增 BasketSwapBatchEmpty 错误
- pallets/subtensor/src/benchmarks/benchmarks.rs: 新增 swap_basket_many 基准测试,参数化持仓数 h 和腿数 l
- pallets/subtensor/src/weights.rs: 新增 swap_basket_many 默认权重实现(组合 swap_basket 权重)
- runtime/src/lib.rs: spec_version 从 469 升级到 470
- runtime/src/proxy_filters/call_groups.rs: 将 swap_basket_many 加入 BasketTradingCalls 组
- runtime/src/proxy_filters/mod.rs: 测试用例扩展覆盖 swap_basket_many 的代理过滤逻辑
- pallets/subtensor/src/tests/swap_basket.rs: 新增三个测试:成功多腿执行、回滚所有腿、拒绝空批次
- sdk/python/bittensor/intents/staking.py: 新增 SwapBasketMany Intent 类,支持 Python SDK
- 文档:新增 docs/tx/swap-basket-many.mdx、docs/errors/chain/BasketSwapBatchEmpty.mdx,更新索引和错误映射