-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #54 from VegeBun-csj/master
2024-07 newsletter
- Loading branch information
Showing
1 changed file
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# 2024.07 - Substrate 技术更新速递 | ||
|
||
## 重要提交和发布 | ||
1. [parachain的简化和去重](https://github.com/paritytech/polkadot-sdk/pull/4916) | ||
主要对平行链node service做了简化,以一个更加结构化的方式来定义节点: | ||
- 对于`rpc_ext_builder()`,`build_import_queue()`, `start_consensus()`,使用trait来处理 | ||
- 在定义一个节点的specification的时候,增加了一个`NodeSpec` trait | ||
- 对于构建节点组件和启动节点这两个环节,去掉了重复的部分 | ||
|
||
2. [将BEEFY BLS加密迁移到bls12-381曲线](https://github.com/paritytech/polkadot-sdk/pull/4931) | ||
未来肯定会在BEEFY中使用BLS12-381,这在JAM的规范中是硬编码的。这个PR实现了bls12-381加密中缺失的测试,迁移BEEFY BLS加密到bls12-381,并相应地调整BEEFY原语测试。 | ||
|
||
3. [Bridges V2重构回退和pallet_bridge_messages简化](https://github.com/paritytech/polkadot-sdk/pull/4935) | ||
主要是将旧仓库`parity-bridges-common`进行迁移 | ||
- 为`BridgeHubs`生成新的weight | ||
- 对`polkadot-fellows` bridge进行新的测试 | ||
|
||
4. [Balance Pallet:在currency实现中增加一些触发事件](https://github.com/paritytech/polkadot-sdk/pull/4936) | ||
之前在currency实现中,pallet_balances的实现并没有发出任何`Issued`和`Rescinded`事件。这个PR在impl_currency的适当位置添加了Issued和Rescinded事件,并附上了测试。 | ||
|
||
5. [将pallet-paramters引入Westend从而用参数化的方式实现通胀](https://github.com/paritytech/polkadot-sdk/pull/4938) | ||
- 将`pallet-paramters`添加到`Westend`运行时 | ||
- 将`relay_era_payout`函数添加到Polkadot运行时通用部分,并弃用之前的`era_payout`函数 | ||
- 为`relay_era_payout`添加单元测试,匹配之前`era_payout`的单元测试 | ||
- 在`Westend`运行时中移除`pallet_staking_reward_curve` | ||
- 添加`dynamic_params`以替代用于`pallet_staking_reward_curve`的常量 | ||
|
||
6. [确定不在`displaced_leaves_after_finalizing`的block gap上引发崩溃](https://github.com/paritytech/polkadot-sdk/pull/4997) | ||
崩溃的情况与`warp-sync`有关。在warp sync后,可能会出现区块祖先中存在缺失头部的情况。在finaliz后的 `displaced_leaves`中,会从已确认的区块向后迭代,直到碰到一个未知的区块,从而导致节点崩溃。 | ||
这个PR使得在已finalize的区块链中,检测位移分支对未知区块的影响更加稳定。同时这个pr也给出了[例子](https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6662262) | ||
|
||
7. [移除大部分`sp-std`的使用](https://github.com/paritytech/polkadot-sdk/pull/5010) | ||
主要是移除了大部分`sp-std`的用法,除了 | ||
- `bridge`和`bridge-hubs` | ||
- 还有一些框架重新导出了`sp-std`,暂时保留 | ||
|
||
8. [pallet_contracts:修改storage host函数的基准测试,以便在不平衡的存储Trie上运行](https://github.com/paritytech/polkadot-sdk/pull/5036) | ||
该PR修改了storage host函数的基准测试。 | ||
- 之前,基准测试是在一个空的存储Trie上运行的 | ||
- 现在,基准测试是在一个不平衡的存储Trie上运行,以反映最坏情况。 | ||
这种方法提高了storage host函数的权重,并降低了拒绝服务攻击的概率。 | ||
|
||
9. [在创世中添加注入非认证会话密钥的可能性](https://github.com/paritytech/polkadot-sdk/pull/5078) | ||
这个pr主要是为了在创世块中添加未认证的会话密钥。 | ||
- 之前,所有在创世块中注入的密钥都被视为初始验证者集的一部分, | ||
- 现在,允许注入未认证的密钥。 | ||
|
||
10. [修复:跳过genesis leaf从而让同步顺利进行](https://github.com/paritytech/polkadot-sdk/pull/5103) | ||
这个PR主要是解决区块链将创世区块报告为叶子节点的情况。同时还添加了一些额外的调试日志,以便将来更容易识别问题。 | ||
问题表现为:区块链在同步后的一段时间就halt,不再导入新的区块。 | ||
|
||
11. [运行时:让候选者中继父级进度检查更严格](https://github.com/paritytech/polkadot-sdk/pull/5113) | ||
- 之前,我们在检查新候选者的中继父链是否没有从最新的链上包含的候选者回退。 | ||
- 现在我们还需要检查中继父链是否从最新的待处理可用候选者中推进,同时还要检查内在数据中候选链的进展。 | ||
|
||
12. [BEEFY: 关闭finality通知以防止一直保留在通道中](https://github.com/paritytech/polkadot-sdk/pull/5129) | ||
这个pr可以防止在我们等待区块祖先从间隙同步下载时过度固定区块。 | ||
- 之前,finality通知一直保留在通知通道中,这导致了缓存固定溢出。 | ||
- 现在,创建了一个新任务,定期检查将finality通知转换为未固定的对应项。 | ||
|
||
## 设计方案和问题讨论 | ||
1. [为配置AssetExchanger增加一个适配器](https://github.com/paritytech/polkadot-sdk/pull/5130) | ||
主要是为了添加一个新的适配器到`xcm-builder`,名为`SingleAssetExchangeAdapter`。这个适配器让使用`pallet-asset-conversion`来配置 `AssetExchanger`的XCM配置项变得很简单。 | ||
同时这个pr还想在`AssetExchange`特性中添加了一个新函数,签名如下: | ||
```shell | ||
fn quote_exchange_price(give: &Assets, want: &Assets, maximal: bool) -> Option<Assets>; | ||
``` | ||
这个签名与exchange_asset的签名基本对称。它们之间的互动可以在`AssetExchange`特性的文档注释中看到。 | ||
|
||
2. [增加对于最小cpu核心数量的基准测试](https://github.com/paritytech/polkadot-sdk/pull/5127) | ||
这个PR旨在扩展了现有的单核benchmark_cpu,增加了通过生成预计核心数(8个)线程并平均它们的吞吐量来评估整个处理器的得分。 | ||
这比仅仅检查核心数量要好,因为它还涵盖了多租户环境,在这种环境中,操作系统可以看到大量可用的CPU。 | ||
|
||
3. [网络策略:对速度较慢的peer节点进行回退和禁止,以避免多次提交相同请求](https://github.com/paritytech/polkadot-sdk/pull/5029) | ||
这个PR主要是为了避免了向同一个慢速节点多次提交相同的区块或状态请求。 | ||
- 在这个pr之前,网络中节点会向同一个慢速节点提交相同的请求,导致这些慢速节点的声誉被封禁。此外,这种网络策略还多次选择同一个慢速节点提交查询,尽管可能存在更好的候选节点。 | ||
- 但是现在这个pr引入了一个容量为512的LRU DisconnectedPeers,仅跟踪请求进行中的断开连接节点的状态。当DisconnectedPeers检测到一个请求进行中的节点断开连接时,该节点会被暂时拒绝: | ||
(1)第一次断开连接:60秒 | ||
(2)第二次断开连接:120秒 | ||
(3)第三次断开连接后,该节点被封禁,直到节点存储器衰减其声誉。 | ||
因此这个PR可以减轻了由于无法及时处理请求而过载的节点的压力。而且,如果一个节点在多次暂时拒绝后仍然被检测为慢速,该节点将被封禁。 | ||
|
||
## 文档和资料 | ||
1. [Agile-coretime文档](https://wiki.polkadot.network/docs/learn-agile-coretime) | ||
- Agile-coretime主要是用于为平行链提供区块空间,再也不用为区块链支付过高费用 | ||
- Agile Coretime 提高了 Polkadot 网络资源的利用效率,并为开发者提供了经济灵活性,将 Polkadot 的功能扩展到其白皮书中最初提出和设想的范围之外。在 Polkadot 1.0 中,平行链要获得 Polkadot 的安全保障,唯一的方法是通过拍卖租赁一个租期,这能保证平行链区块验证长达两年。这需要锁定大量的 DOT,导致中小规模区块链项目的进入门槛很高。平行链每 12 秒生产一个区块,不管网络活动如何。这导致了资源分配不合理和经济激励的误置:在流量较低时产生几乎空的区块,而在流量超过区块限制时无法容纳更高的流量。Agile Coretime 解决了所有这些缺点。 | ||
|
||
2. [Asynchronous Backing](https://wiki.polkadot.network/docs/learn-async-backing) | ||
在 Polkadot 中,平行区块(parablocks)由平行链一侧的收集者(collators)生成,并发送给中继链一侧的验证者进行验证支持。而Backing是指由一部分验证者或备份小组对平行区块(parablocks)进行验证的过程。平行区块只需得到一个验证者的支持,因此Backing并不保证平行区块的有效性。所以这篇文章可以帮助用户了解什么是同步Backing,什么是异步backing,两者的异同点以及其中的实现原理。 | ||
|
||
## 技术生态和社区 | ||
1. [「Vara Network 训练营」第一周回顾:掌握基础开发部署技能,冲击 Varathon 高奖金激励!](https://mp.weixin.qq.com/s/-f0ebFIM0sZ9e9PrFI0ZsQ) | ||
由 Vara Network 和 OneBlock+ 联合推出的「Vara入门实战指南:从 0 到 1 构建 DApp」课程已于 6 月 25 日正式开课,报名人数近 400人,在首周的【Vara Network 训练营】中,学员们通过两节课程深入学习了 Vara Network 基础知识和合约结构。 | ||
在接下来的几周里,将继续更新调试与测试、异步逻辑、合约自动化以及 Gear JS 前端交互等课程内容。如果你是本课程的学员,按照要求提交 Varathon Demo 即可获得 $50 激励。 | ||
|
||
2. [去中心化之声计划如何重塑 Polkadot 和 Kusama 治理新格局?](https://mp.weixin.qq.com/s/S3wo5NIwXc4Ad3hasflutw) | ||
作为去中心化治理的创新之举,Decentralized Voices(DV)计划自启动以来,便致力于增强 Polkadot 和 Kusama 社区的参与度和代表性。第二期 DV 计划旨在将更多的投票权分配给活跃的社区成员,每位 Polkadot 代表将获得 700,000 DOT 的 6 倍投票权,每位 Kusama 代表将以 6 倍被委托 3,000 KSM 或 18,000 KSM 投票权。 | ||
|
||
3. [Polkadot黑客松大赛正式开启](https://mp.weixin.qq.com/s/F5wkbkjax0Z6lFYZc3zB_w) | ||
OneBlock+ 社区将于 2024 年 7 月 11 日 - 11 月 14 日举办 2024 波卡黑客松大赛,本次大赛一共两场(分为新加坡站和曼谷站),每场奖金高达 315,000 美元,合计超价值 63 万+ 美金奖金池!目前两场黑客松均已开启报名通道(报名链接相同,开发者可以自行选择参与新加坡站或曼谷站,每个项目只能选择一站参赛)。只要你想要加入 Web3,并渴望以波卡生态作为行业探索的坚定选择,那么 2024 波卡黑客松大赛就向你敞开大门! | ||
|
||
- 立即报名:https://forms.gle/4pNpmp92pnX2wWSZ8 | ||
- 新加坡站:https://dorahacks.io/zh/hackathon/polkadot-2024-singapore/detail | ||
- 曼谷站:https://dorahacks.io/zh/hackathon/polkadot-2024-bangkok/detail | ||
- Github 代码库:https://github.com/OneBlockPlus/polkadot-hackathon-2024 | ||
- 技术资源库:https://github.com/OneBlockPlus/Technical-docs/blob/main/Substrate-technical-docs.md | ||
|
||
4. [全球领袖共聚布鲁塞尔:Polkadot Decoded 2024 圆满落幕](https://mp.weixin.qq.com/s/gvqv970jZudae02WdHTtvA) | ||
作为波卡生态系统的旗舰活动,Polkadot Decoded 2024 于七月中在布鲁塞尔举办。本次活动中汇聚了来自全球的开发者、投资者、爱好者和行业领导者,共同探索区块链技术的最新创新 | ||
|
||
5. [Pallet 最新上线!Substrate 开发进阶课程第八期火热报名中!](https://mp.weixin.qq.com/s/IOFpTR_g2sTuuMQH07D97Q) | ||
OneBlock+ 推出《 Substrate 开发进阶与项目实战》,由 Polkadot 社区开发者孙凯超 、资深 Polkadot 开发者周俊、资深智能合约开发者王大锤联合授课!帮助大家在复杂中梳理出一条开发学习的明确路径! | ||
- 🚀🚀 Substrate 开发进阶课第八期,免费入学,仅限 100 人!👇 | ||
- 🔗 报名链接:https://wj.qq.com/s2/14825200/0zv4/ | ||
|
||
6. [2024 波卡黑客松大赛 Bounty 命题公布!奖金加倍,助力竞技之旅](https://mp.weixin.qq.com/s/WIRtlHYyi1r69NfGNnHfTQ) | ||
2024 波卡黑客松大赛除了设有波卡官方提供的超 63 万奖金池以外,更有 Acala、Vara Network、Crust Network、Bifrost、Darwinia Network 等提供的价值 1,000-3,000 美元不等的赞助商命题奖励! | ||
|
||
其中 Vara Network、Bifrost 为新加坡、曼谷站赞助商,Acala、Crust Network 为新加坡站赞助商、Darwinia Network 为曼谷站赞助商。报名参加本次大赛的选手在备战主赛道之外,还能同时参加 Bounty 赛题的比拼,赢取更多奖励!技术与探索从未止步,让我们以大赛比拼为起点,共同推动波卡生态的繁荣发展! | ||
## 跨链协议 | ||
1. [XCM(跨链消息传递格式)的运行时API提供了LocationToAccount转换功能](https://github.com/paritytech/polkadot-sdk/pull/4857) | ||
- 重命名现有的`convert`方法为`convert_location`并增加一个新的`convert_account`方法 | ||
- 增加到所有测试网的运行时中 | ||
- 核查polkadot.js是否支持 | ||
|
||
2. [将 `XcmDryRunApi::dry_run_extrinsic`方法改为接收一个`call`参数而不是 `extrinsic`](https://github.com/paritytech/polkadot-sdk/pull/4621) | ||
接受一个`extrinsic`意味着前端需要先签名以进行`dry-run`,然后再次签名以提交。这会导致糟糕的用户体验,而接受一个`origin`和一个`call`可以解决这个问题,并且还有一个好处,就是可以以任何账户进行`dry-run`,因为它不需要签名。 |