okx

Substrate技术月报|2021.06-Substrate技术更新速递

时间:2023-07-12|浏览:206

作者:Kaichao

Hi,所有关注Substrate技术的开发者们~

Substrate技术与生态的6月最新动态来啦,本篇为Substrate第九次技术月报(2021年06月),enjoy!

01.重要提交和发布

GRANDPA:加强了grandpagossip的限制-可以减少当前网络中的相关消息,并且让gossip的机制更加的公平。

将SelectChain从同步变成异步接口-从而在接口实现中可以异步地读取一些子系统的信息。

存储项的remove_all等API添加了删除元素数量的限制-当集合类元素数量很多时,可以通过给定这一限制,分批次删除数据,影响的API有remove_all,remove_prefix,clear_prefix,kill_prefix。

增大wasm字节码可获取的内存大小限制至32MB-Substrate实现了freeing-bump内存分配器,可以动态的在一定范围分配内存,最新修改为32MB,用以解决staking模块占用内存过大的问题。

强制FRAMEv2中可调用函数需要声明为pub-从而更加符合rust语法。

为编译后二进制包提供的try-runtime命令添加了execute-block子命令-用户可以使用此命令在上一个区块的runtime状态的基础上执行提供的区块。

允许#[pallet::constant]宏作用于有多个接口约束的关联类型-即支持以下语法,

#[pallet::constant]

typeU:Get<u32>+From<u16>;

内置的balances模块新增transfer_all可调用函数-用来将所有的可用余额转出至另外一个账户。

允许对存储项的前缀即prefix重命名-默认使用的存储项定义时的字符串字面量,新标签#[pallet::storage_prefix="CustomName"]可以将prefix自定义。

抽象了NFT所需的一系列接口,uniquepallet实现了这些接口-包括Inspect接口可以读取NFT的属性信息,Mutate接口提供了铸造、销毁、设置NFT属性等的写操作。

wasm的执行引擎wasmtime升级至0.27-新版的wasmtime使用了新一代代码生成后端,效率有很大的提升,也修复了一些bug。

在chainspec中引入一个新的字段code_substitute-可以此字段的值替换链上的wasm,通常是链上wasm运行出现问题之后的临时解决方案。

同步区块时引入了FastSync模式-可以极大加快区块同步的速度,之前需要下载和验证每一个区块,使用FastSync之后,不再需要执行每个区块的验证,只需要额外下载最新链上状态的证明。

将pallet::hooks和pallet::call宏所对应的部分变为可选的。

定义了NamedReservableCurrency接口,并在balances模块实现了此接口-可以在对资产进行reserve时给定名字,更好的区分是哪个模块对资产进行的reserve操作。

为支持StorageChain添加了Runtime的模块transaction-storage-每个交易会被转换成trie包含了256个字节,transaction-storage模块保存了这些trie的root,并且随机选择上一个区块的一笔交易对应的字节进行验证。

02.设计方案讨论

实现了新的存储APICountedStorageMap-它在存储键值对的同时,可以记录当前map中元素的个数。

讨论:使用索引序列处理存储单元的前缀-存储项的命名位于代码中,但是和数据库所存储的键密切相关,目前在代码重构时很难去改变存储项名称,因为会影响数据库的存储,使用索引可以减轻这一问题,不过维护索引也很麻烦,目前的结果是引入自定义存储别名,而不是使用索引。

将Wasmer集成到Substrate沙盒环境-目前Substrate的runtime执行支持wasmi和wasmtime,wasmtime执行速度更快,但是只支持可信代码即runtime,鉴于安全,Substrate的ink智能合约还是使用解释执行的wasmi,引入wasmer这种更适合区块链执行环境的编译和执行工具,可以在未来有更多的选项,并通过实际的测试选择更高效的wasm执行方式。

03.文档和资料

TransactionPool技术文档-涵盖了Substrate交易池的作用、设计原理和数据结构的解析。

视频:使用try-runtime测试存储迁移和runtime升级。

视频:SubstrateforSolidityDevelopers-AnIntroduction。

视频:WASMSmartContracts介绍。

删除Polkadotruntime里的randomnesscollectiveflip模块-此PR详细的列出了如何在删除模块的同时进行存储的清理。

04.技术生态和社区

PolkadotBuildathonIndia介绍。

Web3OpenGrands赞助开发Zeroknowledgeplonk模块。

PolkadotHackathon第二届(夏季)黑客松比赛报名倒计时1天!

05.跨链协议

Polkadot开发指南文档:ChainSelection-总结了fork-choice和chainselection的设计原理、实现描述。

实现了Polkadot协议中的争议处理子系统-在争议出现时,允许验证人恢复平行链候选区块数据,验证候选区块,并对争议给出投票。

向Westend添加Westmint为受信任的Teleport平行链-当两条链彼此信任对方的runtime逻辑时,可以添加对方为允许Teleport的源,进而可以通过xcm的TeleportAssets消息来传送资产。

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

趣玩币 皮卡丘资讯 减肥瘦身吧 起名取名网 币圈论坛 币爸爸 美白没斑啦 二手域名 代特币圈 玩合约 币圈官网 爱网站 去玩呗SPA 币圈ICO官网 兼职信息网 百科书库 妈妈知道 宠物丫 借春秋财经 百悦米 币圈交流群 黄金行情 数字财经 周公解梦 數字黃金 借春秋 谷歌留痕 宝宝起名 装修装饰网 聚币网 免费电影 趣开心资讯 元宇宙Web 金色币圈 今日黄金 佩佩蛙官网 旅游资讯网 秒懂域名 培训资讯网 非小号行情 茶百科 谈股票 玩票票财经 天天财富
在区块链世界中,智能合约不仅是代码的信任,更是商业的革命。通过了解其在供应链、版权保护等领域的应用,您将真正体验到智能合约的无限可能性
区块链世界GxPiKaQiu.com ©2020-2024版权所有 桂ICP备16002597号-2