From f5fbda0c4b581f68ed7c9c78a1464e5da4fd6131 Mon Sep 17 00:00:00 2001 From: VegeBun-csj Date: Thu, 28 Nov 2024 11:43:45 +0800 Subject: [PATCH] Fix some typo --- archive/2024_11.md | 59 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/archive/2024_11.md b/archive/2024_11.md index 3654a6a..6f48e66 100644 --- a/archive/2024_11.md +++ b/archive/2024_11.md @@ -3,15 +3,15 @@ ## 重要提交和发布 1. **在最新的版本中交易weight增加了2.5倍** - 在[PR #6403](https://github.com/paritytech/polkadot-sdk/issues/6403)中,最新代码中交易weight是之前的2.5倍,分析这是由于交易扩展字节所带来的,有一些weight被重复计算了。 + 在[PR #6403](https://github.com/paritytech/polkadot-sdk/issues/6403)中提到,最新代码中交易weight是之前的2.5倍,分析这是由于交易扩展字节所带来的,有一些weight被重复计算了。 这个问题在[PR #6418](https://github.com/paritytech/polkadot-sdk/pull/6418)中得到了解决,主要有以下几点: - 从签名的v4外部交易中移除冗余的扩展版本字节,先前未使用的以及默认值设置为0; - - 将pallet_authorship::Author、frame_system::Digest和pallet_transaction_payment::NextFeeMultiplier存储项列入白名单,因为它们在每个事务中被扩展程序多次读取; + - 将`pallet_authorship::Author`、`frame_system::Digest`和`pallet_transaction_payment::NextFeeMultiplier`存储项列入白名单,因为它们在每个事务中被扩展程序多次读取; - 将benchmark caller列入CheckEra和CheckGenesis的白名单,因为每次交易执行读取操作时都会高估权重; - 更新umbrella frame的weight,以适应系统扩展更改; 2. **FRAME: 重新引入TransactionExtension来替换SignedExtension** - 在[PR #3685](https://github.com/paritytech/polkadot-sdk/pull/3685)中,引入了一个新的trait:TransactionExtension,引入遵守runtime扩展并具有相应扩展数据,但没有硬编码签名的交易概念。由于现在有遵循扩展框架的unsigned交易和不遵循扩展框架的“old-style” unsigned交易,因此在涉及transactions/extrinsics时,不再使用“unsigned”术语。相反,我们将使用“General”代替前者,使用“Bare”代替后者。(最终,后者将作为一种交易类型逐步淘汰,而“Bare”仅用于内部交易) + 在[PR #3685](https://github.com/paritytech/polkadot-sdk/pull/3685)中,引入了一个新的trait:`TransactionExtension`,引入遵守runtime扩展并具有相应扩展数据,但没有硬编码签名的交易概念。由于现在有遵循扩展框架的unsigned交易和不遵循扩展框架的“old-style” unsigned交易,因此在涉及transactions/extrinsics时,不再使用“unsigned”术语。相反,我们将使用“General”代替前者,使用“Bare”代替后者。(最终,后者将作为一种交易类型逐步淘汰,而“Bare”仅用于内部交易) extrinsic的类型目前是这样的: - Bare(无硬编码签名,无额外数据;曾被称为unsigned)) @@ -25,15 +25,15 @@ TransactionExtension和SignedExtension的不同在于: - 基础交易上的签名可能不存在; - 在验证过程中可能会改变origin; - - pre_dispatch被重命名为prepare,并且不需要包含在validate中存在的检查; + - pre_dispatch被重命名为prepare,并且不需要包含在validate中检查; - validate和prepare传递的是 Origin 而不是 AccountId; - 通过一个新的用户可指定类型 Val,validate可能会将任意信息传递给prepare; - AdditionalSigned/additional_signed被重命名为Implicit/implicit。它被编码为整个交易,并作为一个新参数传递给每个扩展来验证,这有助于扩展作为底层加密的能力。 -3. **authority-discovery:使用pulic listen addresses填充DHT记录** - [PR #6298](https://github.com/paritytech/polkadot-sdk/pull/6298)的目的是向DHT authorities records中添加public listen addresses。此更改改善了未提供--public-addresses标志的验证者的可发现性。 - 这个更改可以有效地确保地址按以下顺序添加到DHT记录中: - - 通过CLI提供的公共地址--public-addresses; +3. **authority-discovery:使用public listen addresses填充DHT记录** + 此[PR #6298](https://github.com/paritytech/polkadot-sdk/pull/6298)的目的是向DHT authorities records中添加public listen addresses。这个修改可以改善未提供--public-addresses标志的验证者的可发现性。 + 这个PR可以有效地确保地址按以下顺序添加到DHT记录中: + - 通过CLI提供的公共地址`--public-addresses`; - 最多4个public(global)listen address(如果有); - 从网络中发现的任何外部地址(即从/identify协议); @@ -43,20 +43,21 @@ - 最多使用4个global listen address; 4. **backing:为Runtime改善session buffering** - 在backing模块的当前实现中,某些信息片段在整个会话期间保持不变,通过Runtime API调用多次获取。此[PR #6284](https://github.com/paritytech/polkadot-sdk/pull/6284)是引入本地缓存来存储这种会话稳定信息,并在每个会话中仅执行一次Runtime API 调用。此PR专门实现了缓存验证器列表、节点特性、执行器参数、最小支持票数阈值和验证器到组映射,这些信息以前是从Runtime获取或每次构建PerRelayParentState时计算的。现在,这些信息被缓存并在会话中重复使用。 + 在backing模块的当前实现中,某些信息片段在整个会话期间保持不变,通过Runtime API调用多次获取。此[PR #6284](https://github.com/paritytech/polkadot-sdk/pull/6284)是引入本地缓存来存储这种会话稳定信息,并在每个会话中仅执行一次Runtime API 调用。此PR专门实现了缓存验证器列表、节点特性、执行器参数、最小支持票数阈值和验证器到组映射,这些信息以前是从Runtime获取或每次构建PerRelayParentState时计算的。现在,这些信息被缓存并在session中重复使用。 5. **不要暴露尚未实现的Runtime API的metadata** - 在此[PR](https://github.com/paritytech/polkadot-sdk/pull/6337)之前,运Runtime API的metadata完全基于由decl_runtime_apis生成的metadata。因此,它没有考虑到impl_runtime_apis可能实现比已声明的API更旧版本的情况。此PR将返回的Runtime API元数据过滤为仅包括实际实现的方法,并且还避免包括标记为changed_in的方法(先前的代码已经尝试这样做,但由于在检查之前已删除了属性,因此没有成功)。我们还将所有与版本相关的内容更改为u32(而不是VERSION为u32和api_versions为u64),以确保一致性/便于比较。添加了一个测试,可以在启用或禁用api/tests中的enable-staging-api功能时使用,以检查所有这些内容。 + 在此[PR #6337](https://github.com/paritytech/polkadot-sdk/pull/6337)之前,Runtime API的metadata完全基于由`decl_runtime_apis`生成的metadata。因此,它没有考虑到`impl_runtime_apis`可能实现比已声明的API更旧版本的情况。此PR将返回的Runtime API元数据过滤为仅包括实际实现的方法,并且还避免包括标记为changed_in的方法(先前的代码已经尝试这样做,但由于在检查之前已删除了属性,因此没有成功)。同时还将所有与版本相关的内容更改为u32(而不是VERSION为u32和api_versions为u64),以确保一致性/便于比较。添加了一个测试,可以在启用或禁用api/tests中的enable-staging-api功能时使用,以检查所有这些内容。 -6. **Runtimes:preset被用作config patches#6349** - 此[PR](https://github.com/paritytech/polkadot-sdk/pull/6349)在代码库中的所有Runtime(包括指南)中引入了 build_struct_json_patch宏的用法。它还修复了宏以支持字段初始化简写和结构更新语法,这些在原始实现中已经缺失。 +6. **Runtimes:preset被用作config patches** + 此[PR 6349](https://github.com/paritytech/polkadot-sdk/pull/6349)为代码库中的所有Runtime(包括指南)中引入了`build_struct_json_patch`宏的用法。它还修复了宏以支持字段初始化简写和结构更新语法,这些在原始实现中已经缺失。 -7. **在TypeWithDefault中增加更多的类型** - 当使用TypeWithDefault作为默认的nonce provider来解决重放攻击问题时,由于TypeWithDefault: TryFrom未满足(这是trait BaseArithmetic所要求的),因此无法编译。这是因为TryFrom for T的全局实现,其中U: Into仅实现了u32的TryFrom和TryFrom,因为u32只实现了u16和u8的Into,但没有实现u64。这个[PR](https://github.com/paritytech/polkadot-sdk/pull/6411)通过为TypeWithDefault添加TryFrom和From impl(使用宏)来修复此问题,并删除全局impl(否则编译器将抱怨冲突的impl),从而使TypeWithDefault: AtLeast8/16/32Bit得到满足。 +7. **在TypeWithDefault中增加更多的类型** + 当使用`TypeWithDefault`作为默认的nonce provider来解决重放攻击问题时,由于`TypeWithDefault: TryFrom`未满足(这是trait BaseArithmetic所要求的),因此无法编译。 + 这是因为`TryFrom for T`的全局实现,其中`U: Into`仅实现了u32的`TryFrom`和`TryFrom`,因为u32只实现了u16和u8的Into,但没有实现u64。此[PR #6411](https://github.com/paritytech/polkadot-sdk/pull/6411)通过为`TypeWithDefault`添加`TryFrom`和`From impl`(使用宏)来修复此问题,并删除全局impl(否则编译器将显示冲突的impl),从而使`TypeWithDefault: AtLeast8/16/32Bit`得到满足。 8. **pallet-revive:调整了dry-run计算的fee** 此[PR #6393](https://github.com/paritytech/polkadot-sdk/pull/6393)调整了以下几点: - - 修复bare_eth_transact,以便更精确地估算交易费用; + - 修复`bare_eth_transact`,以便更精确地估算交易费用; - 在build.rs中添加一些上下文,以便更容易排除错误; - 为RPC测试添加TransactionBuilder; - 改进错误消息,代理来自节点的rpc错误并处理已回滚的错误消息; @@ -66,53 +67,53 @@ 此[PR #6453](https://github.com/paritytech/polkadot-sdk/pull/6453)主要工作有以下几点: - 将集成测试拆分为多个测试; - 修复tx哈希以使用预期的keccak-256; - - 为ethers.js示例添加选项,连接到westend并使用私钥; + - 为ethers.js示例添加选项; 10. **pallet-revive:在调用host函数中使用evm小数** - 此 [PR #6466](https://github.com/paritytech/polkadot-sdk/pull/6466)更新pallet,以在合约调用host函数中使用EVM 18位小数余额,而不是native余额,还更新了js示例,添加了piggy-bank solidity合约。 + 此[PR #6466](https://github.com/paritytech/polkadot-sdk/pull/6466)更新了pallet,以在合约调用host函数时使用EVM 18位小数余额,而不是native余额,同时更新了js示例,添加了piggy-bank solidity合约。 ## 设计方案和问题讨论 1. **功能:添加workflow来测试README generation** - 此[PR #6359](https://github.com/paritytech/polkadot-sdk/pull/6359)提议在repo中创建了一个workflow,用于搜索 README.docify.md 文件,并在文件所在的目录中运行 cargo build --features generate-readme 命令(假设它与一个 crate 相关)。如果 git diff 显示 README.md 有输出,那么文件更新尚未推送到分支上,workflow将失败。 + 此[PR #6359](https://github.com/paritytech/polkadot-sdk/pull/6359)提议在repo中创建一个workflow,用于搜索 README.docify.md 文件,并在文件所在的目录中运行`cargo build --features generate-readme`命令(假设它与一个 crate 相关)。如果 git diff 显示 README.md 有输出,那么文件更新尚未推送到分支上,workflow将失败。 希望采用此README checking workflow的下游项目应该: - - 将 .github/workflows/readme-check.yml 文件复制到他们的repo中 + - 将`.github/workflows/readme-check.yml`文件复制到他们的repo中 - 确保项目中的任何 README.docify.md 文件遵循预期格式 - - 如果尚未存在,应在其 Cargo.toml 中实现 generate-readme 功能标志 + - 如果没有实现,应在其Cargo.toml中实现generate-readme feature 2. **引入XCQ** - 这个[提议](https://github.com/polkadot-fellows/RFCs/pull/126)是想引入XCQ(Cross Consensus Query),旨在作为不同链Runtime实现和工具/UI之间的中间层,为跨链查询提供统一接口。 + 此[PR #126](https://github.com/polkadot-fellows/RFCs/pull/126)是想引入XCQ(Cross Consensus Query),旨在作为不同链Runtime实现和工具/UI之间的中间层,为跨链查询提供统一接口。 - [相关讨论](https://forum.polkadot.network/t/wasm-view-functions/1045) - [POC实现](https://github.com/open-web3-stack/XCQ) ## 技术生态和社区 1. **2024 波卡黑客松大赛(曼谷站)晋级名单公布!** - OneBlock+ 社区将于11月15-16日在[泰国曼谷举办 2024 波卡黑客松大赛(曼谷站)决赛](https://mp.weixin.qq.com/s/Fzdnk3L774yQDQykcz9b6g) Demo Day!曼谷站大赛共分为 4 大主赛题类别,更有  Vara Network & Gear、CESS Network、Unique、Bifrost、Darwinia Network、Moonbeam、Blockchain for good 加入 Bounty 赞助商,大赛奖金池高达 328,800 美元,共有 342 位开发者集结本届大赛,他们共同组成了 126 个战队踏上开发征战之旅,最终共有 56 个项目(总计 71 个项目创建 GitHub)并顺利按时提交了初赛作品。根据本届大赛的初审规则,评审将从技术难度(占比 20%)、项目完成度(占比 20%)、规范性(占比 10%)等多个维度进行综合考量,占总评分的 50%。由 PaperMoon 开发者关系工程师 Jun Zhou、PaperMoon 开发者关系工程师 Luca、Parity 工程师 Maggie、OpenGuild 开发者关系负责人 Tin Chung 共同组成的初审评审团进行缜密讨论与评选,最终共有 27 个项目经过激烈的竞争角逐闯入决赛 Demo Day,用兼具独特创意与市场前景的项目尝试推开 Web3 行业的大门。 + OneBlock+社区于11月15-16日在[泰国曼谷举办 2024 波卡黑客松大赛(曼谷站)决赛](https://mp.weixin.qq.com/s/Fzdnk3L774yQDQykcz9b6g) Demo Day!曼谷站大赛共分为 4 大主赛题类别,更有  Vara Network & Gear、CESS Network、Unique、Bifrost、Darwinia Network、Moonbeam、Blockchain for good 加入 Bounty 赞助商,大赛奖金池高达 328,800 美元,共有 342 位开发者集结本届大赛,他们共同组成了 126 个战队踏上开发征战之旅,最终共有 56 个项目(总计 71 个项目创建 GitHub)并顺利按时提交了初赛作品。根据本届大赛的初审规则,评审将从技术难度(占比 20%)、项目完成度(占比 20%)、规范性(占比 10%)等多个维度进行综合考量,占总评分的 50%。由 PaperMoon 开发者关系工程师 Jun Zhou、PaperMoon 开发者关系工程师 Luca、Parity 工程师 Maggie、OpenGuild 开发者关系负责人 Tin Chung 共同组成的初审评审团进行缜密讨论与评选,最终共有 27 个项目经过激烈的竞争角逐闯入决赛 Demo Day,用兼具独特创意与市场前景的项目尝试推开 Web3 行业的大门。 2. **深度探索 Substrate 开发|第 8 期 Substrate 进阶课圆满落幕!** - 由 OneBlock+ 和 Polkadot 联合推出的[第 8 期「Substrate 区块链开发进阶课」课程](https://mp.weixin.qq.com/s/XoQnpgHQRia0DmHNu64Tkg)在 10 月 29 日顺利举办了结营仪式,本期课程共有 112 人报名,32 名学员顺利毕业(其中 26 名学员为优秀毕业学员),让我们期待新晋开发者在波卡生态实现深耕发展。 + 由OneBlock+和Polkadot联合推出的[第 8 期「Substrate 区块链开发进阶课」课程](https://mp.weixin.qq.com/s/XoQnpgHQRia0DmHNu64Tkg)在10月29日顺利举办了结营仪式,本期课程共有112人报名,32名学员顺利毕业(其中26名学员为优秀毕业学员),让我们期待新晋开发者在波卡生态实现深耕发展。 3. **第十六期招募开启!Substrate 区块链开发入门课等你加入!** OneBlock+ 社区联合 Polkadot 推出了为期六周的[「第十六期:Substrate 区块链开发入门」课程](https://mp.weixin.qq.com/s/VPgTsts9A2syK2NqulLZAw)。本次课程邀请到 Polkadot Dev Advocate 周俊以及 Polkadot Dev Advocate 王大锤担任讲师,并特别增设了优质项目的实战讲解, 本课程结合系统化学习路径,为学员提供从区块链基础知识到开发实践的闭环体验。同时,课程中还设有细致的答疑互动,让大家在学习的过程中全面掌握 Web3 技术。学员不仅将获得电子版优秀证书、瓜分 ¥2000 奖金池的机会,还可通过 Task 评分排名获得纸质证书、限量周边等丰厚奖励,排名第一的学员更将赢得行业大咖的 1 对 1 咨询机会。此外,课程还支持 Zealy 活动积分,通过高参与度获取 Zealy 积分 1000 XP,有机会赢取年底社区积分激励及内推机会! 课程报名链接:https://wj.qq.com/s2/14957929/h3bh/ 4. **2024 波卡黑客松大赛(曼谷站)获奖名单公布!** - 众所期待的曼谷站决赛 Demo Day 现场路演于 11 月 16 日在曼谷线下举行,这场跨越近四个月的 Hacker 竞技赛上,我们看到志趣相投的开发者们精彩互动,开发出令人惊艳的创新项目,本站大赛共有 342 位开发者报名(分别来自中国、新西兰、俄罗斯、新加坡、英国、美国、加拿大、德国、印度、法国、波兰、意大利、墨西哥、乌克兰、荷兰、厄瓜多尔、泰国、南非、越南、坦桑尼亚、土耳其、印度尼西亚、塞尔维亚、尼日利亚、格鲁吉亚、马来西亚、捷克共和国、智利等 30+ 个国家地区)、组成 126 个战队、完成了 71 个开发项目,共有 56 个项目提交大赛初审,最终 [27 个项目](https://mp.weixin.qq.com/s/Dw55Q1OUVnRfdp_c28NC_w)经过激烈的竞争角逐闯入决赛 Demo Day,得到业界资深专家、投资人等一众 Web3 从业人士的鼎力支持。 + 众所期待的曼谷站决赛Demo Day现场路演于11月16日在曼谷线下举行,这场跨越近四个月的Hacker竞技赛上,我们看到志趣相投的开发者们精彩互动,开发出令人惊艳的创新项目,本站大赛共有 342 位开发者报名(分别来自中国、新西兰、俄罗斯、新加坡、英国、美国、加拿大、德国、印度、法国、波兰、意大利、墨西哥、乌克兰、荷兰、厄瓜多尔、泰国、南非、越南、坦桑尼亚、土耳其、印度尼西亚、塞尔维亚、尼日利亚、格鲁吉亚、马来西亚、捷克共和国、智利等 30+ 个国家地区)、组成 126 个战队、完成了 71 个开发项目,共有 56 个项目提交大赛初审,最终 [27 个项目](https://mp.weixin.qq.com/s/Dw55Q1OUVnRfdp_c28NC_w)经过激烈的竞争角逐闯入决赛 Demo Day,得到业界资深专家、投资人等一众 Web3 从业人士的鼎力支持。 5. **解锁迈向 Web3 行业的精彩职业导航!王大锤老师与你共享 Polkadot 求职新机遇** - 想要从 Web2 顺利走向 Web3 行业,如何实现不同职业间的转型?面对琳琅满目的项目生态,哪种才是最具备开发潜力的最优解?或许选择 Polkadot 生态能够化解你的难题,带领你找到通往 Web3 的创新之路。1 月 22 日晚 20:00 Substrate 入门课[第16期宣讲会](https://mp.weixin.qq.com/s/RZs6aU8Dvyj5Pvb1gXGWmQ)邀请到了 Polkadot dev advocate 王大锤来共享Web3生态的发展机遇 + 想要从 Web2 顺利走向 Web3 行业,如何实现不同职业间的转型?面对琳琅满目的项目生态,哪种才是最具备开发潜力的最优解?或许选择 Polkadot 生态能够化解你的难题,带领你找到通往 Web3 的创新之路。11月22日晚20:00 Substrate 入门课[第16期宣讲会](https://mp.weixin.qq.com/s/RZs6aU8Dvyj5Pvb1gXGWmQ)邀请到了 Polkadot dev advocate 王大锤来共享Web3生态的发展机遇! ## 跨链协议 1. **XCMv5:增加ExecuteWithOrigin指令** - 主要是实现之前的一个[PR需求](https://github.com/polkadot-fellows/xcm-format/pull/38) ,其中建议的更改是引入一个ExecuteWithOrigin指令。该指令允许XCVM在新的origin下执行一些指令,然后在这些指令完成后返回到原始origin。可以将其视为在执行一块指令时将一个新的origin推入堆栈,然后在该块完成时将其弹出。新的origin只能是空的(清除起源)或当前origin的子级。目标是为开发人员在处理消息中的origin时提供更多灵活性和更好的体验。 + 主要是实现之前的一个[PR](https://github.com/polkadot-fellows/xcm-format/pull/38) ,其中建议的更改是引入一个ExecuteWithOrigin指令。该指令允许XCVM在新的origin下执行一些指令,然后在这些指令完成后返回到原始origin。可以将其视为在执行一块指令时将一个新的origin推入堆栈,然后在该块完成时将其弹出。新的origin只能是空的(清除origin)或当前origin的子级。目标是为开发人员在处理消息中的origin时提供更多灵活性和更好的体验。 2. **修复XcmPaymentApi::query_weight_to_asset_fee** - 这个[PR #6459](https://github.com/paritytech/polkadot-sdk/pull/6459)修复了query_weight_to_asset_fee函数尝试使用try_as来转换版本,这个函数不会从版本化转换为具体类型。这将导致所有具有较低版本的调用失败。要使用的正确函数是try_into + 此[PR #6459](https://github.com/paritytech/polkadot-sdk/pull/6459)修复了query_weight_to_asset_fee函数尝试使用try_as来转换版本,这个函数不会从版本化转换为具体类型。这将导致所有具有较低版本的调用失败。要使用的正确函数是`try_into`。 3. **xcm:修复inner router返回NotApplicable时的本地/远程exporters** - 这个[PR #6645](https://github.com/paritytech/polkadot-sdk/pull/6645)主要做了两个修复: - - 修复了在途中发现的一个拼写错误("as as")。 + 此[PR #6645](https://github.com/paritytech/polkadot-sdk/pull/6645)主要做了两个修复: + - 修复了在途中发现的一个拼写错误。 - 解决了用于桥接的本地/远程exporters中的一个错误。以前,当inner router/exporters因为NotApplicable而失败时,它们会消耗dest和msg而不返回它们。此PR确保符合SendXcm和ExportXcm特性。 \ No newline at end of file