cumulus collator-selection Pallet 解析:Parachain 如何实现开放出块与提名集(完整指南) cumulus collator-selection Pallet 解析Parachain 如何实现开放出块与提名集完整指南【免费下载链接】cumulusWrite Parachains on Substrate项目地址: https://gitcode.com/gh_mirrors/cum/cumuluscumulus是 Polkadot 生态中用于在 Substrate 上编写 Parachain平行链的官方框架而collator-selection Pallet正是它实现「开放出块」的核心组件它管理出块者Collator的提名集与最终集通过「不可变出块者 社区候选者」两层结构让任何满足条件的账户都能质押押金参与 Parachain 出块。本文带你快速读懂这套提名集机制的设计思路。 它解决什么问题在 Parachain 中出块者Collator负责组装区块候选并提交给 Relay Chain 验证。与传统链的固定验证者不同Parachain 往往希望开放出块权限任何人都可以注册成为候选出块者。collator-selection Pallet 就是为这件事而生的「提名集管理器」源码位于 pallets/collator-selection/src/lib.rs。官方在模块文档中明确了一个重要定位出块本身不是高安全活动最终安全性由 Relay Chain 保障因此该 Pallet 不做复杂的博弈论机制而是用简单透明的规则维护一个健康的出块者集合。️ 两层结构Invulnerable 与 Candidates最终生效的 Collator 集合由两个名单聚合而成名单谁任命是否可被踢除特点Invulnerables不可变出块者治理层❌ 永不淘汰永远在出块集合中Candidates社区候选者自我提名✅ 长时间不在线会被踢先到先得上限MaxCandidatesInvulnerables必须由治理UpdateOrigin设置且账户必须先注册 Session 密钥未注册的账户会被跳过并触发InvalidInvulnerableSkipped事件。Candidates通过register_as_candidate调用自我提名核心条件是已注册 Session 密钥 能质押CandidacyBond候选押金会被 reserve 锁定。两个集合应当互斥调用add_invulnerable时若该账户是候选者会自动从 Candidates 中移除。 提名集如何运转押金、踢除与最小保证这是本 Pallet 最有「治理感」的部分押金机制注册候选时锁定CandidacyBond调用leave_intent退出时押金立即退还但实际退出要等下一个 Session 切换才生效。踢除懒惰者每次新 Session 开始时new_sessionPallet 会调用kick_stale_candidates——凡是在KickThreshold个区块内没有出过块的候选者会被移出集合并退还押金。最小出块保证任何操作退出、移除 Invulnerable如果会让总出块者数量跌破MinEligibleCollators都会被拒绝报TooFewEligibleCollators确保链上永远有人能出块。上线保护候选者注册时的「首次出块时间」被记为当前区块 KickThreshold避免新注册者因 Session 延迟而被误踢。每个 Session 切换: Candidates ──踢除懒惰者── 活跃候选 Invulnerables 活跃候选 ── 最终 Collator 集合 奖励分配Pot 账户是怎么分钱的Pallet 维护一个链上「金库」账户由PotId生成官方链上为PotStake。每出一个区块出块者自动获得两笔奖励Pot 余额的一半扣除最小存在量 ED区块内交易费的一半另一半交易费回流进 Pot。这意味着想让出块者拿到奖励只需先向 Pot 账户转入一笔资金即可实现极简。⚙️ 关键配置参数速查以 Asset HubPolkadot的 Runtime 配置为例参见 parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs参数取值含义MaxCandidates100社区候选者上限MinEligibleCollators4出块者下限保底出块能力MaxInvulnerables20治理任命出块者上限KickThreshold1 个 Session6 小时不在线超过此值即被踢除UpdateOriginRoot 或 StakingAdminXCM 治理谁有权改参数值得注意的是UpdateOrigin采用了EitherOfDiverseEnsureRoot, EnsureXcmIsVoiceOfBody...的组合——不仅 Root 可以管理Relay Chain 通过 XCM 发出的治理指令也能直接操作提名集这是开放出块治理化的关键设计。 新手动手如何成为候选出块者在类似 parachain-template/runtime/src/lib.rs 的链上参与开放出块的步骤是使用session setKeys为本账户注册 Session/Aura 出块密钥未注册会报ValidatorNotRegistered确保余额可质押CandidacyBond调用collatorSelection registerAsCandidate完成提名先到先得超过DesiredCandidates时会被TooManyCandidates拒绝保持节点在线——每个 Session 结束时KickThreshold内没出过块就会被踢出并退还押金。 源码地图核心逻辑提名、踢除、奖励、Session 管理pallets/collator-selection/src/lib.rs权重与基准测试pallets/collator-selection/src/weights.rs、pallets/collator-selection/src/benchmarking.rs存储版本迁移pallets/collator-selection/src/migration.rs集成示例parachains/runtimes/assets/asset-hub-polkadot/src/lib.rs与parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs✅ 小结cumulus 的 collator-selection Pallet 用「两层提名集 押金 懒惰踢除 最小保底」四个简单机制就实现了 Parachain 的开放出块治理者提供稳定底座Invulnerables社区通过质押押金自由进出候选池Candidates出块奖励通过 Pot 自动分配。规则简单透明却恰好满足了开放出块所需的弹性与安全底线。【免费下载链接】cumulusWrite Parachains on Substrate项目地址: https://gitcode.com/gh_mirrors/cum/cumulus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

