Substrate 技术及生态 4 月大事记|Coretime 成功迁移 XCM、BEEFY 正式启动

 

2024/4 第 43期

本期月报由 Substrate Evangelist

@AmadeusGB创作

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

「Substrate 生态项目技术月报」

由 OneBlock+ 出品,每月汇总整理 Substrate 生态各领域项目的技术进展,本篇为 Substrate 生态项目 4 月技术月报,Enjoy!

 

 

01重要提交和发布

1.Kusama v1.2.0 Coretime 错误修复并迁移 XCM 成功:Coretime Chain 已部署在 Kusama 上,随着 4 月中旬运行时升级 1.2.0 的颁布,从拍卖模型的租赁迁移到 Coretime 的尝试失败了。在过渡到核心时间期间,中继运行时升级尝试使用 XCM 迁移租约,但由于权重不足而失败,从而阻止了迁移,此 PR 解决了这两个问题,其中包括执行三件事的迁移:

  • 将硬编码的租赁列表导入到状态中

  • 添加三个核心,以确保有足够的核心供每个人更新,同时也将预定的 3 个核心留给公开市场

  • 重新开始销售 迁移还使用try-runtime 测试更新修复

2.BEEFY 在 Polkadot 上正式启动:BEEFY 是 Bridge Efficiency Enabling Finality Yielde 的缩写,现已在 Polkadot 上正式启动。BEEFY 允许太坊网络中的客户端能够验证 Polkadot 网络处于的特定状态。BEEFY 在一个名为 GRANDPA 的现有协议之上运行,利用了一个共识扩展和一个轻客户端协议。这提供了一个更敏捷的解决方案:更小的共识证明和节点之间的高效通信

3.Polkadot <> Kusama 桥已上线:在 Polkadot 和 Kusama 分别的 BridgeHub 上运行的GRANDPA 轻客户端已初始化,并且目前由Parity运行的无需许可的中继器进行实时同步。共识证明逻辑(轻客户端)平行链头证明逻辑和消息证明逻辑都在 BridgeHub 运行时中链上运行,完全由 Polkadot/Kusama 治理独家控制。这意味着 Polkadot 和 Kusama 目前正在跟踪对方的链进度,并以无需信任的方式导入来自对方的消息。

4.桥接器:使中继器与运行时升级兼容:我们避免在每次升级时都重建中继器,受 #2947 的启发:我们可以向每个桥接托盘(GRANPA、平行链、消息)配置添加一些常量,也可以向中继器添加相同的常量。如果 Relayer 发现其拥有的常量与运行时中的常量不同,则应退出。这里的主要变化:

  • 添加了RelayerVersion具有两个字段的结构:autoisH256,通过测试计算。当它发生变化时,意味着现有的中继器不再与新的运行时兼容。manual在这种情况下应该被撞到。manual如果存在未测试主题的重大更改,也可能会被取消

  • 现在,每个桥托盘都将其RelayerVersion作为 pallet 中的常量;

  • 每个中继器(最终性、平行链、消息)都将视为RelayerVersion管道配置中的常量;

  • 在提交交易之前,中继器会检查其常量是否与时的常量匹配。如果运行匹配,则提交tx。否则,中继器将中止,否则offchain.manual <= onchain.manual继续工作。

