文章
课程
首页
集训营
更多
视频
百科图谱
问答
提问
专栏
活动
文档
工作
集市
Toggle navigation
首页
文章
视频
课程
集训营
工作
工作
问答
活动
文档
集市
搜索
登录/注册
专栏
精选
推荐
最新
周榜
关注
RSS
全部
通识
以太坊
比特币
Solana
公链
Solidity
Web3应用
编程语言
安全
密码学
AI
存储
其他
gas优化之使用mapping实现双向链表
双向链表的核心gas优势是O(1)增删+顺序保持,适合需要动态管理且需要枚举成员的场景
Gas
iszzm123
发布于 13 小时前
阅读 ( 31 )
gas优化之用 struct 减少参数数量
当把多个参数打包成struct,传递给函数的就只有一个引用(栈上的一个指针),而不是多个独立的值。如果struct在memory中:函数接收到的是一个memory指针(通常占用一个栈槽)。如果struct在calldata中:函数接收到的是一个calldata偏移量
Gas
iszzm123
发布于 21 小时前
阅读 ( 27 )
gas优化之自定义错误
Solidity0.8.4引入的自定义错误(customerror)是require("message")的高效替代品。它不仅在部署时节省大量字节码,还在交易失败(revert)时显著降低返回数据带来的gas开销。
Gas
iszzm123
发布于 1 天前
阅读 ( 25 )
gas优化之删除重置
用delete释放存储delete会将storage变量重置为零值,获得gas退款。在以太坊当前的机制下,delete释放一个非零存储槽所获得的退款是固定数值4,800gas
Gas
iszzm123
发布于 1 天前
阅读 ( 23 )
gas优化之短路(Short-circuit )优化原理
把最可能决定最终结果且最便宜的条件放在最前面,让后面的昂贵检查尽可能被短路掉。&&串联:最左边的条件应当是最可能为false且最便宜的。||串联:最左边的条件应当是最可能为true且最便宜的。
Gas
iszzm123
发布于 1 天前
阅读 ( 23 )
gas优化之批量处理代替单次循环
1、根据EVM交易/调用的固定成本每一笔外部交易都要支付21000gas的基础成本,还不包括合约调用的额外开销(CALL操作码、输入数据解码等)。如果用户需要执行10次转账,分10次发起交易,光是基础成本就高达10×21000=210000gas。批量处理只需1
Gas
iszzm123
发布于 1 天前
阅读 ( 27 )
gas优化之前置计算 array.length
在Solidity中,把数组的length提前缓存到一个局部变量中(即“前置计算”),主要是为了避免在循环的每次判断中重复读取同一个状态变量(或内存变量),从而把多次操作压缩为一次。这在storage数组上效果最明显,但也适用于memory和calldata数组。缓存后如何省
iszzm123
发布于 1 天前
阅读 ( 29 )
gas优化用++i还是i++
++i(前递增):将i加1,然后直接返回新值。i++(后递增):将i加1,但返回的是旧值。这意味着,i++在执行过程中必须“记住”旧值,等加法完成后再把旧值返回。在EVM中,这个“记住”意味着至少一次额外的栈操作(通常是DUP和SWAP),这些操作虽然单价便宜3gas
iszzm123
发布于 1 天前
阅读 ( 37 )
深入剖析Solmate库 #12:MerkleProofLib.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
MerkleProofLib.sol 以纯 assembly 将Merkle Proof 验证压缩为 scratch space 零内存分配 + 无分支排序哈希的单函数实现,链上只存32 字节 root 即可完成白名单成员证明。
solmate
Solidity
Foundry
MerkleProofLib
merkle-tree
verify
Michael.W
发布于 2026-05-05
阅读 ( 154 )
深入剖析Solmate库 #11:ReentrancyGuard.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
ReentrancyGuard.sol 通过 nonReentrant modifier 以 uint256 的 1/2 状态切换上锁,利用 EIP-2200 的 dirty write 机制将每笔交易锁开销控制在 5100 gas,为 DeFi 协议的高风险函数提供轻量级重入防护。
solmate
Solidity
Foundry
ReentrancyGuard
gas-optimization
nonReentrant
Michael.W
发布于 2026-05-04
阅读 ( 188 )
深入剖析Solmate库 #10:SafeCastLib.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
SafeCastLib.sol 提供 31 个 uint256 → uintN 安全向下转型函数,以 require(x < 1 << N) 拦截 Solidity 静默截断的高位丢失,服务于 storage packing 场景的溢出防护。
solmate
Solidity
Foundry
SafeCastLib
safeCast
Michael.W
发布于 2026-05-01
阅读 ( 167 )
Solidity 0.8.35 版本发布公告
Solidity v0.8.35 发布,新增 erc7201 内置函数,用于计算 ERC-7201 命名空间存储布局的基础槽位,这是首个编译常量内置函数。
Solidity 0.8.35
ERC-7201
编译常量
SSA CFG
实验性功能
关键词弃用
SolidityLang
发布于 2026-04-30
阅读 ( 97 )
深入剖析Solmate库 #09:SafeTransferLib.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
SafeTransferLib.sol 以纯 assembly 手动构造 calldata,通过 returndatasize + extcodesize 双重校验兼容 USDT/BNB 等无返回值非标 ERC20,为 DeFi 协议提供零ABI 编解码开销的统一安全转账入口。
solmate
Solidity
Foundry
SafeTransferLib
ERC20
safeTransferFrom
Michael.W
发布于 2026-04-29
阅读 ( 172 )
深入剖析Solmate库 #08:SignedWadMath.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
SignedWadMath.sol 以 int256 统一18 位小数定点数(wad)格式,通过 Padé 有理逼近 + 全程 unchecked assembly 在 EVM 上实现 exp/ln/pow 高等数学运算,服务于 DeFi 连续复利、指数衰减与 bonding curve 等场景。
solmate
Solidity
Foundry
SignedWadMath
wad
exp
Michael.W
发布于 2026-04-26
阅读 ( 254 )
深入剖析Solmate库 #07:SSTORE2.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
SSTORE2.sol通过 CREATE 将数据部署为带 STOP 前缀的合约字节码,读取时用 EXTCODECOPY 提取,以 200 gas/字节替代 SSTORE 的 22,100 gas/32 字节,为链上大段不可变数据提供低成本持久化方案。
solmate
Solidity
Foundry
SSTORE2
gas-optimization
write
Michael.W
发布于 2026-04-20
阅读 ( 267 )
( 8 )
深入剖析Solmate库 #06:CREATE3.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
CREATE3.sol 在 CREATE2 确定性地址的基础上,通过插入一个固定字节码的中间代理合约,将 initcode 从地址计算公式中剔除,实现部署地址仅由 deployer + salt 决定,彻底解耦合约地址与构造函数参数的绑定关系。
solmate
Solidity
Foundry
create3
gas-optimization
CREATE2
Michael.W
发布于 2026-04-18
阅读 ( 314 )
( 9 )
深入剖析Solmate库 #05:Bytes32AddressLib.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
Bytes32AddressLib.sol 通过 uintN 右对齐与 bytesN 左对齐两条类型转换链,实现 bytes32 与 address 的互转,服务于 CREATE2/CREATE3 地址预计算与 assembly 内存拼接,两个函数因对齐方向相反而非互逆操作。
solmate
Bytes32AddressLib
Solidity
Foundry
CREATE2
create3
Michael.W
发布于 2026-04-13
阅读 ( 434 )
( 20 )
深入剖析Solmate库 #04: MultiRolesAuthority.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
MultiRolesAuthority.sol 在 256 位位图的角色权限基础上,去掉 target 维度实现与目标合约无关的一维权限映射,并新增自定义 Authority 委托机制,支持统一角色管理与个别合约特殊策略的灵活组合。
solmate
MultiRolesAuthority
Solidity
Foundry
Bitmap
custom authority
Michael.W
发布于 2026-04-12
阅读 ( 569 )
( 29 )
深入剖析Solmate库 #03:RolesAuthority.sol
in
深入剖析Solmate库
in
深入剖析Solmate库
RolesAuthority.sol 通过 256 位位图实现角色×能力的细粒度权限矩阵,支持公开函数、角色授权与自治管理三级访问控制。
solmate
RolesAuthority
Solidity
Foundry
Bitmap
authority
Michael.W
发布于 2026-04-11
阅读 ( 517 )
( 21 )
Solidity 中的 Gas 优化:哪些因素真正重要(以及哪些不重要)
本文介绍了 7 种实用的 Solidity Gas 优化技术,包括减少链上存储、使用 calldata 替代 memory、利用常量与不可变量、缓存存储读取、优先使用映射、采用自定义错误以及优化循环设计,旨在帮助开发者降低智能合约交互成本并提升系统性能。
Gas 优化
Solidity
智能合约
Calldata
链上存储
自定义错误
ancilartech
发布于 2026-04-11
阅读 ( 304 )
( 15 )
‹
1
2
3
4
5
6
7
8
9
10
...
58
59
›
发表文章
我要提问
扫一扫 - 使用登链小程序
签 到
2026-05-20
星期三
热门文档
»
Solidity 中文文档 - 合约开发
Foundry 中文文档 - 开发框架
Hardhat 中文文档 - 开发框架
ethers.js 中文文档 - 与链交互
Viem 中文文档 - 与链交互
web3.js 中文文档 - 与链交互
Anchor 中文文档 - 开发框架
以太坊改进提案EIP翻译
以太坊域名服务(ENS)文档
Etherscan API 手册 - 查询链上数据
热门百科
»
智能合约
以太坊
区块链
Solidity
DeFi
Solana
零知识证明
NFT
Web3
比特币
EVM
Rust
密码学
闪电网络
加密货币
稳定币
Rollup
Move
DApp
预言机
Layer2
账户抽象
每周以太坊
Gas
OpenZeppelin
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容: