Release v3.4.3-416
v3.4.3-416
Published
2026-06-08 21:19:01
Generated
2026-06-10 15:02:38
总 PR
1
HIGH
1
MEDIUM
0
Stage2
0
TL;DR(PR 分析)
本版修复了热键交换 V2 中 conviction 锁未能随子网范围转移的严重缺陷,并执行了一次性线上数据迁移以纠正已有锁定状态,保障用户资产安全。
交叉验证
两边确认1
仅分析映射0
仅 Release Notes0
HIGH 重要更新 (1)
修复热键交换 V2(子网范围)未转移 conviction 锁的缺陷,并添加一次性的线上数据迁移修复已有锁状态。
判级:修复影响锁定资产 conviction 值的严重缺陷,涉及核心锁逻辑及上线数据迁移,属于用户资金安全类修复。
关键改动
- pallets/subtensor/src/swap/swap_hotkey.rs → 在 perform_hotkey_swap_on_one_subnet 之前插入 swap_hotkey_locks_on_subnet 调用,使子网范围的热键交换能同步迁移 lock 与 conviction;注释步骤编号 +1
- pallets/subtensor/src/staking/lock.rs → 提取通用函数 swap_hotkey_locks_for_netuids(netuids),将其遍历的 netuid 改为参数传入;新增 swap_hotkey_locks_on_subnet(old, new, netuid) 供 V2 交换调用;原 swap_hotkey_locks 改为调用该通用函数并传递所有子网 ID;Lock 迭代中增加 netuid 过滤,避免全链遍历
- pallets/subtensor/src/migrations/migrate_fix_subnet_hotkey_lock_swaps.rs → 新增迁移模块,包含 19 条硬编码修复条目(coldkey/old_hotkey/new_hotkey/netuid 组成);对每条数据:读取旧 lock,从 Lock 存储删除,检查目标地址是否有冲突锁(有则丢弃旧锁并扣减聚合锁中的对应值,无冲突则插入到新 hotkey 下并增加聚合锁),同时更新 HotkeyLock/DecayingHotkeyLock/OwnerLock/DecayingOwnerLock 等聚合存储;标记迁移已完成
- pallets/subtensor/src/macros/hooks.rs → 在运行时升级钩子末尾追加 migrate_fix_subnet_hotkey_lock_swaps 迁移调用
- pallets/subtensor/src/migrations/mod.rs → 声明新迁移模块
- runtime/src/lib.rs → spec_version 从 415 提升至 416
- pallets/subtensor/src/tests/locks.rs → 新增三个测试用例:测试 V1 热键交换正确迁移 conviction、测试 V2 子网范围交换正确迁移 conviction、测试 V2 只影响目标子网不影响其他子网的锁
- pallets/subtensor/src/tests/migration.rs → 新增迁移测试,验证移动锁、冲突丢弃、链式交换场景均正确处理