主页 > 苹果版下载imtoken > 以太坊(ETH)GAS详解 | 锦瑟财经
以太坊(ETH)GAS详解 | 锦瑟财经
金色财经转发报道:
什么是煤气?
以太坊在区块链上的执行环境的实现称为以太坊虚拟机(EVM)。 参与网络的每个节点都将 EVM 作为块验证协议的一部分运行。 他们检查正在验证的区块中列出的交易以太坊节点搭建成本,并运行由 EVM 中的交易触发的代码。 网络中的每个完整节点都执行相同的计算并存储相同的值。 显然,以太坊并不是为了优化计算效率。 ,因为它的并行处理是多余的。 以太坊提供了一种有效的方式来就系统状态达成共识,而无需受信任的第三方、权威或蛮力垄断。 但显然,这不是最优的计算方法。 合约执行在节点之间被冗余复制的事实自然使它们变得昂贵,这通常会产生不使用区块链进行链下计算的动机。
当你运行一个去中心化应用程序 (dapp) 时,它会与区块链交互以读取和修改其状态,但 dapps 通常只将对达成共识至关重要的业务逻辑和状态放在区块链上。
当由于消息或交易触发而执行合约时,每条指令都会在网络的每个节点上执行。 这是有成本的:对于执行的每个操作都有指定的成本,以气体单位表示。
Gas 是交易发起者需要为以太坊区块链上的每个操作支付的执行费用的名称。 gas 这个名字的灵感来自于这个费用可以用作加密燃料来推动智能合约的移动。 天然气可以从执行代码的矿工那里购买。 Gas 和 Ether 是有意分离的,因为 Gas 单位与具有自然成本的计算单位保持一致,而 Ether (Ether) 的价格通常随市场波动。 两者受自由市场监管:gas的价格实际上是由矿工设定的,矿工可以拒绝处理低于最低gas价格的交易。 你只需要在你的账户中添加一定数量的以太币就可以获得gas。 以太坊客户端会自动为你的以太坊购买gas,金额为你指定的交易最大支出金额。
根据以太坊协议,在合约或交易中执行的每一个计算步骤都是收费的,以防止对以太坊网络的恶意攻击和滥用。 每笔交易都必须包含一个 gas limit 和一个愿意为 gas 支付的费用。 矿工可以选择是否包含交易和收取费用。 如果交易产生的计算步骤使用的气体总量( gas used ),包括原始消息和可能已触发的任何子消息,小于或等于气体限制以太坊节点搭建成本,则交易被处理。 如果 gas 总量超过 gas 限制,所有更改都会回滚,除非交易仍然有效并且矿工接受费用。 所有未在交易执行中使用的多余气体将以以太币的形式返回给交易发起者。 您不必担心超支,因为您只需为消耗的天然气付费。 这意味着发送超过估计气体限制的交易既有用又安全。
估算交易成本
交易中花费的以太币总成本取决于两个因素:
gasUsed:是交易消耗的gas总量
gasPrice:指定交易中一单位gas(以太币)的价格
总成本 = gasUsed * gasPrice
使用的气体
EVM 中的每个操作都指定要消耗的气体量。 gasUsed 是用于执行所有操作的所有气体的总和。 有一个电子表格提供了这背后的一些分析。
为了估计 gasUsed,可以使用 estimateGas API,但有一些注意事项。
汽油价格
当用户构建和签署交易时,每个用户都可以指定他们想要的任意 gasPrice,甚至可以为零。 但是Frontier推出的以太坊客户端默认的gasPrice为0.05e12 wei。 由于矿工优化了他们的收入,如果大多数交易以 0.05e12 wei 的 gas 价格提交,将很难说服矿工接受指定较低或零 gas 价格的交易。
估算交易成本的例子
例如,一个合约只是添加了 2 个数字,而 EVM OPCODE ADD 消耗了 3 个 gas。
使用默认 gas 价格(截至 2016 年 1 月)的大致成本为:
3 * 0.05e12 = 1.5e11 魏
注:gas的最小单位是wei,1ether = 10^18wei
换算成以太币,就是0.00000015以太币。
操作名称
天然气成本
评论
步
1个
每个执行周期的默认数量
停止
自由
自杀
自由
沙3
20
负载
20
从永久存储中获取
商店
100
入库永久
平衡
20
创建
100
合约创建
称呼
20
发起只读调用
记忆
1个
扩展记忆时每增加一个单词
发送数据
5个
交易的每个数据或代码字节
交易
500
基本费用交易
合约创建
53000
从 21000 开始改变宅基地