Release v481
Runtime 481
Published
2026-10-19 17:09:53
Generated
2026-10-19 18:01:54
总 PR
3
HIGH
2
MEDIUM
1
Stage2
0
官方 Release Notes 总结
本版宣布将 spec_version 从 478 升级至 481,依次引入 spec 479、480 和 481 的变更。核心变更围绕 Etao 特性:为每个子网启用基于基准锚定有效 TAO 权重的排放权重调整(spec 480),并确保每区块优先从总发行中支付给根网其活基准份额(spec 481)。本次发版不涉及安全修复或 breaking change,亦无资金、共识或账户相关的破坏性变更。
TL;DR(PR 分析)
本版主推 Etao 发布,核心改变 emission 权重分配:各子网可用自定义向量取代固定分割,且 root 排放改为每区块实时支付基线份额。两项均为资金/共识关键变更;另含一次常规 runtime 发布(479,涉及 EVM 与 staking 的 SDK/文档更新)。
交叉验证
两边确认3
仅分析映射0
仅 Release Notes0
HIGH 重要更新 (2)
#3254
etao: per-subnet emission weights with a baseline-anchored effective TAO weight (release: Etao, spec 480)
BREAKING
emission
MERGED
feature
Etao 发布:用每个子网可自定义的排放权重向量 [burn, recycle, owner, validator, miner] 替代原来固定的 18/41/41 分割,新增基线锚定的有效 TAO 权重 (SubnetTaoWeight),并添加相应的存储、extrinsic、迁移、RPC 和预编译接口
判级:新增存储、extrinsic、迁移,直接改变代币排放分配核心逻辑(emission weights 替代固定分割),触及资金/共识,spec_version 升级且包含运行时迁移
关键改动
- pallets/subtensor/src/lib.rs:新增 4 个存储项 SubnetEmissionWeights、SubnetTaoWeight、SubnetCreatedViaLease、SubnetOwnerCutAccrued;废弃 SubnetOwnerCut 和 OwnerCutEnabled(标记为 deprecate);新增 DefaultSubnetEmissionWeights 默认值和 SubnetEmissionWeightsRateLimit
- pallets/subtensor/src/coinbase/run_coinbase.rs:核心排放分配逻辑改用 emission weights 向量替代硬编码 0.5/0.5 分割;引入 consensus_root_proportion(使用子网有效 TAO 权重)和 pool-side root_proportion(使用全局 TaoWeight)分离
- pallets/subtensor/src/coinbase/block_step.rs:新增 consensus_root_proportion 和 root_proportion_with_tao_weight 函数,保留 pool-side root_proportion 使用全局 TaoWeight
- pallets/subtensor/src/subnets/dissolution.rs:子网注销时清理新存储项(SubnetEmissionWeights, SubnetTaoWeight, SubnetCreatedViaLease, SubnetOwnerCutAccrued)及速率限制键
- pallets/subtensor/src/subnets/subnet.rs:新子网注册时调用 seed_subnet_emission_weights 写入默认排放权重向量;删除旧函数 get_owner_cut_enabled / set_owner_cut_enabled_flag
- pallets/subtensor/src/staking/remove_stake.rs:锁定质押退款计算改用 SubnetOwnerCutAccrued 累积值,而非动态 owner fraction,避免 owner 调整自身比例后操纵退款
- pallets/subtensor/src/staking/stake_utils.rs:get_stake_in_emission_for_... 等函数改用 get_subnet_tao_weight(子网有效权重)替代全局 get_tao_weight
- pallets/subtensor/src/macros/errors.rs:新增 11 个错误码,涵盖排放权重向量验证(长度、索引、总和、burn/recycle/owner/validator/miner 约束、租赁子网最低 owner cut、validator 太低等)
- pallets/subtensor/src/macros/events.rs:新增 SubnetEmissionWeightsSet 事件(来自生成的 emission_weights.rs,但此文件标记为 generated),此处 diff 只显示了事件定义的部分扫描结果,实际存在该事件
- pallets/subtensor/src/rpc_info/subnet_info.rs:新增 SubnetEmissionWeightsInfo 结构和 get_subnet_emission_weights_info 方法;SubnetHyperparamsV3 中新增 owner_emission/validator_emission/miner_emission 三个超参
- pallets/subtensor/runtime-api/src/lib.rs:Runtime API 版本升至 3,新增 get_subnet_emission_weights
- pallets/subtensor/rpc/src/lib.rs:RPC 新增 subnetInfo_getSubnetEmissionWeights
- pallets/admin-utils/src/lib.rs:废弃 sudo_set_subnet_owner_cut 和 sudo_set_owner_cut_enabled(返回 Error::Deprecated);新增 sudo_set_subnet_emission_weights extrinsic
- precompiles/src/subnet.rs:新增 setSubnetEmissionWeights 和 getSubnetEmissionWeights 预编译接口;废弃 setOwnerCutEnabled;getSubnetHyperparameters 改用新的 get_owner_cut_enabled 方法
- runtime/src/lib.rs:spec_version 升至 480;新增迁移 migrate_seed_subnet_emission_weights;API 版本升至 3;construct_runtime! 中新增 SubnetEmissionWeights 存储?实际 construct_runtime! 未体现,但存储定义已在 pallet 中
- pallets/subtensor/src/migrations/migrate_seed_subnet_emission_weights.rs:新增迁移,为每个子网种子化排放权重向量和累积 owner cut(文件标记为 generated 但内容关键)
- pallets/subtensor/src/utils/misc.rs、rate_limiting.rs:小幅调整,移除旧 owner cut 相关辅助函数,增加速率限制 key 等
- docs/ 和 website/:大量文档更新,新增 emission-weights.mdx、etao 指南等
#3264
etao: pay root its live baseline share off the top every block (spec 481)
BREAKING
emission
MERGED
consensus
将 root 排放从按 set 时冻结的 per-subnet TAO 权重(SubnetTaoWeight)改为每区块按实时状态从 validator slot 顶部支付基线份额,并移除该存储与配套 migration(spec 481)。
判级:spec_version 升级 + 新增 runtime migration + 修改 root/validator 排放分配和 stake 权重等共识核心逻辑,属于必须 HIGH 的资金/共识/emission 变更。
关键改动
- pallets/subtensor/src/coinbase/block_step.rs:删除 consensus_root_proportion 和 root_proportion_with_tao_weight,root_proportion 统一使用全局 TaoWeight。
- pallets/subtensor/src/coinbase/run_coinbase.rs:root_alpha 改为 alpha_out_i × min(V, r) 并限制不超过 validator slot;epoch 分发/stake 权重等 TAO 权重全部改用全局 get_tao_weight()。
- pallets/subtensor/src/lib.rs:删除 SubnetTaoWeight storage map;导出移除 solve_tao_weight_for_root_share,新增 emission_share_to_parts。
- pallets/subtensor/src/subnets/emission_weights.rs:新增 get_root_emission_share(min(baseline, V))和 is_root_emission_share_capped;do_set_subnet_emission_weights 只校验 V_new > r,不再写 SubnetTaoWeight。
- pallets/subtensor/src/migrations/migrate_remove_subnet_tao_weight.rs(新增):删除 SubnetTaoWeight 前缀下所有残留条目,带 try-runtime 校验。
- runtime/src/lib.rs:spec_version 480 → 481;Migrations 元组注册 remove_subnet_tao_weight migration。
- pallets/subtensor/runtime-api/src/lib.rs + rpc_info/subnet_info.rs:SubnetEmissionWeightsInfo 的 effective_tao_weight 字段替换为 root_baseline_share 和 root_share。
- pallets/subtensor/src/staking/stake_utils.rs、subnets/dissolution.rs:所有 get_subnet_tao_weight 替换为全局 get_tao_weight();删除 SubnetTaoWeight 清理。
- sdk/python(emission_weights.py、reads/subnets.py、CLI、intents):同步新机制,validator_floor 改为基线份额、新增 root_share_paid/min_validator_parts、移除 tao_weight_after_set 等。
- pallets/admin-utils/src/lib.rs、macros/errors.rs:sudo_set_subnet_emission_weights 文档与 ValidatorEmissionTooLowToPreserveRoot 错误说明更新。
MEDIUM 更新 (1)
Runtime 479 发布更新,涵盖 EVM 账户处理与 staking 操作,附 SDK 接口、文档及回归测试,已合并至 main。
判级:该 PR 是一个已合并的 runtime 479 发布提交,涉及 EVM 账户处理与 staking 操作,但主要变更可能是 SDK 接口、生成文档和回归测试,且为 release 聚合性质,未明确触及核心共识或资金逻辑。