Hi,所有关注 Substrate 技术的开发者们~
S ubstrate 技术与生态的 5 月最新动态来啦 ,本篇为 * S ubstrate * 第八次技术月报(2021 年 05 月),enjoy!
01.
重要提交和发布
-
为了在 benchmarking 时可以估计出存储项的编码结果最大值,引入了新的接口 BoundedEncodedLen - 为基本类型、固定大小的数组、tuple、BoundedVec、Option、Result 等等 Substrate 所支持的存储数据类型添加了对应的实现。
-
从 BlockBuilder runtime api 中删除了 random_seem 方法 - 此方法并没有被使用,在 runtime 里如果需要随机数应当使用 Randomness API 。
-
在 frame_support 的 pallet_prelude 中添加了 BoundedVec - 无需额外的引入就可以直接使用 BoundedVec 这一数据类型,runtime 开发时,对于 vector 集合类型也应优先使用此类型, 例子 。
-
增加了获取 reserved nodes 的 RPC 接口 - Reserved nodes 是节点所设置的保留节点,用于网络之间的连接,如果节点把 reserved only 设置为 true,那么只能连接 reserved nodes。
-
将 runtime version 嵌入 wasm 的 custom section - 当前 runtime 的 wasm 暴露了一个函数 Runtime_version 来返回其版本信息,这种方式需要首先启动 Substrate runtime 执行环境,再执行该函数才可以获取结果,这种方式太重了。 通过在 wasm 的 custom 添加 runtime 版本信息,只需要遍历不同的 section 再进行解码就可以了 。
-
为 Substrate 底层通信协议引入了回退机制 - 遗留的通信协议很多需要重新命名,为了向后兼容,在配置某个通信协议的时候可以传入回退的协议名称。
-
subkey:显示公钥的 SS58 编码 - 对于 sr25519 和 ed25519 密码算法,account id 和公钥信息是一致的,因此 account id 经过 SS58 编码获取的 address 和公钥的 SS58 编码结果是一样的;对于 ECDSA,是将公钥进行 blake2 算法哈希之后获取的 account id,相应的,SS58 编码结果也就不再相同。将公钥的 SS58 编码结果显示出来,可以方便的使用在 chain spec JSON 文件和 session keys 的编码中。
-
实现了 StorageNMap - 这一新的存储类型可以潜在地支持 3 个甚至更多键的映射类型,也可以在将来替换 StorageMap 和 StorageDoubleMap 类型。
-
引入了 PalletInfoAccess 接口,并在 Pallet 结构体应用的 pallet 宏里进行实现 - 此接口提供了 pallet 的 index 和 name,并存在于 metadata 中,潜在地,可以将目前 runtime 中配置的模块 PalletId 删除,而在 pallet 实现里直接使用此接口提供的信息。
设计方案讨论
-
关于在 pallets 里废弃 runtime upgrade 方法的简单讨论 - runtime 升级过程中如何处理遗留数据,对开发者产生了很大的负担,希望一个开发者友好的 on_runtime_upgrade 替代方案能够尽快实现。
-
通过类型信息构建 Substrate 链的元数据 - 使用了 scale-info ,可以 极大地降低客户端解析和维护元数据的负担 。
-
Statemint:支持使用 Assets 模块的资产支付交易手续费 - 如何使用其它链的资产为当前链支付交易费用。
03.
文档和资料
-
添加了更多 XCM 代码的引用文档 - xcm-format 文档比较抽象,结合实现代码和代码注释可以更好地理解消息格式和传递的机制。
-
官方存证教程更新至 FRAME v2 - FRAME v2 对开发者更加友好,官方教程正在逐步迁移使用新的 API。
技术生态和社区
-
Polkadot Decoded 线上活动将在 5 月 19 号和 20 号举行 - 不仅有最新的 Polkadot 进展,还会有 Substrate 技术的深入分享 。
-
Substrate 构建者计划里程碑更新 - 这一计划是 Parity 支持社区团队开发的重要方式,包括构建生态工具、基于 Substrate 的链等,目前有 超过 50 个团队 , 涵盖了 DeFi、身份、预言机、游戏等多个领域 。
-
RelayChain 播客邀请 Tether CTO Paolo 讨论稳定币创新、合规和如何走向主流 - 讨论了 Tether 部署区块链上的标准,如何在 Polkadot 生态上线,非美元稳定币的范畴,去中心稳定币的风险等等。
-
2021 Web3 bootcamp 12 支入选团队公布 - 经过为期数月的筛选, 最终 12 支团队成功入选由 Parity、Web3 基金会、万向区块链合作的训练营 。
-
Polkadot 101 入门课程 - 内容包括 Polkadot 中继链工作原理,什么是平行链、平行线程,链上治理,如何使用 polkadot js SDK,以及 Substrate 开发框架的基本知识。
-
第二届夏季 Polkadot Hackathon 大赛开启报名了 - 第一届黑客松成功举办,一些参赛团队脱颖而出,期待第二届能有更多优秀的开发者、团队一起参与进来。
-
2021 年 Substrate 开发者聚会·西安站 正式开启报名,将于 5 月 23 号举办 - 内容包括 Parity 与 Web3 基金会将如何支持开发者加入生态建设,使用 Substrate 开发第一条区块链,Bifrost 系统中 SALP 与 SLP 的设计等等。
跨链协议
-
Kusama runtime 代码支持注册平行链 - 平行链的相关的功能正在逐步上线到 Kusama 网络。
-
引入 reserve-asset 跨链转账外部交易 - XCM 定义了多种跨链资产转移的方式,其中一种形式是 reserve 资产,例如,chain A 上的 account 1 想转移某个资产到 chain B 上的 account 2 账户里,那首先将 account 1 的资产转移至 chain A 上的 chain B 代表账户,再发送一条通知消息给 chain B,chain B 将对应的资产分配给 account 2。
-
新增保留 parachain ID 的外部交易 - ID 是自增的,按获取的顺序分配给交易发送者。
-
新增 teleport asset 的可调用函数 , 修改 teleport asset 消息实现,使用 check account 记录转入和转出,维护总的发行量 - 当两条链彼此信任对方的 STF (状态转换函数)时,另外一种可用的资产转移形式。
-
向 Kusama 的 runtime 添加 Auctions 和 Crowdloans 模块 - Auctions 模块包含了创建拍卖、竞拍、取消拍卖等一系列功能,Crowdloans 模块管理了平行链通过众贷的形式筹集插槽竞拍资金的记录和操作流程,这两个模块是平行链上线的关键功能。
-
新增 XCM 交易来源,以及相应的转换器 - 外部交易的来源不仅可以链上的账户,还可以通过 XCM 指定。
学习 Substrate: https://substrate.dev/
扫码关注公众号,回复“1”加入开发者社群