文章 视频 课程 百科图谱 集训营
更多
  • 问答
  • 提问
  • 发表文章
  • 专栏
  • 活动
  • 文档
  • 工作
  • 集市
  • 发现
  • 文章
  • 问答
  • 视频
  • 课程
  • 集训营
  • 专栏
  • 活动
  • 工作
  • 文档
  • 集市
搜索
  • 登录/注册
deliriusz
  • 文章
  • 专栏
  • 问答
  • 视频
  • 课程
  • 集市作品
  • 活动
  • 招聘
TA的视频 TA的合集
Yul编程 #1 - 什么是Yul?
视频 AI 总结: 本视频是 EVM 和 Yule 编程课程的一部分,主要介绍了 Yule 编程语言。Yule 是一种中间语言,会被编译成 EVM 字节码。目前,Solidity 编译器会先将 Solidity 代码编译成 Yule,然后再编译成 EVM,这样做的好处是可以进行更简单的优化。除了作为中间表示,开发者也可以直接编写 Yule 代码,可以嵌入到 Solidity 代码的 assembly 块中,也可以编写独立的 Yule 程序。 关键信息: * Yule 是一种中间语言,用于编译成 EVM 字节码。 * Yule 目前被 Solidity 用作中间表示。 * Yule 只有一种数据类型:256 位(32 字节)。 * Yule 需要手动管理内存和存储。 * Yule 没有 ABI 编码和解码功能。 * Yule 不能直接使用栈操作,但可以使用 `pop` 操作丢弃栈顶元素。 * `verbatim` 允许注入任意字节码,但要小心使用,避免破坏代码。 * Yule 可以独立使用,也可以嵌入到 Solidity 中。 * Yule 中,指令名称与 EVM 操作码类似。 * Yule 是一种表达式语言,可以嵌套多个表达式。
214
0
0
2025-08-01 18:17
EVM 编程 #6 - 日志、事件和交易回执
视频 AI 总结: 本视频主要讲解了以太坊虚拟机(EVM)中的日志(Logs)、事件(Events)和交易回执(Transaction Receipt)的概念及其作用。交易回执记录了交易执行的结果,包含交易状态、Gas 使用量和日志等关键信息。日志用于记录智能合约执行期间的数据和事件,方便链下应用使用,存储成本比链上存储低。视频还介绍了日志的结构,包括合约地址、主题(Topics)和数据,以及如何使用 Bloom Filter 快速过滤特定事件。 关键信息: * 交易回执是记录交易结果的重要数据结构,包含交易状态、Gas 使用量、日志等信息。 * 日志用于记录智能合约执行期间的事件和状态变化,供链下应用使用,成本较低。 * 日志包含合约地址、主题(索引)和数据,主题用于快速搜索,数据需要 ABI 解码。 * Solidity 中事件最多可以有三个索引参数,因为事件名称占用了一个索引位置。 * Bloom Filter 是一种概率数据结构,用于快速判断某个事件是否可能存在于某个区块或交易中,提高搜索效率。
227
0
0
2025-08-01 18:05
EVM 编程课程 #8 - 错误
视频 AI 总结: 该视频主要讲解了以太坊虚拟机(EVM)中的错误处理机制,区分了 EVM 层面的错误与 Solidity 语言层面的错误。EVM 中,合约执行要么成功(stop, return),要么因错误而终止(revert, invalid)。Solidity 在此基础上增加了用户自定义错误和 panic 的概念。视频还通过代码示例展示了不同错误类型在 EVM 中的表现,以及 Solidity 如何处理这些错误,包括如何使用低级调用(low-level call)或 try-catch 语句来控制错误的传播。 关键信息: * EVM 中合约执行结束的方式:正常结束(stop, return)和错误结束(revert, invalid)。 * `stop` 停止执行,`return` 停止执行并返回数据,`revert` 停止执行并标记为错误,`invalid` 消耗所有 gas 并停止执行。 * Solidity 0.8 版本之前,`assert` 失败会使用 `invalid` opcode 消耗所有 gas,之后改为抛出 panic。 * Solidity 中的错误处理:可以自定义错误类型,并使用错误选择器(error selector)来区分不同的错误。 * Solidity 默认会将合约执行中遇到的错误向上冒泡,导致整个交易回滚。可以使用低级调用或 try-catch 语句来阻止错误的冒泡。 * Solidity 中 panic 是一种特殊的错误,但与普通错误的处理方式类似,不会导致程序完全停止执行。 * EVM 可能会遇到一些运行时错误,例如 out of gas、栈溢出、无效跳转目标等,这些错误通常会被视为 revert。
225
0
0
2025-08-01 18:05
EVM 编程 #9 - 逆向工程
视频 AI 总结: 本视频深入探讨了以太坊虚拟机(EVM)编程中的最小代理合约(Minimal Proxy Contract),即 EIP-1167 协议。核心内容是通过逆向工程分析最小代理合约的工作原理,理解其如何利用 delegatecall 实现合约升级,以及为何它在智能合约钱包等场景中被广泛应用,尤其强调了其部署成本极低的优势。 关键信息: 1. 最小代理合约允许在保持合约地址和存储不变的情况下升级合约代码。 2. 它通过 delegatecall 借用其他合约的代码执行,但存储仍然使用代理合约自身的存储。 3. 最小代理合约在智能合约钱包中被广泛使用,每个用户拥有自己的代理合约,逻辑由一个共享的逻辑合约处理。 4. 由于代码量极小,部署最小代理合约的成本非常低。 5. 视频详细分析了最小代理合约的 EVM 操作码,解释了其如何利用 returndatasize 指令来节省 gas 费用。 6. 视频解释了合约如何处理 delegatecall 的成功或失败,并相应地返回或回滚。
208
0
0
2025-08-01 18:05
EVM 编程课程 #2 - 链上数据位置
视频 AI 总结: 该视频主要讲解了以太坊虚拟机(EVM)中的数据存储位置,包括 Stack(栈)、Memory(内存)、Storage(存储)、Calldata(调用数据)和 Code(代码)。EVM 作为栈机器,通过这些数据位置来存储和管理智能合约运行过程中的数据。理解这些数据位置的特性和使用方式,对于编写高效且安全的智能合约至关重要。 关键信息: * **Stack(栈)**:LIFO(后进先出)结构,用于存储操作数和中间值,容量有限(1024个元素),操作成本较低,但访问深度受限。 * **Memory(内存)**:线性数据分配,临时存储区域,可扩展,用于存储外部调用返回的数据、创建合约等,有内存扩展成本(二次方级别),断电后数据丢失。 * **Storage(存储)**:持久化存储,键值对存储,用于保存合约状态,成本最高,数据在链上永久保存。 * **Calldata(调用数据)**:只读数据,存储外部调用合约时传入的参数,成本较低。 * **Code(代码)**:存储智能合约的字节码,不可变,最大尺寸为 24KB。 * EVM 通过 Stack 管理智能合约运行中的操作数,Memory 用于临时数据存储,Storage 用于持久化数据,Calldata 传递输入参数,Code 存储合约代码。 * EVM 有保护机制,防止过度使用 Memory 导致崩溃。 * 理解不同数据位置的特性,有助于优化智能合约的 Gas 消耗。
211
0
0
2025-07-31 22:31
EVM 编程课程 #1 - EVM 设计
视频 AI 总结: 该视频是关于以太坊虚拟机(EVM)的迷你系列的第一集,旨在帮助开发者、安全研究员和 DevOps 工程师理解 EVM 的底层原理。视频从高层次概括了 EVM 的概念,将其描述为一个分布式状态机,通过交易改变世界状态。视频还介绍了 EVM 的关键组件,包括账户、交易、区块、内存、堆栈和存储,以及 gas 的作用和 EVM 的执行模型。 关键信息: * EVM 是一个分布式状态机,通过交易改变世界状态。 * 世界状态是地址到账户状态的映射。 * 账户分为外部拥有账户(EOA)和合约账户。 * 交易由 EOA 发起,可以是合约创建或消息调用。 * 区块包含多个交易,由验证者决定交易顺序。 * EVM 有只读内存、持久化存储和易失性状态。 * Gas 用于衡量计算复杂度,防止拒绝服务攻击。 * EVM 代码由字节码组成,通过操作码执行。 * 事件(logs)用于链下监听状态变化,无法在合约内读取。
250
0
0
2025-07-31 08:11
  • ‹
  • 1
  • 2
  • ›
deliriusz
deliriusz
贡献值: 35 学分: 152
江湖只有他的大名,没有他的介绍。
0 关注 6 粉丝
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
UpChain
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Twitter
Youtube
B 站
公众号

关注不错过动态

微信群

加入技术圈子

©2025 登链社区 版权所有 | Powered By Tipask3.5|
粤公网安备 44049102496617号 粤ICP备17140514号 粤B2-20230927 增值电信业务经营许可证

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

提醒

检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
编辑封面图
封面预览