3.3 以太坊核心词汇详解

  1. 以太坊虚拟机:以太坊中智能合约的运行环境。
  2. 账户

    1. 外部账户
      1. 被公钥-私钥对控制
    2. 合约账户
      1. 合约账户被存储在账户中的代码控制
    3. 外部账户与合约账户区别

    4. 内部结构

  3. 消息:类似于比特币上的交易

    1. 与比特币交易的不同点
    2. 以太坊的消息可以由外部实体或者合约创建,比特币的交易只能外部创建
    3. 以太坊的消息可以包含数据
    4. 如果以太坊消息的接收者是合约账户,可以选择进行回应,这意味着以太坊消息包含着函数概念
  4. 交易
    1. 以太坊的”交易“指存储从外部账户发出的消息的签名数据包。
    2. 交易包含消息的接收者,用于确认发送者的签名、以太坊账户余额、要发送的数据和被称为STARTGAS和GASPRICE的两个数值。
  5. 交易吞吐量(TPS):
    1. 交易吞吐量指的是以太坊每秒能够处理的交易数量
    2. 计算方式:TPS=(gasLimit/gas)/出块速度,目前以太坊上gasLimit大小为6771518。在以太坊上消耗gas最少的是发送支付交易,支付交易消耗21000wei,而如果以以太坊出块的平均速度为15s(可能已经不止15s)算,可以算出TPS=6771518/21000/15=21(当前的TPS已经小于这个值)
  6. Gas
    1. Gas就是我们说的燃料、以太坊每一笔交易都会被收取一定数量的燃料gas,设置Gas的目的是限制交易执行所需的工作量,同时为交易的执行支付费用。
    2. 无论执行到什么位置,一旦Gas被耗尽就会触发一个out-of-gas的异常。同时,当前调用所做的所有状态修改都将被回滚
    3. GasPrice其实就是一个Gas单位的价格,以gwei为单位表示
    4. gasPrice是由发起交易的人规定的
    5. gasLimit代表了这个交易在执行过程中最多被允许消耗的gas数量
    6. 计算方法:付款金额=Gas数量*GasPrice
    7. 注意 在交易完成后 如果实际支付的gas小于gasLimit,剩余的gas会以ether的方式返回给交易发起者 实际交易费=gasUsed*gasPrice;
    8. 如果在执行交易的过程中,实际消耗的gas大于gasLimit,会返回余额不足的错误,同时,已消耗的gas不会退还
  7. 存储、主存和栈
    1. 存储:每个账户都有一块永久的内存区域,被称为存储。形式为key-value,key和value的长度均为256位
    2. 主存:合约执行每次消息调用时都有一块新的被清除过的主存。
    3. 栈:EVM是基于栈的虚拟机。栈最大有1024个元素,每个元素有256位。
  8. 指令集
    1. EVM的指令集被刻意保存在最小规模,以尽可能的避免可能导致的共识问题的错误。所有指令集都是针对256位这个基本的数据单位进行操作,具备常用的算术、位、逻辑和比较操作,也可以进行条件跳转和无条件跳转
  9. 消息调用
    1. 合约可以通过消息调用的方式来调用其它合约,或者发送以太币到非合约账户。
  10. 代码调用和库
    1. 以太坊中存在一种特殊类型的消息调用,被称为callcode。它和消息调用几乎完全一样,只是加载来自目标地址的代码,将会在发起调用合约上下文中运行。这意味着一个合约可以在运行时从另外一个地址动态加载代码
    2. 库-Library:为了实现合约代码的复用
  11. 以太坊的状态转换
    1. 状态转换是指在一个交易发生时,以太坊从一个正确的状态转换到下一个正确的状态的过程
  12. 以太坊客户端
    1. 主要包含geth,mist,wallet

猜你喜欢

转载自blog.csdn.net/u014396366/article/details/82319312
3.3