区块链核心知识点梳理(7)-Gas 机制与优化

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • [7. Gas 机制与优化](#7. Gas 机制与优化)
    • [7.1 Gas 基础原理](#7.1 Gas 基础原理)
      • [7.1.1 为什么需要 Gas?](#7.1.1 为什么需要 Gas?)
      • [7.1.2 Gas 计算规则](#7.1.2 Gas 计算规则)
    • [7.2 EIP-1559 详解](#7.2 EIP-1559 详解)
      • [7.2.1 动态 BaseFee 机制](#7.2.1 动态 BaseFee 机制)
      • [7.2.2 Priority Fee(小费)策略](#7.2.2 Priority Fee(小费)策略)
    • [7.3 Gas 优化技巧](#7.3 Gas 优化技巧)
      • [7.3.1 存储优化技巧](#7.3.1 存储优化技巧)
      • [7.3.2 循环优化](#7.3.2 循环优化)
      • [7.3.3 短路求值](#7.3.3 短路求值)
      • [7.3.4 事件 vs 存储](#7.3.4 事件 vs 存储)
      • [7.3.5 使用 calldata 替代 memory](#7.3.5 使用 calldata 替代 memory)
    • [7.4 Gas 优化工具](#7.4 Gas 优化工具)
      • [7.4.1 Gas Reporter](#7.4.1 Gas Reporter)
      • [7.4.2 Solidity Optimizer](#7.4.2 Solidity Optimizer)
      • [7.4.3 Gas Profiler](#7.4.3 Gas Profiler)
    • [7.5 实际案例: Uniswap V3 的 Gas 优化](#7.5 实际案例: Uniswap V3 的 Gas 优化)

7. Gas 机制与优化

7.1 Gas 基础原理

7.1.1 为什么需要 Gas?

场景对比:

7.1.2 Gas 计算规则

操作码(Opcode) 的 Gas 成本:

存储操作是最昂贵的:

7.2 EIP-1559 详解

7.2.1 动态 BaseFee 机制

BaseFee 计算公式:

历史 BaseFee 趋势:

7.2.2 Priority Fee(小费)策略


7.3 Gas 优化技巧

7.3.1 存储优化技巧

1: 打包存储变量

技巧 2: 使用 immutable 和 constant

技巧 3: 批量操作

7.3.2 循环优化


7.3.3 短路求值

7.3.4 事件 vs 存储

7.3.5 使用 calldata 替代 memory

7.4 Gas 优化工具

7.4.1 Gas Reporter

输出示例:

7.4.2 Solidity Optimizer

7.4.3 Gas Profiler

7.5 实际案例: Uniswap V3 的 Gas 优化

Uniswap V3 采用了多种 Gas 优化技术:

相关推荐
IvorySQL9 小时前
PostgreSQL 日报|堆表选择性索引更新(10 月 13 日)
数据库·人工智能·postgresql·开源·区块链
hughnz9 小时前
代币化石油:用区块链实现能源资产数字化
区块链
李可以量化1 天前
从零读懂配对交易(上):从套利本源到配对交易的核心逻辑
python·区块链·量化交易·通达信·qmt
codigger2 天前
哈希算法:一根看不见的 "指纹",如何撑起整个互联网
后端·区块链·哈希算法·sha256
怒放de生命20102 天前
web3之Solidity 变量与类型系统:从理解规则到写出合约
web3·区块链
磐链科技4 天前
IM社交钱包开发成本是多少?影响项目报价、功能配置与开发周期的关键因素分析
区块链·智能合约
IvorySQL4 天前
PostgreSQL 日报| PostgreSQL JDBC 安全更新(10 月 10 日)
数据库·postgresql·区块链