脉波开发者文档
  • 脉波开发者文档
  • 基础主題
    • 脉波简介
    • MAPO币
    • 全链去中心化应用
    • 全链应用与单链或多链应用的区别
    • 第三方信任跨链与点对点跨链方案区别
    • 比特币二层
      • brc-201
    • 预言机 Oracle
      • Supra: MAP Protocol 上的去中心化预言机
    • 帐户
    • 交易
    • 区块
    • MPT树
    • RLP编码
    • Gas费用
    • 消息跨链
    • 轻客户端
      • MAPO轻客户端
    • 全链开发组件层MOS
      • MOS接口和功能
      • MOS的部署
      • Messenger
    • 中继链(atlas)
      • 节点架构
        • 中继链(atlas)架构 - 区块和交易结构
        • 创世
          • 创世配置 - 介绍创世配置文件
          • 创世合约
            • ABI
              • Accounts
              • Election
              • EpochRewards
              • LockedGold
              • Validators
            • 地址
            • 部署
        • 预编译合约 - 支持的预编译合约
        • 协议
          • Proof of Stake
          • 共识
          • 选举
          • 奖励
          • 治理
      • 部署节点 - 包括公共RPC节点
        • 运行节点(中继链)
        • 归档节点(中继链)
        • 引导节点(中继链)
        • 验证节点 (中继链)
        • RPC节点(中继链)
      • Marker工具 - atlas的简易客户端工具
        • Genesis
        • Validator
        • Vote
        • Common
      • 搭建私有网络
      • 公共网络服务信息
        • 公共网络
      • 示例
        • 如何成为一个 Validator 并加入到 Atlas 网络中
        • 如何成为一个 Validator 并加入到 Atlas 网络中[高级]
    • Compass(maintainer,messenger)
      • Compass - 架构及模块说明
      • Compass配置参数
      • Compass环境与部署
      • Compass二次开发 - 基于compass定义自己的路由服务
  • MAPO技术堆栈
    • 堆栈
      • 接入的链
    • EVM兼容
      • 智能合约语言
      • 智能合约结构
      • 智能合约库
      • 编译智能合约
      • 测试智能合约
      • 部署智能合约
      • 可组合性
      • 智能合约安全性
      • 智能合约形式化验证
      • 开发框架
      • 开发网络
    • 实现跨链互通
      • EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
      • 非EVM兼容链的跨链互通
        • 轻客户端验证
        • 轻客户端状态更新
        • MOS层
    • 如何开发全链应用
    • 轻客户端信息
    • SDK/API - mapo支持的API
      • MOS接口
      • 轻客户端接口
      • 中继链RPC
        • json-rpc
          • atlas json rpc
          • atlas consensus rpc
        • javaScript sdk
        • go-sdk
      • 后端API
        • 浏览器API
        • 数据统计与分析API
  • 零知识证明(zk)
    • 零知识证明
Powered by GitBook
On this page
  • 前提条件
  • 什么是 Gas?
  • Gas费
  • 为什么存在燃料费用?
  • 什么是燃料限额?
  1. 基础主題

Gas费用

PreviousRLP编码Next消息跨链

Last updated 1 year ago

Gas 对MAPO-Relay-Chain网络至关重要。 正是这种燃料使它能够运行,正如车辆需要汽油一样。以下MAPO-Relay-Chain统称为MAPO.

前提条件

为了更好地理解此页面,推荐先阅读和 。

什么是 Gas?

Gas 是指在MAPO网络上执行特定操作所需的计算工作量。

由于每笔MAPO上的交易都需要计算资源才能执行,每笔交易都需要付费。 燃料是指在MAPO上执行交易所需的费用,不论交易成功与否。

Gas费

MAPO网络交易费的计算方式采用跟以太坊伦敦升级后计算方式一致。

假设 Jordan 需要向 Taylor 支付 1 个MAPO币。 在交易中,燃料限额为 21,000 单位,基础费是 10 gwei。 Jordan 支付了 2 gwei 作为小费。

现在,总费用为:units of gas used * (base fee + priority fee),其中 base fee 是协议设置的值,priority fee 是用户设置的值,即给验证者的小费。

即,21,000 * (10 + 2) = 252,000 gwei 或 0.000252 个MAPO币。

