本文深入探讨了以太坊架构中合约存储的实现,详细分析了以太坊区块的数据结构,以及如何通过Geth客户端查看合约存储的内部机制。文章详细解释了区块头、状态根和存储根的关系,并介绍了SSTORE和SLOAD操作码在Geth中的实现,帮助读者更好理解EVM和智能合约的存储机制。
本文介绍了以太坊EVM中gas refund的机制,重点讲解了伦敦分叉前后,由于清空链上存储而返还gas的规则变化。伦敦分叉前,将变量设置为默认值可获得15000 gas的退款,但退款上限为交易消耗gas的一半。伦敦分叉后,退款额降至4800 gas,上限为gas消耗的五分之一。文章还探讨了降低gas退款的原因,包括GasToken的出现和区块大小差异的增加。