我想从现有的基板专用网络中添加/删除验证器。
按照启动私有网络的教程,我能够创建一个原始的自定义规范并使用验证器启动一个新的链。
但是,我不确定如何将新的/删除旧的验证器添加到网络中。所以这些是我尝试的步骤:
- 将 customSpecs.json 编辑为所需的验证器
- 构建新的raw_customSpecs.json
- 使用新的 raw_customSpecs.json 重新启动节点
- 使用新raw_customSpecs中的十六进制代码通过 polkadotjs 使用 sudo 升级运行时,类似于给定的示例。
我想得到一些关于如何正确执行此操作的指示,因为我仍然无法使用我所采取的步骤设置新的验证器。
谢谢!
您可以通过多种方式添加/删除验证器。使用 chain-spec 就是其中之一,但您在尝试使用该规范应用运行时升级时走错了路。运行时升级通常只会更新一个存储项:code
,这是运行时的代码。另一方面,您的验证器存储在pallet_staking
和pallet_session
模块的其他存储项中。因此,确实应用运行时升级不会让您取得任何进展。
事实上,如果您可以重新启动节点,则可以在更新步骤 1 后更改初始验证器并再次运行链:
将 customSpecs.json 编辑为所需的验证器
要即时完成此操作,您需要研究放样托盘的工作原理。您可以bond
新账户,如果ValidatorCount
超过当前验证者数量,下一轮选举将选出新账户。当然,网络中必须存在一个拥有这个新绑定账户私钥的节点,才能使一切正常运行。您可以使用 sudo 来增加ValidatorCount
。