1、Gwei:1eth=10^9Gwei
1、Max Priority: 优先费用,也叫矿工小费。
这里需要注意一点,priority_fee并不是我们设置多少就是多少,而是priority_fee = min(max_priority_fee, max_fee - base_fee),系统会在你设置的max_priority_fee和 max_fee - base_fee中取最小
2、base fee(base_fee_per_gas): 出块时的基本网络费用,这个费用是烧掉的,不会给任何人。只有报价高于这个数,才能上链,否则就会失败。
3、Max Base(max fee per gas):用户愿意支付的最大费用
最大费用是指这笔交易你愿意支付的上限。上限的意思也就是说,你虽然设置了Max = 100,但交易实际可能只需要付50的gas费。而通常一定要满足 Max ≥ Base + Max Priority,但是执行的时候会按照Math.min(Max , Base + Max Priority)。
4、gas limit : 一般情况下钱包里默认设置的是21000,遇到复杂的合约,或者gas war 时候,这个数值会适当的设置高一些。如果实际没有消耗这么多,剩余的会退还给用户。但如果实际消耗需要51000,而你只设置为50000,那么这笔交易将不会完成,消耗的50000也不会退回。例如BSSB的抢购,有人设置了220000。
gaswar 案例:
https://etherscan.io/tx/0x3d23f0d8eacd5a6352aa041aff78211b929585997e44ab4039ecaf597da09b69
4、以太坊每个区块之间的时间间隔大概在12 ~ 14s
通过我们前面讲的概念可以知道,在链上特别拥堵的情况下,每个新块的Base费相比上一个块都会最高有一个12.5%的涨幅。
也就是说假设当前的Base费是100,我们把Max Base设成200,那么通过100 * 112.5% * 112.5% * 112.5% * 112.5% * 112.5% * 112.5% = 202.73可以得知,在链上一直拥堵的情况下,如果我们的交易排队能在前6个块排到,交易是可以成功的,而如果超过了6个块,也就是大概超过72 ~ 84s,交易将可能处于一直等待而无法成功的情况。这里一般设个2-3倍就够了,如果特别火爆再根据自己能接受的gas上限来增加。
所以为了保证我们的交易能够尽快成交,也就是需要去插队,我们需要给矿工一些小费(Max Priority),一般优先费在轻微拥堵的情况下设个3 ~ 5,很拥堵的情况设个小几十,大概率是足够的。当然如果你求稳,甚至可以设置更高。
那么设置完二者以后,你最终真实支付的 gas fee = 实际Base费(成功的那个块的Base费,小于等于Max Base)+ 优先费用。
base_fee具体是怎么变化的呢?
首先我们需要了解每个块并不是可以容纳无限多的交易的,每个块最多可以允许块内所有交易消耗的gas数量加起来为3000万,并且以1500万为界限。在当前块总消耗gas低于1500万时,那么下一个块的base_fee会降低,反之则会升高,而降低和升高幅度的上限为12.5%,即0.875 × previous_base_fee ≤ base_fee ≤ 1.125 × previous_base_fee。
参考文章:https://mirror.xyz/0xoakk.eth/hP9vDSG9UuYHDHCtWqOyTtfbozjpoxpvak0nJRnbVcU
网友评论