快速学习-EVM数据存储

  • 2020 年 4 月 11 日
  • 筆記

EVM数据存储

Storage

  • 每个账户都有一块持久化的存储空间,称为 storage,这是一个将256位字映射到256位字的key-value 存储区,可以理解为合约的数据库
  • 永久储存在区块链中,由于会永久保存合约状态变量,所以读写的 gas 开销也最大

Memory(内存)

  • 每一次消息调用,合约会临时获取一块干净的内存空间
  • 生命周期仅为整个方法执行期间,函数调用后回收,因为仅保存临时变量,故读写 gas 开销较 小

Stack(栈)

  • EVM 不是基于寄存器的,而是基于栈的,因此所有的计算都在一个被称为栈(stack)的区域执行
  • 存放部分局部值类型变量,几乎免费使用的内存,但有数量限制