波卡如何通过 Runtime 升级改变链的逻辑?|Polkadot Wiki

PolkaWorld

共 2366字,需浏览 5分钟

 ·

2023-01-13 04:28

加入 PolkaWorld 社区,共建 Web 3.0!

Runtime 升级让波卡能够改变链的逻辑,而不需要硬分叉。本文译自波卡官方文档 Polkadot Wiki 的「Runtime 升级」章节。

无分叉升级

你之前可能在区块链领域遇到过 “硬分叉” 一词。当区块链的逻辑发生变化时,就会发生硬分叉,以至于不包含新改变化的节点将无法与包含新变化的节点保持一致。此类更改是向后不兼容的。硬分叉可能具有政治性,取决于升级的性质。并且硬分叉在逻辑上很繁琐,这主要取决于网络中需要升级其软件的节点数量(可能有数千个)。

波卡节点没有在节点中编码 runtime(链的 “业务逻辑”),而是包含了 WebAssembly 执行主机。它们根据很底层和很完善的指令集保持共识。波卡 runtime 存储在波卡区块链本身。

因此,波卡可以通过升级存储在链上的逻辑来升级其 runtime,并消除了需要数千个节点运营商提前升级给定区块编号的协作挑战。波卡利益相关者通过链上治理系统提出并批准升级,该系统也会自主执行升级。

新客户端发布

遵循现有的 runtime 逻辑,将存储在区块链上的 Wasm runtime 更新为新版本。升级会在稍后被包含在区块链本身中,这意味着网络上的所有节点都会执行它。通常,无需在 runtime 升级之前手动升级你的节点,因为它们会自动开始遵循链的新逻辑。仅当 runtime 需要新的 host 函数或网络/共识发生变化时,才需要更新节点。

为给定 runtime 版本构建的交易将不适用于更高版本。因此,基于某个 runtime 版本构建的交易在以后的 runtime 版本中将无效。如果你认为你不能在升级前提交交易,最好等到升级发生后再构建它。

虽然升级你的节点通常不需要跟随升级进行,但我们建议跟随波卡版本并及时升级,特别是对于高优先级或关键版本。

不同用户的 runtime 升级

对于基础设施提供商

基础设施服务包括但不限于以下内容:

  • 验证者
  • 接口服务
  • 节点即服务 (NaaS)
  • 一般基础设施管理(例如区块浏览器、保管人)
  • 钱包

对于验证者来说,与网络保持同步是关键。有时,升级将要求验证者在特定时间范围内升级其客户端,例如一项发布包括对网络的重大更改。必须检查发行说明,从升级优先级开始并采取相应措施。

通用基础设施提供商除了及时关注波卡的发布和升级外,还应监控 runtime 事件和辅助工具(例如 Substrate API Sidecar)的变化。

为第 n 版 runtime 构造的交易将不适用于任何其他 >n 版 runtime 交易。如果一项 runtime 升级发生在广播先前构建的交易之前,你将需要使用适当的 runtime 版本和相应的元数据来重建它。

对于提名人

Runtime 升级不需要提名人采取任何行动,但我们始终鼓励大家了解最新情况,并参与最新的 runtime 升级 motion 和发布,同时密切关注网络中的节点如何应对新的升级。

监控变化

你可以对链进行监控以了解即将进行的升级。客户端发行说明包括与任何链上升级相关的任何提案的哈希值,以便于匹配。监控链的:

  1. democracy(Started)  事件和日志 index 和 blockNumber。此事件表明公投已经开始(尽管并不意味着它是 runtime 升级)。获取公投信息(例如通过 Sidecar 上的 pallets/democracy/storage/ReferendumInfoOf?key1=index&at=blockNumber),它的状态应该是  Ongoing 。找到结束块号 (end)  和执行延迟(delay)。如果公投通过,它将在 end + delay 块号执行。

  2. democracy(Passed)democracy(NotPassed)democracy(Cancelled)  事件引用索引。如果是 Passed,则需要在执行块的同一区块中查看 scheduler(Scheduled) 事件。

  3. democracy(PreimageNoted)  事件与 ReferendumInfoOf(index)  项目具有相同的哈希值。这可能是执行前的最后一个区块,但如果缺少它,它将不起作用。

  4. democracy(Executed) 实际执行的事件。在 runtime 升级的情况下,还会有一个 system(CodeUpdated) 事件。

你还可以监控 Polkassembly,以了解有关链上提案和公投的讨论。


原文:https://wiki.polkadot.network/docs/learn-runtime-upgrades

翻译:PolkaWorld


直播预告


1 月 12 日(本周四)晚 7 点,PolkaWorld 联合发起人晓杰将会在波卡世界直播间举办社区问答 AMA,为大家解答关于波卡的疑问。点击下方按钮预约直播。



  • PolkaWorld Telegram 群:

    t.me/polkaworld

  • PolkaWorld Youtube 频道:

    https://www.youtube.com/c/PolkaWorld

  • PolkaWorld Twitter:

    @polkaworld_org


更多内容


波卡周报|多个生态项目回顾 2022 重要里程碑!Gavin 分享 2023 波卡开发重点!

Dante:跨生态互操作谈了那么久,什么时候能实现?

Gavin Wood:波卡 2023 年计划

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报