Substrate 源码更新导读八月第 1 周: 新版事务化存储层启用默认模式, Polkadot v0.9.27 发布
Beefy 协议改用版本化确定性通讯验
BEEFY 协议是基于 GRANDPA 最终性协议之上的辅助协议。该协议允许 Substrate 链使用 GRANDPA 最终性协议来桥接非 Substrate 链(现在主要支持 ETH 主网).
在 Beefy Pallets 中, 节点在 GRANDPA 共识确定性过程中, 以下验证者之间的知会 channel 会使用SignedCommitments
:
block-import <-> voter channel
voter <-> RPC-worker channel
RPC public API
尽管目前的 Beefy 协议验证者通讯层只有一种实现, 但考虑将来可能出现的版本化问题, 类似于 XCM 各个版本兼容性的方式, 同样在此处也改用了VersionedFinalityProof
结构, 从此结构源码可以轻易看出, 这就是将原来SignedCommitmentss
版本化了.
本次改动同时修改了 Beefy 协议的 rpc api 接口:
本次调整也已经并入 polkadot 主分支了.
详情: https://github.com/paritytech/substrate/pull/11962
相关: https://github.com/paritytech/polkadot/pull/5852
简化新版事务化存储层使用, 并启用默认模式
自#11431以来, 新版的事务化存储层已经逐步得到应用, 为了将其贯彻替换旧版本, 本次更新对 frame_support
做了一些改动, 使得新版储存层成为默认方式, 之前的in_storage_layer
, 和 DispatchWithStorageLayer
traits 弃置, 改为熟悉的 with_storage_layer.
这个改动让开发者在调用 Call 分派时, 更清楚知道是否使用事务化存储功能; 但目前 #[transactional]
宏是否去除目前还没有定论.
详情: https://github.com/paritytech/substrate/pull/11918
node-runtime
更名为 node-kitchensink-runtime
这是比较特别的调整, kitchensink
在英语中的意思比较丰富, 但在此处表达的意思是'演示, demo"之类的意义, 大致上说表达不能用于生产环境, 仅仅是作为演示作用的意思.
开发基于 substrate 的链, 通常会从 substrate-node-template
开始, 而在 substrate repo 本身的 node 模块, 本质上是没有做过生产环境适用测试的, 仅仅是技术演示作用. 因此本次将改名虽然乍一看有点诡异, 但也算是合情合理.
详情: https://github.com/paritytech/substrate/pull/11930
substrate-node-template
地址: https://github.com/substrate-developer-hub/substrate-node-template
Polkadot 发布 v0.9.27 版本
本次虽然是小版本发布, 但是等级为中级, 需要相关项目方在一定时间内做出相应调整, 其中包含的最主要的重点更新是 #5798
以及相关的paritytech/cumulus#1433 更新, 该更新主要是对 Westend
xcm 中开启了平行链集(Collectives parachain)的 teleporter
功能.
发布详情页: https://github.com/paritytech/polkadot/releases/tag/v0.9.27
本文属于 SEP Creation 原创组彭亚伦文章, 未经许可, 请勿转载.
版权声明: 本文为 InfoQ 作者【彭亚伦】的原创文章。
原文链接:【http://xie.infoq.cn/article/b726107b7c4905a651ebf362c】。文章转载请联系作者。
评论