智能合约中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存储的数据无法直接访问,需通过合约调用读取。
资料与延伸阅读
你可以通过以下原始资料核对文中概念,并继续深入阅读。