分享百科

blockchain

视频 AI 总结: 该视频主要讲解了智能合约的形式化验证,强调其作为最高级别的测试手段,能够彻底证明合约在任何情况下的行为符合预期。与单元测试或模糊测试不同,形式化验证通过布尔公式将智能合约代码转换为 SMT 求解器可解释的形式,从而验证特定不变性。视频还介绍了如何使用 Solidity 内置的 SMT 检查器进行形式化验证,并通过实例演示了如何通过添加 require 语句来限制输入范围,从而使断言通过验证。 关键信息: * 形式化验证基于布尔公式,通过 SMT 求解器检查公式的满足性。 * SMT 检查器通过检查布尔公式的否定的不可满足性来验证断言。 * 可以通过 require 语句限制输入范围,使断言通过形式化验证。 * SMT 检查器不仅可以用于断言验证,还可以用于检查溢出、下溢、除零等潜在问题。 * SMT 检查器有其局限性,对于过于复杂的代码可能无法证明。 * 视频还介绍了如何通过提供价值和建立联系来获取审计机会,以及如何通过参加竞赛来展示自己的能力。
70
0
0
3天前
视频 AI 总结: 该视频是关于智能合约审计培训的 mob auditing 会议,重点在于使用 mob auditing 的方法来查找智能合约中的漏洞。视频中,讲师带领学员们对一个 Perpetual Protocol 的智能合约实现进行审计,并逐步讲解了 mob auditing 的流程和技巧,最终学员们成功发现了一些关键漏洞。 关键信息: 1. **Mob Auditing 介绍:** 类似于 pair programming,但规模更大,有多人参与,角色包括驱动者(driver)和指导者(dictator),其他人作为 mob 提供想法。 2. **Mob Auditing 流程:** 驱动者分享屏幕并逐行解释代码,指导者提出问题和 edge cases,mob 成员随时提出潜在的 bug 或漏洞,角色定期轮换。 3. **审计目标:** 理解如何开仓、追踪盈亏、平仓实现利润、实现损失、存入和执行流动性。 4. **发现的漏洞:** * `increasePosition` 函数中缺少对最大杠杆的验证,可能导致用户开设过高杠杆的仓位。 * USDC 黑名单问题,可能导致用户无法提取资金。 * 清算费用计算中的舍入误差,可能导致小额仓位无法收取清算费用。 5. **Fuzzing 和 Invariant Testing:** 介绍了 fuzzing 和 invariant testing 的概念,以及如何在 Foundry 中使用它们来发现智能合约中的漏洞。 6. **Echidna 介绍:** 介绍了 Echidna 这一更高级的模糊测试工具,它能够进行更复杂的 invariant testing,并提供代码覆盖率报告和可重现的测试用例。
78
0
0
3天前
视频 AI 总结: 该视频主要讲解了 ERC-4626 的通货膨胀攻击,OpenZeppelin 如何解决这个问题,以及 AMM 的相关知识,包括 AMM 的数学原理、Uniswap V3 的深度解析,以及与链上 AMM 相关的预言机操纵。视频详细解释了通货膨胀攻击的原理,以及 OpenZeppelin 的实现如何降低攻击的可行性,并提供了调整参数以几乎完全避免该问题的方案。此外,还深入探讨了 AMM 的运作机制,包括常数积公式、流动性提供等,并分析了 Uniswap V3 中范围流动性的概念和实现方式。最后,视频还讨论了预言机操纵攻击,包括攻击方式、防范措施以及 Chainlink 的应用。 关键信息: 1. ERC-4626 通货膨胀攻击的原理和 OpenZeppelin 的解决方案。 2. OpenZeppelin 通过使用虚拟资产和份额来降低通货膨胀攻击的盈利性。 3. AMM 的基本原理,包括常数积公式(x * y = k)和流动性提供。 4. Uniswap V3 的范围流动性概念,以及如何通过调整价格范围来提高资金利用率。 5. 预言机操纵攻击的原理和防范措施,包括时间加权平均价格(TWAP)的应用。 6. Chainlink 作为一种更安全的预言机解决方案。 7. Uniswap V3 中,每个 tick 都遵循一个公式,该公式本质上指出,每个 tick 都对应于必须提高 1.0001 的幂才能获得价格 P 的价格。
66
0
0
3天前
视频 AI 总结: 该视频主要讲解了智能合约的可升级性,并深入探讨了五种常见的升级模式:永恒存储、透明代理、通用可升级代理(UUPS)、信标代理和钻石标准。视频详细分析了每种模式的原理、优缺点以及潜在的安全风险,例如存储冲突和函数选择器冲突。此外,视频还通过实际代码示例,展示了这些升级模式在智能合约中的应用,并讨论了在选择升级模式时需要考虑的关键因素。 视频中提出的关键信息: 1. **五种升级模式:** 永恒存储、透明代理、UUPS、信标代理和钻石标准。 2. **永恒存储:** 将数据存储与逻辑分离,通过逻辑合约操作数据合约。 3. **透明代理:** 使用代理合约将调用委托给实现合约,实现逻辑升级。 4. **UUPS:** 将升级逻辑放在实现合约中,简化代理合约。 5. **信标代理:** 多个代理合约共享一个信标合约,信标合约指向实现合约。 6. **钻石标准:** 将合约功能分解为多个 facet,通过钻石合约路由调用。 7. **存储冲突:** 升级后,新的实现合约可能覆盖旧的存储变量。 8. **函数选择器冲突:** 代理合约和实现合约可能存在相同函数选择器,导致调用错误。 9. **安全风险:** 访问控制不当、升级逻辑错误等可能导致安全漏洞。 10. **gas 效率:** 不同的升级模式在 gas 消耗方面存在差异。
65
0
0
4天前
视频 AI 总结: **核心内容概要:** 该视频主要讲解了以太坊 Solidity 智能合约中常见的两种安全漏洞:舍入误差(Rounding Issues)和签名可延展性(Signature Malleability)。视频深入分析了这两种漏洞的根本原因、常见表现形式,并通过实际案例展示了如何识别和防范这些问题。目的是帮助开发者在进行智能合约安全审计时,能够更好地发现和修复潜在的安全风险。 **关键信息:** * **舍入误差:** * 根本原因是 Solidity 不支持浮点数,除法运算会进行截断(Truncation),导致精度丢失。 * 常见场景包括计算平均价格、分配奖励等,如果未充分考虑精度问题,可能导致资金损失或协议被操纵。 * 解决方法包括使用足够的小数位数、采用向上取整或向下取整策略,并根据具体业务逻辑进行调整。 * **签名可延展性:** * 根本原因是 ECDSA 算法中,对于同一个消息,存在多个有效的签名。 * 攻击者可以利用这一特性,篡改签名中的 `s` 值,生成另一个有效的签名,从而重复执行某些操作。 * 解决方法是限制签名中 `s` 值的范围,只接受小于 `n/2` 的 `s` 值,从而避免签名可延展性攻击。 * **案例分析:** * 视频通过两个具体的漏洞案例,详细展示了舍入误差和签名可延展性在实际项目中的表现形式,以及相应的修复方案。 * **安全审计建议:** * 在进行智能合约安全审计时,需要特别关注除法运算和 ECDSA 签名验证,仔细分析是否存在舍入误差和签名可延展性问题。 * 需要充分考虑各种边界情况和异常输入,确保智能合约的安全性。
67
0
0
4天前
视频 AI 总结: **核心内容概要:** 该视频是关于Web3高级安全主题课程的第二部分,主要讲解Perpetuals、AMM、Oracle操纵、舍入误差等高级安全审计技能。课程旨在帮助智能合约安全研究员和区块链工程师提升技能,快速成为高级安全审计员。视频还介绍了课程资源、任务和社群互动方式,并分享了Guardian Audits在智能合约审计中发现的漏洞案例,旨在帮助学习者建立安全审计的工具箱。 **关键信息:** * **课程内容:** * 深入研究Perpetuals,并将其转化为实际的审计技能。 * 涵盖AMMs、Oracle操纵、舍入误差等主题。 * 讲解升级模式(Upgradability Patterns)及相关漏洞。 * 学生代码走查(Student Code Walks),分析他人代码中的漏洞。 * 高级攻击手段,如ERC 4626通货膨胀攻击。 * 模糊测试(Fuzzing)和形式化验证(Formal Verification)等验证方法。 * 市场策略(Approaching the Marketplace)建议。 * **课程资源:** * 课程中心(Course Hub)提供必要的资源和任务。 * Solidity Lab Discord社群用于交流和提问。 * **审计任务(Mission 3):** * 审计其他团队的代码库,或审计讲师提供的代码库。 * 编写审计报告,包括漏洞发现、修复建议和核心协议不变性。 * 提交模糊测试套件(Fuzzing Suite)和代码覆盖率报告。 * 总结漏洞发现的启发式方法(Heuristics)。 * **漏洞案例:** * Ethernote:不正确的费用结构导致会计不一致。 * Key Finance:奖励复利可被抢先交易(Sandwichable)。 * DOS攻击:无限制的循环导致拒绝服务。 * IDX:交换保证金可用于从AMM中提取资金。 * GMX:无限制的交换路径长度导致气体操纵。 * GMX:列入黑名单的地址可用于阻止清算。
69
0
0
4天前
视频内容 AI 总结: **核心内容概要:** 该视频主要讲解了Perpetuals协议Mission 2的目标和具体内容,包括增加交易者减少仓位、抵押品,以及引入清算功能、借款费用和仓位费用等。视频详细解释了这些功能的实现逻辑,以及可能出现的边界情况和注意事项,旨在为开发者提供清晰的开发指南,并为社区推出Perpetuals协议做准备。同时,视频还深入探讨了EVM(以太坊虚拟机)的存储结构,包括堆栈、内存、调用数据和存储,以及它们在交易执行中的作用,并详细分析了GMX和Safe Transfer Lib中的代码示例,以帮助开发者更好地理解和应用EVM知识。 **关键信息:** * **Mission 2目标:** 增加交易者减少仓位、抵押品的功能,引入清算功能,收取借款费用和仓位费用。 * **清算机制:** 任何人都可以调用清算函数,清算人将获得清算费用,以激励清算。 * **费用:** 引入借款费用(给流动性提供者)和仓位费用(可选)。 * **EVM存储:** 堆栈(临时数据)、内存(临时数据,用于存储结构体)、调用数据(只读数据,用于函数调用)、存储(永久数据,区块链数据库)。 * **Opcodes:** EVM指令,用于操作存储区域的数据。 * **GMX示例:** 分析了GMX代理合约中的汇编代码,展示了如何优化合约以节省gas。 * **Safe Transfer Lib示例:** 分析了Safe Transfer Lib中的汇编代码,展示了如何安全地处理地址和避免脏数据。 * **Calldata:** 深入分析了Calldata的结构,包括静态数据和动态数据的编码方式,以及如何解析复杂的Calldata结构。 * **内存安全:** 讨论了内存安全的重要性,以及如何避免覆盖已分配的内存和保持零槽的零值。
80
0
0
4天前
视频总结: **核心内容概要:** 该视频主要讲解了如何撰写一份出色的漏洞报告,强调了报告的重要性,不仅能赢得比赛,更能说服项目方修复漏洞。视频详细介绍了优秀报告的组成部分,包括清晰的根本原因、明确的影响、简洁的表达,以及提供代码或概念验证。视频还通过一个实际的例子,展示了如何针对一个简单的 gas 优化问题撰写一份高质量的报告,并分享了学习优秀报告的资源。 **关键信息:** * **漏洞报告的重要性:** 赢得比赛、获得奖励,最重要的是说服项目方修复漏洞。 * **优秀报告的组成部分:** * 清晰的根本原因(Root Cause) * 明确的影响(Impact) * 简洁的表达(Succinct) * 提供代码或概念验证(Proof of Concept/Code) * **撰写报告的步骤:** * 撰写引人注目的标题(Root Cause + Impact) * 选择合适的严重程度(Severity) * 添加相关代码链接(GitHub Links) * 撰写简洁的摘要(Summary) * 详细描述漏洞细节(Vulnerability Details) * 说明漏洞的影响,并提供代码或概念验证(Impact) * 列出使用的工具(Tools Used) * 给出清晰的修复建议(Recommendations) * **学习优秀报告的资源:** * Solid it 平台:搜索和学习其他团队的报告。 * Code Hawks 平台的 Beetle 竞赛报告:学习 Defi 领域的常见问题。 * **代码审计实战:** * 确定审计目标:理解如何铸造代币、抵押品如何运作、清算机制等。 * 代码分析:识别潜在问题,如循环中的 gas 消耗、价格操纵等。 * 问题记录:记录审计过程中的发现和思考。 * **代码走查(Code Walk):** * 代码走查是一种交互式的代码审查方法,通过讲解代码库的设计和功能,促进代码理解和问题发现。 * 参与者分为讲解者(Walker)和审查者(Reviewer),讲解者负责解释代码,审查者负责提问和提出建议。 * 代码走查有助于提高代码沟通能力、发现潜在问题、加深对代码库的理解。
92
0
0
4天前
视频总结: **核心内容:** 该视频是Web3安全高级培训课程的第一部分,旨在帮助有一定基础的安全研究人员提升技能,成为高级审计员。课程内容涵盖了智能合约安全的基础知识、高级DeFi概念、常见的攻击模式以及审计技巧。 **关键论据/信息:** * **课程结构:** 课程分为两部分,第一部分包含超过20小时的Web3安全培训,包括三个任务和两个小任务。鼓励学员组队完成任务,并在Discord社区进行协作。 * **核心主题:** 课程涵盖了智能合约设计原则、外部调用攻击向量、重入漏洞、智能合约测试原则、永续合约、抢跑交易、三明治攻击、审计技巧、EVM基础知识等。 * **实战任务:** 课程包含实战任务,例如构建永续合约协议,旨在帮助学员深入理解DeFi概念和开发者的常见问题。 * **审计技巧:** 课程强调了审计方法,包括代码审查、漏洞分析和报告撰写。 * **EVM精通:** 课程深入讲解了EVM的内存管理、调用数据等底层概念。 * **强调实践:** 课程鼓励学员完成作业,并提供Discord社区进行协作和讨论。 * **Gateway计划:** 视频发布者同时宣布推出Gateway训练营,为初级安全研究人员提供更深入的实践指导。 * **Less Code原则:** 强调代码简洁的重要性,指出代码量与漏洞数量呈指数关系,并建议精简存储变量。 * **避免循环:** 强调避免在智能合约中使用循环,以防止DoS攻击。 * **限制输入:** 强调对用户输入进行严格验证,防止恶意输入导致意外行为。 * **处理所有情况:** 强调考虑所有可能的情况,包括稳定币脱钩、资不抵债的清算等。 * **避免并行数据结构:** 强调避免使用并行数据结构,以防止数据不一致。 * **外部调用安全:** 强调外部调用的风险,包括重入、DoS攻击、返回值处理和gas限制。 * **后置检查:** 强调在交易完成后进行后置检查,以确保状态一致性。 * **代码覆盖率的局限性:** 强调100%代码覆盖率并不意味着没有漏洞,需要关注边缘情况。 * **Fuzzing测试:** 强调Fuzzing测试的重要性,可以发现手动分析难以发现的漏洞。 * **Echidna工具:** 介绍了Echidna工具,可以进行Fuzzing测试,并生成代码覆盖率报告。 * **路径依赖测试:** 介绍了路径依赖测试,可以发现由于交易顺序不同而产生的漏洞。 * **重入漏洞:** 介绍了四种重入漏洞,包括经典重入、跨函数重入、跨合约重入和只读重入。 * **抢跑交易攻击:** 介绍了抢跑交易攻击,以及如何通过设置滑点保护来防止攻击。 * **三明治攻击:** 介绍了三明治攻击,以及如何通过设置滑点保护来防止攻击。 * **代码示例:** 提供了大量的代码示例,帮助学员理解各种概念和攻击模式。 * **审计流程:** 介绍了审计流程,包括识别外部调用、分析状态变量和评估风险。 * **代码风格:** 介绍了代码风格,包括使用自定义错误、使用YUL等。 * **文档:** 强调了文档的重要性,包括协议总结、协议组件和组件交互流程。 * **持续学习:** 强调持续学习的重要性,并提供了学习资源,例如CodeHawks和Solidity Lab。
135
0
0
5天前
该视频的核心内容是探索Dune Analytics平台,评估其在Solana链数据分析方面的实用性,尤其关注免费计划的功能。 关键论据和信息: * **Dune Analytics概述:** 视频介绍了Dune Analytics是一个数据分析平台,支持包括Solana在内的多个区块链。 * **免费计划的限制:** 视频重点测试了免费计划的功能,发现存在查询速度慢、导出数据受限等问题。 * **Solana数据探索:** 视频尝试使用Dune查询Solana链上的数据,包括区块信息、交易信息、程序调用等。 * **查询示例:** 视频演示了如何使用SQL语句查询Solana链上的交易量、区块高度,以及不同程序的调用次数。 * **Token Program分析:** 视频对比了Token Keg和Token Z(新旧Token Program)的调用次数和交易量,并使用可视化图表展示了它们的使用情况。 * **可视化功能:** 视频展示了Dune Analytics的可视化功能,可以将查询结果生成图表,方便数据分析和展示。 * **结论:** 视频总结认为Dune Analytics是一个有用的工具,尤其适合交易者和分析师,但对于直接查询底层账户状态的支持有限。虽然未能实现最初的目标(查询特定账户状态),但通过探索,发现Dune在特定场景下(如分析交易数据)具有实用价值。
125
0
0
2025-06-18 16:19
该视频的核心内容是介绍并评测一个名为 gill 的 TypeScript 库,该库旨在简化 Solana 区块链的交互,特别是对于初学者开发者。 **关键论据/信息:** 1. **gill 的定位:** gill 是一个基于 Solana Kit (Web3.js v2 的新名称) 的封装库,它提供更简洁、更具倾向性的 API,旨在简化 Solana 开发流程。 2. **gill 的优势:** * 易于使用:gill 封装了 Solana Kit 的复杂性,提供更高级别的抽象,使常见任务(如创建和转移 Token)更容易实现。 * 代码可读性:gill 提供的 API 在代码中更易于阅读和理解,例如创建交易的方式。 * 内置功能:gill 提供了一些方便的功能,例如自动生成 Explorer 链接,以及方便的调试模式,可以自动记录交易信息。 * Token Metadata 处理:gill 能够根据 Token 类型(Token 或 Token2022)自动选择合适的 Metadata 处理方式,简化了 Token 创建流程。 3. **gill 的劣势/潜在问题:** * 包体积:由于 gill 封装了 Solana Kit,因此可能会导致更大的包体积。 * 类型问题:视频中发现 gill 在导出 Token Program 地址时存在 TypeScript 类型问题,可能需要手动进行类型转换。 * Blockhash 处理:在构建交易时,如果未提供 Blockhash,gill 不会自动获取,这可能会导致初学者困惑。 4. **与 Solana Kit 的对比:** Solana Kit 更加模块化和可定制,但对于大多数开发者来说,gill 提供的抽象级别可能更实用。 5. **适用人群:** gill 适合 Solana 开发初学者,以及希望快速构建 Solana 应用的开发者。对于需要高度定制化的开发者,Solana Kit 仍然是更好的选择。
80
0
0
2025-06-16 18:17
该视频主要讲解了如何使用 GILL (JavaScript client for the Solana blockchain) 在 Solana 区块链上,从已创建的 Token Mint 中增发(mint)代币到用户的钱包。 **关键论据/信息:** * **核心内容:** 演示了如何使用 GIL 增发代币到指定用户的关联Token账户(ATA)。 * **前提条件:** 假设你已经创建了一个 Token Mint,并且拥有该 Mint 的增发权限(Mint Authority)。 * **关键步骤:** * 建立与 Solana DevNet 的连接。 * 加载拥有 DevNet SOL 的账户作为交易的签名者(Signer)和手续费支付者(Fee Payer)。 * 构建交易(Transaction),包括获取最新的区块哈希(Latest Block Hash)。 * 使用“Create Associated Token Account If Not Present”指令,如果用户还没有关联Token账户(ATA),则自动创建。 * 使用“Mint To”指令,将指定数量的代币增发到用户的 ATA。 * 签名并发送交易到区块链。 * **重要概念:** * **Token Mint:** 类似于国家货币的发行机构。 * **Associated Token Account (ATA):** 将用户的钱包地址与 Token Mint 关联起来的账户,用于持有代币。 * **Mint Authority:** 拥有增发代币权限的账户。 * **简化方法:** 视频最后展示了如何使用 GIL 提供的交易构建器(Transaction Builder)来简化增发代币的代码,减少代码量并提高可读性。 * **注意事项:** 增发代币的数量需要考虑 Token Mint 的小数位数(Decimals)。 * **后续内容预告:** 下一个视频将讲解如何在已经拥有代币的情况下,将代币转账到另一个地址。
205
0
0
2025-06-10 19:33
该视频的核心内容是演示如何使用新的 JavaScript 客户端 GILL 将 Solana 钱包中的 Token 转移到另一个钱包。 视频中提出的关键论据和信息包括: * **使用 GIL 库进行 Token 转移:** 视频展示了使用 GIL 库中的函数来构建和发送 Token 转移交易。 * **创建关联 Token 账户 (ATA):** 强调了 Token 转移需要目标钱包拥有与 Token Mint 关联的 ATA。GIL 库提供了 `create associated token item potent instruction` 函数,如果目标钱包没有 ATA,则会自动创建,如果已存在,则跳过。 * **`get transfer instruction` 函数:** 用于创建实际的 Token 转移指令,需要指定源 ATA、授权者(通常是发送者的私钥)、目标 ATA、转移数量和 Token 程序地址。 * **Token 数量的精度:** 强调了转移的 Token 数量需要考虑 Token Mint 的小数位数。 * **使用交易构建器简化流程:** GIL 库提供了一个交易构建器 `build transfer token transaction`,可以简化 Token 转移流程,自动处理 ATA 创建和交易优化。 * **交易构建器的优势:** 使用交易构建器创建的交易通常包含更多指令,例如设置计算单元限制,以提高交易成功率。
181
0
0
2025-06-07 18:40
该视频主要介绍了 Anchor 框架的最新版本 0.31,重点讲解了两个新特性:**自定义鉴别器 (Custom Discriminators)** 和 **惰性账户 (Lazy Accounts)**。 **核心内容/主要观点:** * Anchor 0.31 版本通过引入自定义鉴别器和惰性账户,旨在提升 Solana 程序的开发效率和运行性能。 * 自定义鉴别器允许开发者使用更短的鉴别器,从而减少交易数据的大小,提高链上效率。 * 惰性账户允许程序按需反序列化账户数据,避免不必要的计算开销,尤其适用于只读取部分字段或只读账户的场景。 **关键论据/关键信息:** * **自定义鉴别器:** * 默认的 8 字节鉴别器可能造成浪费,尤其是在指令数量较少的情况下。 * 可以使用 `discriminator` 宏来指定自定义长度的鉴别器(例如,1 字节)。 * 自定义鉴别器适用于指令、账户和事件。 * 自定义鉴别器可以显著减少指令数据的大小,提高链上效率。 * **惰性账户:** * 惰性账户是一种实验性的账户类型,用于按需反序列化账户数据。 * 使用 `LazyAccount` 结构体,并通过 `load` 和 `load_mut` 方法来访问账户数据。 * 惰性账户适用于只读取部分字段或只读账户的场景。 * 如果需要完全反序列化账户,惰性账户可能会增加额外的开销。 * 如果账户是可变的,惰性账户的优势会降低,甚至可能导致性能下降。 * **版本依赖:** * Anchor 0.31 推荐使用 Solana 版本 2.1。 * 需要使用 Anchor Version Manager (AVM) 来安装和管理 Anchor 版本。 * **其他改进:** * 栈内存改进,使用 init constraints 时栈的使用效率大幅提高。 * 自动 IDL 转换。 * 支持多种包管理器。 总而言之,该视频通过实际代码演示,详细介绍了 Anchor 0.31 的新特性,并分析了它们在不同场景下的适用性,为 Solana 开发者提供了有价值的参考。
177
0
0
2025-06-06 21:39
该视频的核心内容是探讨在 Solana 区块链上进行日志记录和事件广播的各种方法,以及这些方法的局限性。视频的主要观点是:依赖日志来获取事件信息并不可靠,因为日志可能会被截断。 视频中的关键信息包括: * **Solana 上事件监听的挑战:** 由于 Solana 上数据量巨大,实时监听特定程序的事件更新非常困难。 * **日志记录的局限性:** 虽然可以使用日志记录程序中的重要信息,但 RPC 可能会错过某些信息,并且存在日志截断的风险,因此不适合作为可靠的事件广播机制。 * **账户更新监听:** 可以监听特定账户或程序拥有的账户的变化,但这只能获取账户数据,无法获取程序内部的特定事件信息。 * **RPC 订阅的探索:** 视频尝试了各种 RPC 订阅方法(如账户通知、程序通知、日志通知),但发现它们都有各自的局限性。 * **自调用程序(Self CPI)作为替代方案:** 视频提出了一种使用自调用程序(程序调用自身)的方法,将事件数据作为指令数据传递,并通过查询交易的内部指令来获取事件信息。即使日志被截断,这种方法也能更可靠地获取事件数据。 * **两步过程:** 为了获取程序调用事件,需要先订阅日志通知以获取签名,然后查询该签名以获取交易详情。 * **基础设施提供商:** 一些 RPC 提供商有专门的工具来解决 Solana 上事件监听的挑战。 * **Anchor 事件:** 视频提到 Anchor 框架可能也使用自调用程序来记录事件。 总而言之,视频深入探讨了 Solana 上事件广播的复杂性,并提供了一种使用自调用程序和内部指令来更可靠地获取事件信息的替代方案。虽然这种方法并不完美,但它比仅仅依赖日志记录更可靠。
345
0
0
2025-04-30 14:50
登链社区