《纸上谈兵·solidity》第 13 课:Solidity 低级调用 call/delegatecall/staticcall —— 直接和 EVM“对话” Posted on August 14, 2025 1. 三种低级调用方式对比 [Read More] Tags: solidity
《纸上谈兵·solidity》第 12 课:Solidity 函数选择器与 ABI 编码原理 Posted on August 13, 2025 在以太坊的世界里,合约函数调用不是“直接调用函数”,而是发送一段经过 ABI 编码的二进制数据。这些数据不仅包含了调用哪个函数的信息,还包括函数参数的序列化内容。理解 ABI 编码与函数选择器,可以帮助我们: [Read More] Tags: solidity
《纸上谈兵·solidity》第 11 课:Solidity 错误处理与异常机制 —— 让合约优雅地失败 Posted on August 12, 2025 在 Solidity 智能合约开发中,失败并不可怕,可怕的是失败后状态不明确、资金不安全、调用方摸不着头脑。EVM 的一个重要特性是:当合约执行中发生错误时,会回滚所有状态更改,并退还未使用的 Gas。因此,正确使用错误处理机制,能够让合约在异常情况下安全地停止,而不是留下一地鸡毛。 [Read More] Tags: solidity
理解 Go goroutine 的启动与回收机制 Posted on August 11, 2025 Go 语言以其并发编程能力著称,而 goroutine 是实现这一特性的核心。在日常开发中,我们很容易启动 goroutine,但如果不了解它的生命周期与回收机制,就可能引发性能问题甚至 goroutine 泄漏。 [Read More] Tags: go
《纸上谈兵·solidity》第 10 课:Solidity `fallback` / `receive` 函数 —— 合约如何收 ETH 和响应未知调用? Posted on August 9, 2025 在 Solidity 的世界里,大多数函数都有明确的名字、参数和用途。但还有两个比较特别的“隐形入口”函数:receive() 和 fallback()。 它们不需要(也不能)显式调用,却能在特定场景下自动触发,决定了一个合约如何接收 ETH,以及如何应对未知调用。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 9 课:Solidity 事件与日志机制 —— 合约世界的“printf”工具 Posted on August 8, 2025 在 Solidity 中,我们无法像 JavaScript 那样 console.log("...") 来查看运行状态。但我们有事件(Event)机制——既是合约的“日志打印工具”,也是链下交互的主要接口。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 8 课:Solidity 中的继承与接口 —— 模块化不是“复制粘贴”的借口 Posted on August 6, 2025 模块化开发是大型合约系统不可或缺的组成部分。本课简单剖析 Solidity 中的继承(Inheritance)、接口(Interface)、抽象合约(Abstract Contract)等关键机制,帮你在合约系统中正确地拆分职责、重用逻辑、规范合约交互,而不是简单复制粘贴。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 7 课:Solidity 函数可见性和修饰器 —— public 和 private 不只是权限标签 Posted on August 4, 2025 在 Solidity 中,函数的可见性不仅决定了“谁可以调用”,更深层地影响到合约之间的交互方式、函数的 ABI 暴露、安全性设计和 gas 成本。本课还将介绍如何使用函数修饰器(modifier)实现访问控制与逻辑封装。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 6 课:Solidity 数据存储布局 —— memory、storage、calldata 傻傻分不清? Posted on August 1, 2025 在 Solidity 编程中,变量的“声明”远远不只是类型和名字,更关键的是 —— 存储位置(data location)。错误使用 memory、storage 或 calldata 不仅影响正确性,更直接影响 gas 成本、安全性和语义一致性。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 5 课:依赖与外部调用 —— 合约交互的风险与防护 Posted on July 31, 2025 在现实应用中,Solidity 合约往往不是孤岛。我们需要调用其他合约的函数,获取信息或发起操作。这种合约间交互会引入新的风险点。本课将系统讲解如何调用外部合约,以及如何防御典型攻击如重入攻击。 [Read More] Tags: solidity