《纸上谈兵·solidity》第 15 课:Solidity 库与可重用代码 Posted on August 16, 2025 在复杂的智能合约系统中,代码复用与模块化至关重要。Solidity 提供了 库(Library) 机制,用来组织可重用逻辑,避免重复开发与部署,提升合约的可维护性与安全性。 [Read More] Tags: solidity
《纸上谈兵·solidity》第 14 课:Solidity 中的可升级合约模式 —— 从代理合约到透明代理、UUPS 与安全陷阱 Posted on August 15, 2025 1、可升级的必要性与问题 [Read More] Tags: solidity
《纸上谈兵·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