美文网首页
交易的执行流程

交易的执行流程

作者: 混世小朋友 | 来源:发表于2019-06-03 14:23 被阅读0次

EVM的存储模型:

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

EVM存储结构

 Stack

EVM是基于栈(stack)的虚拟机,stack用来保存指令的输入输出数据,最大深度为1024个字,其中每个单元就是一个字。

临时存储Memory

内存,一个简单的内存数组,用于临时存储EVM代码运行中需要存取的各种数据,基于字进行寻址和扩展

永久存储 Storage

Storage用来保存所有合约“状态”的永久存储,由以太坊客户端独立维护,每个账户的存储区域被以“字”为单位划分为若干个“槽”(solt),合约中的状态变量会根据其具体类型分别保存到这些槽中。例如在合约创建时由EVM根据合约定义的状态变量进行初始化,将他们保存进以"字"为单位划分的"存储槽(solt storage)"中。

Storage也是作为是世界状态的一部分存在的,客户端会用一个MPT来维护其数据。

ROM

用来保存所有EVM程序代码的只读存储,由以太坊客户端独立维护。

交易在EVM的执行

输入一笔交易,内部会转换成一个Message对象,传入EVM执行。基于上一篇交易的执行流程分析,如果是一笔普通转账交易,那么直接修改StateDB中对应的账户余额即可。如果是智能合约的创建或者调用,则通过EVM中的解释器加载和执行字节码,执行过程中可能会查询或者修改StateDB。

1 生成Contract对象

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

2.送入解释器执行

EVM是基于栈的虚拟机,解释器中需要操作四大组件

    PC:类似于CPU中的PC寄存器,指向当前执行的指令

    Stack:执行堆栈,位宽为256 bits,最大深度为1024

    Memory:内存空间

    Gas:油费池,耗光邮费则交易执行失败

EVM解释执行指令流程

EVM的每条指令称为一个OpCode,占用一个字节,所以指令集最多不超过256,具体描述参见:https://ethervm.io 。首先PC会从合约代码中读取一个OpCode,然后从一个JumpTable中检索出对应的operation,也就是与其相关联的函数集合。接下来会计算该操作需要消耗的油费,如果油费耗光则执行失败,返回ErrOutOfGas错误。如果油费充足,则调用execute()执行该指令,根据指令类型的不同,会分别对Stack、Memory或者StateDB进行读写操作。

相关文章

  • 交易的执行流程

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

  • Fabric背书策略

    1 用途 1.1 交易流程回顾 Hyperledger Fabric 区块链网络交易的执行分为以下几个步骤。End...

  • 量化交易基本概念

    量化交易1: 算法交易流程: 大前提:基于某种平台:1.提出假设2.建立模型3.回测验证4.执行交易 交易策略来源...

  • yield执行流程

    yield 执行流程 上面的执行流程将会如何输出呢? 说明了,generator的执行流程为 g() 实际不会执行...

  • 以太坊黄皮书详解(二)

    三、交易执行 交易执行是以太坊中最为重要的部分。 在执行交易之前首先需要对交易进行初步校验: 交易是RLP格式的,...

  • C语言基础继续讲讲(循环语句-数组)

    C语言基础 三大执行流程 顺序执行流程 条件执行流程if语句if(条件){ 语句体}如果条件成立,就执行{}...

  • 以太坊源码(02):交易收发机制

    目录 1、交易的主要数据结构 2、交易收发相关协程 3、关键流程描述 3.1交易数据验证流程 3.2交易入...

  • 周胜-第一个将区块链技术运用在珠宝上的人

    珠宝行业,由于交易流程复杂,线下交易业务繁琐,交易流程涉及矿场-原材料加工-批发-零售等众多环节,流程冗长。在整个...

  • 以太坊黄皮书详解(三)

    六、虚拟机的执行模型 上文三四五部分都是从流程上对交易执行(包括合约创建和合约调用)进行了介绍。本章节介绍以太坊中...

  • 买 房 现 实 说(二)

    ——交易流程,及避开可能出现的坑 房屋交易流程 贷款购买二手房交易流程 1)支付定金 买卖双方在签订中介提供的房屋...

网友评论

      本文标题:交易的执行流程

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