为什么我不能按照 Substrate 教程升级链运行时?

问题描述

我按照 https://substrate.dev/docs/en/tutorials/upgrade-a-chain/ 中的说明测试升级链运行时。当我提交 setCode 事务时,我收到以下错误...

无效交易会耗尽区块限制

我明白错误的含义。但是,我不明白为什么教程失败了。有没有其他人能够使本教程工作。对此的任何帮助将不胜感激。

解决方法

是的,就像它告诉你的那样transaction would exhaust the block limits

所以有两种方法可以实现这一点。

  1. 就像 2075 所说的使用 sudoUncheckedWeight,这将绕过权重检查
  2. 使用 schedule 模块,这将在特定块高度安排运行时升级,然后执行它
  3. 民主(实际上这是隐含地调用时间表)
,

您是否尝试通过 UI 进行升级?如果您通过 Developer > Sudo 并选择 sudo - sudoUncheckedWeight,然后选择 system - setCode 它应该可以工作。

另一条路线是通过 Developer > Extrinsics,选择您的 sudo 帐户,然后选择 sudo、uncheckedWeight 和 system、setCode。