当 Jordan 转账时,将从 Jordan 帐户中扣除 1.000252 个MAPO币。 Taylor 的帐户增加 1.0000 个MAPO币。 验证者收到 0.000042 个MAPO币的小费。 0.00021 个MAPO币的基础费被销毁。

此外,Jordan 还可以为交易设定最高费用 (maxFeePerGas)。 最高费用与实际费用之间的差额将退还 Jordan。即 refund = max fee - (base fee + priority fee)。 Jordan 可以为要执行的交易设置一个最高支付金额,而不用担心在执行交易时“超额”支付基础费。

区块大小

基础费

每个区块都有一个基础费作为底价。 要想有资格添加到区块中,燃料费用报价必须至少等于基础费。 基础费独立于当前区块计算,是由当前区块之前的区块决定的,这使得用户更容易预测交易费。 当区块被开采时,其基础费将被“销毁”并退出流通。

基础费是用一个公式计算的,该公式将前一个区块的大小(所有交易中使用的燃料数量)与目标大小进行比较。 如果超过目标区块大小,每个区块的基础费将最多增加 12.5%。 这种指数级增长使得区块大小无限期保持高位在经济上不可行。

优先费(小费)

由于基础费被销毁,优先费(小费)将激励矿工将交易添加到区块中。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在正常情况下,一笔金额不大的小费为矿工添加交易提供了极小的激励。 对于需要在同一区块中优先执行的交易,需要提供更高的小费,力争使出价高于竞争交易。

最高费用

要在网络上执行交易,用户可以为他们愿意支付的交易执行费用指定最高限额。 此可选参数称为 maxFeePerGas。 为了执行交易,最高费用必须超过基础费和小费的总和。 交易完成后,会退还给交易发送人最高费用与基础费和小费总和之间的差额。

为什么存在燃料费用?

简而言之,燃料费用有助于确保MAPO网络的安全。 在网络上执行的每次计算都需要收费,这样可以防止不良行为者给网络带来垃圾信息。 为了防止代码中出现无意或恶意的无限循环或其他计算浪费,要求每个交易对可以采用的代码执行计算步骤设置一个限制。 基本计算单位是“燃料”。

尽管交易中包含费用限制,但交易中未使用的所有燃料将退还给用户(即退还 max fee - (base fee + tip))。

什么是燃料限额?

例如,如果你对简单的MAPO币转账设置 50,000 单位燃料限额,EVM虚拟机将消耗 21,000 单位,你将收到剩余的 29,000 单位。 然而,如果你设置的燃料太少,比如说,对于简单的MAPO币转账,设置燃料限额为 20,000 单位,EVM虚拟机将消耗 20,000 单位燃料并尝试完成交易,但不会完成。 然后,EVM虚拟机回滚所有变化,但由于矿工已经完成了价值 20k 单位燃料的工作,这些燃料就被消耗了。

本质上,Gas 费用是MAPO的货币(MAPO币)支付的。 Gas 价格以 Gwei 标明,Gwei 本身就是 MAPO币 的一个单位――每个 Gwei 等于 0.000000001 MAPO币 (10-9 MAPO币)。 例如,您可以说您的 Gas 成本为 1 Gwei,而不是说您的 Gas 成本为 0.000000001 MAPO币。 “gwei”一词本身表示“giga-wei”,等于 1,000,000,000 wei。 Wei 本身(以 的发明者 命名)是 MAPO币 中最小的单位。

MAPO引入了大小可变的区块。 每个区块的目标大小为 1300 万单位燃料,但区块的大小将根据网络需求增减,但不得超过 2000 万单位燃料的区块大小限制。 这意味着如果区块大小超出目标区块大小,协议将增加下一个区块的基础费。 同样,如果区块大小小于目标区块大小,协议将减少基础费。 基础费的调整金额与当前区块大小和目标区块大小的差距成比例。 。

燃料限额是指你愿意在交易中消耗的最大燃料数量。 涉及的更复杂交易需要进行更多的计算工作,因此相比简单的支付,它们需要更高的燃料限额。 标准MAPO币转账要求燃料限额为 21,000 单位燃料。

b-money
Wei Dai
更多关于区块的信息
智能合约
交易
EVM
显示 EVM 操作所需 Gas 的图表