【gas优化】2.9 使用sstore2或sstore3存储大量数据
欢迎来到《掌握 Solidity Gas 优化的艺术》专栏💎。专栏核心理念:
价值💸💸: 在区块链世界,每一点 Gas 的节省都是真金白银。
方法🔬🔬: 优化不是猜测的艺术,而是测量的科学。
本文是系列课程的一部分,旨在通过实战代码(💻)与完整测试(🔬),帮您系统性地提升智能合约性能,降低交易成本🚀。
2.9 使用sstore2或sstore3存储大量数据
分析
当需要在 EVM 上存储大量数据时,直接使用合约 storage 会十分昂贵,所以其实不推荐链上存储大量的数据。如果必须要存储,可以使用SSTORE2和SSTORE3库,它们提供了一种使用“代码即存储”的新方法,可以在链上高效地存储和检索大量数据。 SSTORE3相对于SSTORE2,在于它允许更小的指针大小,让您可以更轻松地将数据指针与其他存储变量打包在一起,从而节省更多 Gas。
SSTORE
SSTORE 是 EVM 的一个操作码,允许我们基于键值对存储持久数据。与 EVM 中的所有内容一样,键和值都是 32 字节的值。写入(SSTORE)和读取(SLOAD

