图解以太坊虚拟机EVM

本文详细介绍了以太坊虚拟机(EVM)的工作流程,包括固定油费、合同对象生成、解释器执行、合约调用、创建合约等步骤。EVM用于执行以太坊交易,通过解释器执行字节码并操作栈、内存和油费。油费计算、合同交互和智能合约创建过程都有详尽阐述。
摘要由CSDN通过智能技术生成

今天聊一聊以太坊虚拟机的原理。

以太坊虚拟机,简称EVM,是用来执行以太坊上的交易的。业务流程参见下图:
在这里插入图片描述
输入一笔交易,内部会转换成一个Message对象,传入EVM执行。

如果是一笔普通转账交易,那么直接修改StateDB中对应的账户余额即可。

如果是智能合约的创建或者调用,则通过EVM中的解释器加载和执行字节码,执行过程中可能会查询或者修改StateDB。

1.固定油费(Intrinsic Gas)

每笔交易过来,不管三七二十一先需要收取一笔固定油费,计算方法如下:
在这里插入图片描述
如果你的交易不带额外数据(Payload),比如普通转账,那么需要收取21000的油费。

如果你的交易携带额外数据,那么这部分数据也是需要收费的,具体来说是按字节收费:字节为0的收4块,字节不为0收68块,所以你会看到很多做合约优化的,目的就是减少数据中不为0的字节数量,从而降低油费消耗。

2.生成Contract对象

交易会被转换成一个Message对象传入EVM,而EVM则会根据Message生成一个Contract对象以便后续执行ÿ

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值