4

2020.12 - Substrate 技术更新速递

 3 years ago
source link: https://learnblockchain.cn/article/1911
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2020.12 - Substrate 技术更新速递

更新了可扩展的 MultiAddress 地址格式,重命名 Trait 为 Config ,简化 frame_system 中 weight 参数,简化 frame_system 中 weight 参数,移除 ExtrinsicsRoot 存储项

作者:Substrate 大使 李卫

重要提交和发布

  • 更新了可扩展的 MultiAddress 地址格式 - 引入了 MultiAddress 替换了原来扩展性较差的地址格式,允许 Substrate 为单个 AccountId 提供不同编码格式,包括 Index、Raw、Address32、Address20。可以为 AccountId 的使用带来更多便利,如 Address20 是类似 ETH 的地址格式,可以更方便地用于 EVM pallet 中。
  • 重命名 Trait 为 Config - 将所有 pallets 的 trait 名字从 Trait 改为 Config。Config 在语义上更容易理解,目前仍然可以使用 Trait 作为 trait 的名字来声明 pallet。
  • 简化 frame_system 中 weight 参数 - 简化了 weight 配置的参数为 BlockWeights 和 BlockLength。新的 weight 参数可以由 builder 构造,构造时验证配置 weight 是否正确,从 weight 参数中派生出实际的最大区块 weight,能帮助开发者更好地理解区块中 weight 相关的概念;同时,参数配置了合理的默认值,简化了测试时使用 weight 的模拟。
  • 增加 Post pallet 用于在链上存储任意的数据信息 - Post pallet 所支持的功能,类似于备注或评论功能,可以基于 AccountId 或 Topic 作为 key 值进行查询,可以进一步扩展实现类似博客(Account -> Topic -> Post)或者话题(Topic -> Account -> Post)的功能。
  • 移除 ExtrinsicsRoot 存储项 - 之前 Substrate 链在区块构建初始化时,会将 Default::default()存入 ExtrinsicsRoot 中,作为外部的 storage root;在区块构建结束时,会重新计算 storage root 并移除初始值。如果此时处于区块构建和区块导入的中间状态,由于外部的 storge 发生改变,区块构建过程中计算的 storge root 可能会不一致。现在移除了 ExtrinsicsRoot 存储项,修复区块构建时 storage root 的不匹配的问题。

设计方案讨论

  • Runtime 增加 ChainExtension 类型支持合约功能扩展 - 该功能由 ink!合约的开发者提出和设计,参考 paritytech/ink/issues/585。这将允许 ink!合约端可以和 Substrate 链进行交互,获取链上信息以及调用链的功能,也可以通过该接口实现合约的权限控制。
  • Runtime 更新失败后自动还原 - 当进行 Runtime 的更新时,即便通过了自认为完备的测试流程,依然会存在失败的可能性。当前 Runtime 更新失败后,需要手动干预修复损坏的 Runtime。在这个 issue 中,提出了 Runtime 更新失败后,避免手动干预,让程序进行自动还原的流程。
  • Substrate 的 crate 持续部署工具 - 创建了 cargo-unleash 工具,用于自动处理 substrate 的 crate 持续部署相关问题并发布。主要包括发布集成 semverver 的工具,修复 substrate 相关包的编译问题,确保可以使用最新的 nightly 工具链编译最新的 substrate,对每一个 PR 运行 semverver 检查的 CI 测试等。

文档和资料

技术生态和社区

  • Substrate 开发者年终聚会 - 由 Parity 和一块 plus 主办的 Substrate 开发者年终聚会将于 2020 年 12 月 26 日晚深圳举行,届时会有 Parity 工程师 Kaichao、Maggie 和 Parity 中国市场负责人 Helena 的主题分享,以及 Substrate 的开发者交流。
  • Substrate Hackathon 在杭州举办 - 2020 年 12 月 19 日~12 月 20 日,DoraHacks 将在杭州发起 Substrate Hackathon,这场 Hackathon 的主题是 Substrate 与波卡生态的相关技术。已经召集了多位波卡生态贡献者举办 workshop 进行赛前指导,并发布在了 DoraHacks 的 bilibili 视频空间
  • Substrate 武汉研修班 - 2020 年 12 月 10 日~12 月 13 日,Phala 团队尹航、王喆与 Crust CTO 范子琨、Litentry 开发者吴逸飞、一块 + 社区雅珣、Substrate 开发者郭斌、龙京奇一道前往武汉,与华中科技大学软件学院、华中科技大学教育与培训学院、湖北省运筹学会数据科学与大数据专委会合作举办了武汉市首届区块链技术(高级)研修班。
  • HRMP(Horizontal Relay-routed Message Passing)合并入 cumulus 主分支 - HRMP 是一个低效但与 XCMP 拥有相同接口和功能的平行链间消息传递机制,可以在早期满足团队的测试、集成和使用上的需求。
  • Rococo V1 发布 - Rococo V1 发布会将于 2020 年 12 月 17 日 00:00 举办,主要包括 Rococo V1 测试网,如何维护分配平行链插槽的方案等内容的介绍,V1 版本的发布将加快推动系统级平行链的推进进程。

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2020-12-21 10:45
  • 阅读 ( 87 )
  • 学分 ( 3 )
  • 分类:Polkadot

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK