快速学习-EVM数据存储
- 2020 年 4 月 11 日
- 笔记
EVM数据存储
Storage
- 每个账户都有一块持久化的存储空间,称为 storage,这是一个将256位字映射到256位字的key-value 存储区,可以理解为合约的数据库
- 永久储存在区块链中,由于会永久保存合约状态变量,所以读写的 gas 开销也最大
Memory(内存)
- 每一次消息调用,合约会临时获取一块干净的内存空间
- 生命周期仅为整个方法执行期间,函数调用后回收,因为仅保存临时变量,故读写 gas 开销较 小
Stack(栈)
- EVM 不是基于寄存器的,而是基于栈的,因此所有的计算都在一个被称为栈(stack)的区域执行
- 存放部分局部值类型变量,几乎免费使用的内存,但有数量限制