C语言实现轻量级AOP:宏+钩子+注册三层架构

C语言实现轻量级AOP:宏+钩子+注册三层架构

1. 这不是“C语言实现Spring”,而是用C的筋骨重构AOP的思维范式很多人第一次看到“C语言中的面向切面编程”这个标题,第一反应是皱眉——AOP不是Java里Spring框架的专属玩具吗?C语言连类都没有,哪来的“切面”“织入”“代理”&am…

2026/8/26 21:01:52
常用配件管理:从分类到存储,构建高效工作流的核心技能

常用配件管理:从分类到存储,构建高效工作流的核心技能

1. 项目概述:为什么“常用配件”值得你花时间研究? 每次打开工具箱、整理工作台,或者面对一堆散落的电子元件时,你是不是也常常陷入一种“东西不少,用时找不到”的尴尬?我们总说“工欲善其事,必…

2026/8/26 21:01:52
嵌入式Linux设备树DTS语法详解与实战配置指南

嵌入式Linux设备树DTS语法详解与实战配置指南

1. 项目概述:从“硬编码”到“软描述”的进化如果你是从单片机或者裸机开发转向嵌入式Linux的,那么第一次接触“设备树”这个概念时,大概率会感到困惑。在传统的单片机开发中,我们习惯于在代码里直接写死硬件信息:比如…

2026/8/26 21:01:52
基于MCP协议构建安全本地文件读取服务:Node.js实现与安全实践

基于MCP协议构建安全本地文件读取服务:Node.js实现与安全实践

1. 项目缘起:为什么我们需要一个“本地文件读取工具服务”?在开发者的日常工作中,与本地文件系统打交道是家常便饭。无论是读取配置文件、解析日志、加载静态资源,还是处理用户上传的临时文件,我们总是在重复编写类似的…

2026/8/26 21:01:52
AI明星是趋势还是噱头?从内容价值到AI Agent的落地拆解

AI明星是趋势还是噱头?从内容价值到AI Agent的落地拆解

“观众需要AI明星吗?”这个问题,最近几乎每隔几天就会出现在我刷到的内容流里。有人把虚拟偶像演唱会视频转给我看,有人已经把AI短剧跑完了几十集,还有人正纠结要不要做一个AI代言人。作为一个长期关注AI应用落地方向的人&#xf…

2026/8/26 21:01:52
Claude Code新手入门:MCP、Token与Skill核心概念与实战配置指南

Claude Code新手入门:MCP、Token与Skill核心概念与实战配置指南

1. 项目概述:为什么Claude Code让新手既兴奋又困惑? 最近在开发者圈子里,Claude Code的热度居高不下。作为一个深度体验过Codex、Cursor以及各类AI编程工具的老码农,我最初接触Claude Code时,也经历了从“不明觉厉”到…

2026/8/26 20:56:51