2020.12 - Substrate 技术更新速递

  • kaichao
  • 更新于 2020-12-21 10:45
  • 阅读 2970

更新了可扩展的 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版本的发布将加快推动系统级平行链的推进进程。
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
kaichao
kaichao
Website: https://whisperd.tech Email: kaichaosuna@gmail.com