Engineering Notes

孟斌的小站

技术博客与学习记录

共 609 篇文章 标签与分类索引已启用

《纸上谈兵·solidity》第 13 课:Solidity 低级调用 call/delegatecall/staticcall —— 直接和 EVM“对话”

1. 三种低级调用方式对比

| 调用方式 | 是否切换上下文(storage/msg.sender/msg.value) | 是否能改状态 | 特点与用途 | |:-------------- |:------------------------------------- |:------ |:----------------------- | | call | ✅ 切换到被调用合约 | ✅ | 最通用的外部调用,可带 ETH,可调用任意函数 | | delegatecall | ❌ 保持当前合约上下文 | ✅ | 代理模式核心,让当前合约执行别人的代码 | | staticcall | ✅ 切换到被调用合约 | ❌ | 安全读取外部数据,不改状态 |

继续阅读

《纸上谈兵·solidity》第 11 课:Solidity 错误处理与异常机制 —— 让合约优雅地失败

在 Solidity 智能合约开发中,失败并不可怕,可怕的是失败后状态不明确、资金不安全、调用方摸不着头脑。EVM 的一个重要特性是:当合约执行中发生错误时,会回滚所有状态更改,并退还未使用的 Gas。因此,正确使用错误处理机制,能够让合约在异常情况下安全地停止,而不是留下一地鸡毛。

继续阅读

理解 Go goroutine 的启动与回收机制

Go 语言以其并发编程能力著称,而 goroutine 是实现这一特性的核心。在日常开发中,我们很容易启动 goroutine,但如果不了解它的生命周期与回收机制,就可能引发性能问题甚至 goroutine 泄漏

go
继续阅读