写点什么

Substrate 源码更新导读八月第 1 周: 新版事务化存储层启用默认模式, Polkadot v0.9.27 发布

作者:彭亚伦
  • 2022 年 8 月 09 日
    浙江
  • 本文字数:1289 字

    阅读完需:约 4 分钟

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版本化了.

#[derive(Clone, Debug, PartialEq, codec::Encode, codec::Decode)]pub enum VersionedFinalityProof<N, S> {	#[codec(index = 1)]	/// Current active version	V1(SignedCommitment<N, S>),}
复制代码

本次改动同时修改了 Beefy 协议的 rpc api 接口:

pub struct Beefy<Block: BlockT> {-	signed_commitment_stream: BeefySignedCommitmentStream<Block>,+	finality_proof_stream: BeefyVersionedFinalityProofStream<Block>,	beefy_best_block: Arc<RwLock<Option<Block::Hash>>>,	executor: SubscriptionTaskExecutor,}
复制代码

本次调整也已经并入 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 原创组彭亚伦文章, 未经许可, 请勿转载.


发布于: 刚刚阅读数: 3
用户头像

彭亚伦

关注

In Rust We Trust 2021.01.25 加入

A Rustacean, and Substrate Evangelist, member of CRVA (RISC-V)

评论

发布
暂无评论
Substrate 源码更新导读八月第1周: 新版事务化存储层启用默认模式, Polkadot v0.9.27发布_Substrate_彭亚伦_InfoQ写作社区