2021.06 – Substrate 技术更新速递

这篇文章主要介绍了2021.06 – Substrate 技术更新速递 ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/23358.html

2021.06 – Substrate 技术更新速递是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,2021.06 – Substrate 技术更新速递学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉2021.06 – Substrate 技术更新速递比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

2021.06 – Substrate 技术更新速递

  • Substrate
  • 跨链

2021.06 Substrate 技术更新速递

重要提交和发布

  • GRANDPA: 加强了grandpa gossip的限制 – 可以减少当前网络中的相关消息,并且让gossip的机制更加的公平。
  • 将SelectChain从同步变成异步接口 – 从而在接口实现中可以异步地读取一些子系统的信息。
  • ef="https://github.com/paritytech/substrate/pull/9106">存储项的 remove_all等 API 添加了删除元素数量的限制 – 当集合类元素数量很多时,可以通过给定这一限制,分批次删除数据,影响的 API 有remove_all, remove_prefix, clear_prefix, kill_prefix
  • 增大wasm字节码可获取的内存大小限制至32MB – Substrate实现了freeing-bump 内存分配器,可以动态的在一定范围分配内存,最新修改为32MB,用以解决staking模块占用内存过大的问题。
  • 强制FRAME v2中可调用函数需要声明为 pub – 从而更加符合rust语法。
  • 为编译后二进制包提供的 try-runtime 命令添加了execute-block子命令 – 用户可以使用此命令在上一个区块的 runtime 状态的基础上执行提供的区块。
  • href="https://github.com/paritytech/substrate/pull/9050">允许#[pallet::constant]宏作用于有多个接口约束的关联类型 – 即支持以下语法, #[pallet::constant] type U: Get<u32> + From<u16>;
  • 内置的balances模块新增 transfer_all 可调用函数 – 用来将所有的可用余额转出至另外一个账户。
  • 允许对存储项的前缀即 prefix 重命名 – 默认使用的存储项定义时的字符串字面量,新标签#[pallet::storage_prefix = "CustomName"]可以将prefix自定义。
  • 抽象了NFT所需的一系列接口,unique pallet实现了这些接口 – 包括 Inspect 接口可以读取NFT的属性信息,Mutate接口提供了铸造、销毁、设置NFT属性等的写操作。
  • wasm的执行引擎wasmtime升级至0.27 – 新版的wasmtime使用了新一代代码生成后端,效率有很大的提升,也修复了一些bug。
  • 在 chain spec 中引入一个新的字段 code_substitute – 可以此字段的值替换链上的wasm,通常是链上wasm运行出现问题之后的临时解决方案。
  • 同步区块时引入了 Fast Sync 模式 – 可以极大加快区块同步的速度,之前需要下载和验证每一个区块,使用Fast Sync之后,不再需要执行每个区块的验证,只需要额外下载最新链上状态的证明。
  • 将pallet::hooks和pallet::call宏所对应的部分变为可选的。
  • href="https://github.com/paritytech/substrate/pull/7778">定义了NamedReservableCurrency接口,并在balances模块实现了此接口 – 可以在对资产进行reserve时给定名字,更好的区分是哪个模块对资产进行的reserve操作。
  • 为支持Storage Chain添加了Runtime的模块transaction-storage – 每个交易会被转换成trie包含了256个字节,transaction-storage模块保存了这些trie的root,并且随机选择上一个区块的一笔交易对应的字节进行验证。

设计方案讨论

  • 实现了新的存储API CountedStorageMap – 它在存储键值对的同时,可以记录当前map中元素的个数。
  • 讨论:使用索引序列处理存储单元的前缀 – 存储项的命名位于代码中,但是和数据库所存储的键密切相关,目前在代码重构时很难去改变存储项名称,因为会影响数据库的存储,使用索引可以减轻这一问题,不过维护索引也很麻烦,目前的结果时引入自定义存储别名,而不是使用索引。
  • 将Wasmer集成到Substrate沙盒环境 – 目前Substrate的runtime执行支持wasmi和wasmtime,wasmtime执行速度更快,但是只支持可信代码即runtime,鉴于安全,Substrate的ink智能合约还是使用解释执行的wasmi,引入wasmer这种更适合区块链blockchain执行环境的编译和执行工具,可以在未来有更多的选项,并通过实际的测试选择更高效的wasm执行方式。

文档和资料

  • Transaction Pool 技术文档 – 涵盖了Substrate交易池的作用、设计原理和数据结构的解析。
  • 视频:使用try-runtime测试存储迁移和runtime升级。
  • 视频:Substrate for Solidity Developers – An Introduction。
  • 视频:WASM Smart Contracts 介绍。
  • 删除Polkadot runtime里的randomness collective flip模块 – 此PR详细的列出了如何在删除模块的同时进行存储的清理。

技术生态和社区

  • Polkadot Buildathon India介绍。
  • Web3 Open Grands 赞助开发 Zeroknowledge plonk 模块。

跨链协议

  • Polkadot开发指南文档:Chain Selection – 总结了fork-choice和chain selection的设计原理、实现描述。
  • 实现了Polkadot协议中的争议处理子系统 – 在争议出现时,允许验证人恢复平行链候选区块数据,验证候选区块,并对争议给出投票。
  • 向Westend添加Westmint为受信任的Teleport平行链 – 当两条链彼此信任对方的runtime逻辑时,可以添加对方为允许Teleport的源,进而可以通过xcm的TeleportAssets消息来传送资产。

本文首发于:https://zhuanlan.zhihu.com/p/384213810

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/23358.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 2021.06 – Substrate 技术更新速递

提供最优质的资源集合

立即查看 了解详情