5.重构提名池以支持多种质押策略:启用提名池成员的治理已分为针对受影响的各个 pallet 的三个不同的 PR, 此 PR 解决第三个问题:

  • 允许在 staking pallet 中使用特权虚拟债券(paritytech/polkadot-sdk#3889)

  • 介绍:委托 staking pallet(paritytech/polkadot-sdk#3904)

  • 重构提名池以支持多种质押策略(paritytech/polkadot-sdk#3905)

  • 多重权益策略

  • TransferStake:当前的提名池逻辑可以被视为一种质押策略,委托人将资金转移到池中并进行质押。在这种情况下,资金被锁定在资金池账户中,用户失去了对其资金的控制权。

  • DelegateStake:通过此 PR,我们引入了一种新的质押策略,个人委托人将资金委托给资金池。Delegate 意味着资金被锁定在委托人账户本身。需要注意的是,矿池没有自己的资金,但它得到了其成员的授权,可以使用这些资金进行质押。我们将矿池与质押接口的所有交互提取到一个新的特征中StakeStrategy。这是上述两种质押策略之间不同的逻辑。我们使用该特质StakeStrategy来实现上述两种策略:TransferStake和DelegateStake。

  • #提名池

  • 实现StakeStrategy,而不是StakingInterface。已将其重命名为Staking以StakeAdapter澄清与之前使用的特征的区别。

6.运行 API 时:介绍 candidates_pending_availability:对于弹性扩展支持是强制性的。这个新的 API 应该废弃现有的 candidate_pending_availabilityAPI,后者只返回第一个候选者(按照#3479)。弹性缩放缩放器需要。废弃使用旧 API candidate_pending_availability:。

 

02设计方案和问题讨论

1.设计并开发跨共识语言操作(XCQ):

XCM 包含一些有用的原语,例如 MultiLocation 和 MultiAsset。然而,它是一种用于改变状态的脚本语言。而不是一种查询语言,XCQ 可以被认为是 XCM 的语言子集。

  • PolkaVM 与自定义DSL

  • 基于扩展的设计和基于哈希的扩展 ID

  • 元类型系统 XCQ 设计稿(https://hackmd.io/8L3tonc9RQaVxKO5YyBK6Q?view)研究、PoC 和开发将在这里进行(https://github.com/open-web3-stack/XCQ)

2.改变分叉修剪算法:

根据去年添加用于手动区块修剪的 API ,更近一步提出问题:如何正确实现区块头修剪,由此得出改变分叉计算算法的步骤

  • 改变分叉计算逻辑(之前的算法是在区块头始终存在的前提下工作的)

  • 添加块头修剪

  • 使用 columns::KEY_LOOKUP、column::HEADER 和区块哈希从数据库中删除数据

  • 内存缓存中的块头中删除数据

  • 从内存缓存中的标头元数据中删除数据(最后两个使用remove_header_metadata)

  • 修复元数据保存算法:prune_blocks_on_finalize_and_reorg测试将连续的几个块标记为已完成,并稍后提交事务,这与prune_blocks_on_finalize在单独的事务中完成每个块的情况形成鲜明对比。如果我们修改prune_blocks_on_finalize_and_reorg测试以从修剪的分叉中查询标头,我们将得到一个标头,但是数据库不会包含它。缓存似乎被源自元更新的脏读污染,因为元更新是在事务之后单独保存的。

 

 

03文档和资料

1.Gavin 发表 JAM 灰皮书,预示着波卡未来升级方向:JAM 将推动 Polkadot 的功能超越当前 Web3 的界限,同时使在 Polkadot 上部署广泛的技术成为可能。通过 JAM,目前只能通过 rollup 才能看到的突破性可扩展性被带到了共识层。完全建成后,JAM 将成为一台分布式计算机,可以运行几乎任何类型的任务。Gavin 还发布了一份技术灰皮书。如果您想深入了解该项目的愿景和技术细节,您可以在新的 JAM Graypaper 网站上找到该论文:https://graypaper.com/

2.弹性扩展:简化 Polkadot 上的增长:对于需要比当前 Polkadot 协议允许的更高吞吐量的平行链来说,弹性扩展是一个非常有用的补充。此文章来自 Fatemeh Shirazi,解释了其重要性以及这项技术升级将如何实现。

3.新增 Polkadot <> Kusama Bridge 文档:Polkadot 和 Kusama 区块链网络都通过 GRANDPA 共识实现了最终性,这使得两个网络能够通过各自的 Bridge Hub 进行不信任的桥接。Polkadot Bridge Hub 运行 Kusama 网络的轻客户端 ,Kusama Bridge Hub 运行 Polkadot 网络的轻客户端,它们都是通过各自的OpenGov公投启用的。

4.更新 XCM Cookbook :XCM 文档目前是一本由 github 页面托管的 mdbook:https://paritytech.github.io/xcm-docs/。虽然这很好,但它与polkadot-sdk 文档中正在完成的工作不相符。此PR 旨在通过将文档带回此存储库来解决此问题,添加了 guides,cookbook 这对于想要进入 XCM 的用户非常有用。

 

 

04技术生态和社区

1.Polkadot Decoded 2024 将于 7 月 11 日至 12 日在布鲁塞尔举行:Web3 基金会为 Polkadot 和 Kusama 创建了中心化之声计划(Decentralized Voices Program),目的是通过将18 万 KSM 和 4200 万 DOT的投票权委托给生态系统中的活跃投票者,让更多人能够在 OpenGov 中发挥重要作用。如果您对申请感兴趣,可以点击链接查看详情申请.

2.Substrate 入门课第 15 期 | 火热报名中!:你是否也对波卡生态,以及基于 Substrate 技术开发属于你的独特项目产生了浓厚兴趣?Substrate 区块链开发入门课第 15 期课程正在火热报名中!如果你想快速掌握 Substrate 开发本领,并从一门课程的学习之旅出发,获得项目实战、专家点评、就业岗位等多重福利资源,就赶快锁定 Substrate 入门课吧!课程内容节奏轻松、简单,以「一讲一练」的模式,带你从零开始了解区块链的基本概念,熟悉 Substrate/Polkadot 的基本原理和应用,真正完成 Web3 开发框架入门,深度参与到区块链世界的开发实战,实现在 Web3 行业的成长!

3.美国职业赛车手康纳·戴利 (Conor Daly)成为 Polkadot 品牌大使:这一决定是利用 Polkadot 的去中心化治理功能决定的,标志着主要运动员的赞助首次由社区使用区块链技术进行投票决定。波卡社区将利用Conor Daly 强大的粉丝基础Indy 500 的广泛收视率以及Daly 充满活力的赛车风格Polkadot 创新技术之间的协同作用,这项赞助旨在吸引全球观众。除了赛道之外,Conor Daly 还将全年参加一系列互动社区活动和数字举措,旨在吸引赛车迷并向他们介绍 Polkadot 的创新技术。

4.宣布链上 Polkadot 大使计划 2.0:新改进的程序将成为 Polkadot 上的第五个链上集合,更多请关注后续信息。

5.Web3 Summit 2024 演讲嘉宾及志愿者报名 :想成为 Web3 Summit 2024 演讲嘉宾吗?申请截止提交时间是 5 月 17 日。分享你的专业知识,成为塑造去中心化网络未来的一部分!如果你希望参与到今年的峰会中,可以作为志愿者加入。作为志愿者,你将有机会与其他人合作、协调工作,通过实际参与组织峰会的过程,深入了解和获得有关如何策划和执行此类大型活动的洞察。整个活动将持续三天。这是一个学习和网络扩展的好机会,同时也能亲身体验和推动 Web3 社区的发展。申请链接:https://web3summit.com

 

 

 

05跨链协议

1.重构 XCM 模拟器示例:此 PR 对 XCM 模拟器示例进行了“开发人员体验”重构。XCM 模拟器是一个自然的起点,因为它可以模拟端到端 XCM 场景,而不需要生成多个真实链。然而,XCM Simulator 示例只是3 个巨大的文件,其中包含大量配置、运行时、pallet 和测试。此 PR 以一种对于希望浏览端到端示例的各个组件并自行修改它的新开发人员来说,更容易理解的方式分解了 XCM Simulator 示例。

2.XcmDryRunApi - 空运行外部以获得其 XCM 效果此 PR 继续致力于在 XCM 中创建更好的费用说明指南。在创建费用说明之前XcmPaymentApi,但前提知道要执行或发送特定的 XCM。引入了一个新的运行时 API,XcmPaymentApi给定外部或 XCM,返回其效果:

  • 执行结果

  • local XCM(在外部的情况下)

  • 转发的 XCM

  • 活动一览

这个 API 可以结合使用来几乎完美地估计跨链传输,可以使用这两个 API 来提示传输量。有一个模拟测试只是为了确保一切正常 xcm-fee-payment-runtime-api。在下面有一个使用 Westend 和 AssetHubWestend 的实际测试 cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/xcm_fee_estimation.rs

 

 

 

 

 

 

 

Substrate 技术及生态 4 月大事记|Coretime 成功迁移 XCM、BEEFY 正式启动

 

 

About Us关于我们

OneBlock+ 作为区块链的人才聚集地,是全球领先的 Substrate 开发者社区。我们将提供专业的技术文章和开发课程,并组织研讨会、黑客松创业大赛等交流实践活动,从而帮助开发者掌握 Substrate 技术、深入探索 Web3 领域。同时,OneBlock+ 还为 Web3 优质项目提供技术指导、人才资源等多重创业支持,促使更多开发团队使用 Substrate 技术框架构建未来开放网络。

Twitter: https://twitter.com/OneBlock_

Medium: https://medium.com/@OneBlockplus

Telegram: https://t.me/oneblock_dev

Discord: https://discord.gg/fE8deY4UbP

Bilibili: https://space.bilibili.com/1650224419

YouTube: https://www.youtube.com/channel/UCWo2r3wA6brw3ztr-JmzyXA