2021.02 - Substrate 技术更新速递

Substrate v3.0发布 - 最显著的变化是可以使用新的属性宏pallet来替代之前的宏decl_*来编写runtime模块。

重要提交和发布

  • - 最显著的变化是可以使用新的属性宏pallet来替代之前的宏decl_*来编写runtime模块。
  • - Bitswap是IPFS的核心模块,用于在节点间交换数据块,Substrate实现此协议,一个Substrate的节点也会变成IPFS网络的一个节点,从而借助IPFS来提供交易的细节信息,而链上只需要存储交易哈希就行了,未来链上可以只存储区块Merkle Trie的根,进而优化链上的存储,也是构建存储链(Storage Chain)的一个重要功能。
  • - construct_runtime!生成的PalletInfo实现能够返回唯一的模块名作为存储项的前缀,而之前手动构造的runtime返回的模块名不是唯一的,如果存储项的名称一样会发生存储碰撞,此PR修复了这一问题。
  • - 交易池里现在可以获取到是否是验证人的信息,是底层组件交互的典型方式。
  • - 之前SS58地址的标识符只支持0~47,随着项目逐渐增多,已经不够分配,这一提交将标识符的范围提高至16383。
  • - FRAME v2引入的pallet宏,语法更加简洁、可读性更高、IDE支持更好,已经足够稳定,可用于生产环境,有越来越多的Substrate内置模块已经更新使用pallet宏。
  • - 之前只有合约的状态会被收取租赁费用,本修改将租赁费用修改为rent = storage_rent + (code_size / num_code_users),合约代码的存储费用由使用方共同承担。
  • - 验证人在偏好设置ValidatorPrefs里将blocked设置为true,来阻止任何新的提名人;通过staking模块的可调用函数kick将给定的提名人从自己的列表里踢出。
  • - 通过一些列的重构将模块的功能划分的更加单一、清晰,primitives/election-providers提供了选举功能的抽象接口,具体的选举算法实现该接口,并注入到使用的模块如staking模块中。
  • - 复用rust-libp2p提供的通用请求响应协议,只需要自定义协议的名称和格式、请求和响应的数据格式就可以重构包含复杂逻辑的通信协议如区块请求、finality请求以及轻客户端请求。

设计方案讨论

  • - 当前Substrate模块在同步区块头的时候容易受到一定形式的攻击,比如无限期地写入存储、无边界迭代等,本文提出了一个解决方案,即引入一个“中间件”模块,它的功能是验证区块头的最终性和ancestry proof。
  • - 讨论的内容包括:Polkadot生态对链上身份的需求,社区哪些团队在进行相关的开发及各自的关注点等。

文档和资料

  • - 包括了几乎所有的知识库、教程,很多社区的小伙伴参与到了翻译和校对之中。
  • - 此文章包含了点对点通信的介绍,libp2p的基本介绍,以及Substrate如何使用libp2p实现点对点的通信。

技术生态和社区

  • - 可以是技术相关,也可以是非技术的主题,欢迎Polkadot社区构建者分享自己的案例和经验。
  • - 本次黑客松有多个参赛类别,包括平行链、独立链、联盟链、智能合约、生态工具等等,有想法就来写代码吧!
  • - 数十名开发者在一起编写runtime模块,学习如何使用Substrate进行智能合约开发,以及Polkadot的生态介绍。
  • - 第一个系统的英文Substrate技术课程,每隔一段时间会有一期课程。
  • - 通过这一桥接,可以为Polkadot生态的平行链和平行线程提供另一个高可用的存储层。
  • - OpenZeppelin在以太坊平台提供了一系列的开源智能合约,如果能够使用Rust重写这些智能合约将极大地促进WASM智能合约的技术推广和安全标准。

跨链协议

  • - 引入了新的存储项ParaLifecycles跟踪给定平行链/平行线程的当前生命周期,可能的生命周期有OnboardingAsParathread(以平行线程的形式准备上线)、OnboardingAsParachain(以平行链的形式准备上线)、Parathread(当前是平行线程)、Parachain(当前是平行链)、UpgradingToParachain(当前是平行线程,打算升级成平行链)、DowngradingToParathread(当前是平行链,打算降级至平行线程)、OutgoingParathread(退出平行线程)、OutgoingParachain(退出平行链),可以被拍卖模块和转换功能使用。
  • - 中继链通过Approval过程确保只有有效的平行区块能够最终确认,Approval投票被分为两部分Assignments和Approvals,验证人首先广播自己校验候选区块的意图,校验成功后广播自己的赞成票。

本文参与2022世界杯预选赛赛程直播社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2021-02-24 11:14
  • 阅读 ( 1124 )
  • 学分 ( 4 )
  • 分类:必威西甲

0 条评论

请先 登录 后评论
kaichao
kaichao

18 篇文章, 680 学分