EVM 内存

作者: 币来币往 | 来源:发表于2017-08-22 16:34 被阅读0次

EVM的内存可以分为几部分,其中合约所在的空间我们称之为storage,该部分是永久保存的;memory部分则不会永久保存。他们上面的array也有不同的特点:
storage 上面的可变长array可以动态的改变长度(如array.length = 20 则数组长度变为20), memory 上面的array则不可以,进行类似操作。
当进行赋值或者参数传递时,不同位置的变量传递方式也会不同,如memory上面的变量赋值给storage上面的变量就会完全复制一份,反之依然。memory到memory或者storage到storage则只会传递引用
function test(uint[] _x) //直接调用该函数时是值传递
function test(uint[] storage _x) //显示指定参数类型为storage则会进行refrence传递,不过这种改变默认参数类型的函数只能是internal or private(如果不指定,则编译器会将其转换成internal)

event 可以起到记录log的作用
event transfer(address from, address to, uint value);
event transfer(address indexed from, address to, uint value);

上面两个的不同之处在于 from前面加了一个indexed;
默认event是现在receipt的data部分,加上indexed以后就会写到部分;
需要注意的是topics最多只能有四个,event name占了一个,所以一个event最多只能有三个indexed型变量

相关文章

  • EVM 内存

    EVM的内存可以分为几部分,其中合约所在的空间我们称之为storage,该部分是永久保存的;memory部分则不会...

  • 交易的执行流程

    EVM的存储模型: EVM是一个基于堆栈的虚拟机,具有临时内存字节数组和持久键值存储(持久存储在Storage中)...

  • solidity 智能合约编译成wasm 和wast

    摘要 1、用solc 将solidity 代码编译成evm 字节码2、用evm2wasm 将evm 转化成wasm...

  • eth solidity简单部署合约合约调用

    EVM 的作用是什么EVM 就是执行智能合约字节码指令的地方。通过 EVM 执行智能合约来完成符合约束条件的交易,...

  • ZK EVM

    目前zkEVM主要有两种策略: 直接支持EVM现有指令集,兼容solidity 指令集,使用这种方案的是主要是He...

  • PMP关键术语和常用计算公式

    关键术语 EVM: 挣值管理 ES:挣得进度。ES 是 EVM 理论和实践的延伸。如果挣得进度大于 0,则 表示项...

  • Scroll zk-Rollup

    Scroll 将构建一个兼容EVM 的zk-Rollup方案,实现三个目标: 完全兼容EVM; 实现Layer-2...

  • Hyperledger Fabric如何通过虚拟机kvm部署以太

    EVM作为用户链代码安装到Fabric中,然后可以通过它部署智能合约。单个EVM链代码足以在通道上运行多个以太坊智...

  • 2018-03-22 以太坊EVM虚拟机代码阅读

    以太坊EVM虚拟机代码阅读 1、 类图 整体来说,整个以太坊evm的实现主要是依赖3个类,分别是VM,Progra...

  • 看书不理解EVM同学II用10分钟看这篇就够了

    “项目管理有3大工具——分解、CPM、EVM,可以说弄懂了这3大工具,项目管理基本就懂了。 EVM虽然很重要,但是...

网友评论

    本文标题:EVM 内存

    本文链接:https://www.haomeiwen.com/subject/fmeldxtx.html