智能合约 / 主题阅读

智能合约中Contract Code读取成本与适用场景

Contract Code适用于数据仅需写入一次、无需修改且需长期保存的场景。读取成本随数据量变化,首次访问成本较高,后续访问成本较低。

Contract Code的读取成本分析

EXTCODECOPY操作码的读取成本取决于数据量。首次访问合约时,成本为2600 gas,后续访问为100 gas加上每32字节3 gas。相比Calldata,Contract Code在数据量超过约200字节时更具成本优势。但若数据量较小,Calldata可能更经济。

Contract Code的适用场景

Contract Code适用于数据仅需写入一次、无需修改且需长期保存的场景。数据以合约代码形式存储,通过EXTCODECOPY操作码读取。这种方式适合数据被多次访问的情况,因为读取成本相对较低。

Contract Code的限制条件

Contract Code存储的数据需满足特定条件,即合约代码不能以0xEF开头。以0xEF开头的合约会被解释为Ethereum Object Format,具有更严格的格式要求,不适合普通数据存储。此外,Contract Code存储的数据无法直接访问,需通过合约调用读取。

资料与延伸阅读

你可以通过以下原始资料核对文中概念,并继续深入阅读。

  1. Blockchain Data Storage Strategies | ethereum.org ↗
← 更多智能合约文章返回顶部 ↑