写点什么

Substrate 源码追新导读: 修复 BEEFY 的 gossip 引擎内存泄漏问题, 智能合约删除队列优化

作者:彭亚伦
  • 2022 年 6 月 30 日
  • 本文字数:1070 字

    阅读完需:约 4 分钟

Substrate 源码追新导读: 修复BEEFY的gossip引擎内存泄漏问题, 智能合约删除队列优化

20220620 - 20220626

新增staking-miner info命令

staking-miner 是 substrate 提供的一个工具, 用来验证和计算 substrate 链的 NPoS 选举, 以便做出优化, 其作用是不断监听pallet-election-provider-multi-phase, 來提交 NPoS 的选举解决方案. 关于 Substrate 的选举流程和其算法方式, 我们后续会发专文来详细说明. staking-miner 通常可以使用 cargo build --release --locked --package staking-miner命令来生成相关文件, 然后通过docker build -t staking-miner -f scripts/ci/dockerfiles/staking-miner/staking-miner_injected.Dockerfile target/release命令来生成注入, 最后通过staking-miner命令来运行.


本次更新提供了一个 info 子命令, 用于打印当前的 runtime 和staking-miner支持版本.


详情: https://github.com/paritytech/polkadot/pull/5577

Contract 优化: 减少待删除储存项队列大小

Pallet Contracts 中, 对于删除的 contract 会放入DeletionQueue中去,当前对于该队列设置为可以有157977项, 其中每个项目有 128byte, 总计 19Mib 大小. Parity 开发者们认为, 从删除一个 contract 的行为似乎不太常见, 因此将其調整为 128 项, 这样该队列的大小就缩减到 16KiB 了.


详情: https://github.com/paritytech/substrate/pull/11696

修复 BEEFY 的 gossip 引擎内存泄漏问题

之前 BEEFY 协议(波卡中用于同以太坊等非 substrate 构建的链跨链协议)的 gossip 广播引擎存在内存泄漏问题, 具体是当 BEEFY 共识算法进入 client 阶段的时候, runtime 并没有实际使用 BEEFY, 因此会导致内存泄漏. 本次更新对其做了修复. 但由于部分平行链现有代码已经在运行, 因此平行链可以自行选择是否对此升级.


详情: https://github.com/paritytech/substrate/pull/11694

pallet-beefy-mmr 增加新的 API

pallet-beefy-mmr 是 pallet-beefy 的协同模块, 用于非 substrate 链同波卡生态的跨链; 本次更新增加了一些 hook 函数, 并实现了pallet-beefy::OnNewValidatorSet事件用于通知 BEEFY 的验证者, 以及authority_set_proof用于返回当前的 BEEFY authority, next_authority_set_proof返回下一个等等.同时在测试网 Rococo 中添加了上述 API 供测试.


详情: https://github.com/paritytech/substrate/pull/11406

XCM 执行器增加含有权重费用的事件

当前 XCM 执行器执行完 XCM 指令后, 触发的结果事件是没有包含权重费用的; 本次更新将其添加进去; 此后, 无论 XCM 指令执行是失败还是成功, 触发的事件都会记录究竟花费了多少权重费用; 开发者后续可以根据其结果来做相应的统计和优化.


详情: https://github.com/paritytech/cumulus/pull/1286




本文为 SEP Creation 原创组文章, 作者彭亚伦


未经许可, 请勿转载.

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

彭亚伦

关注

A Rustacean and Substrate Evangelist 2021.01.25 加入

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

评论

发布
暂无评论
Substrate 源码追新导读: 修复BEEFY的gossip引擎内存泄漏问题, 智能合约删除队列优化_Substrate_彭亚伦_InfoQ写作社区