LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 以太坊拥堵我们该如何设置Gas费才最合理?

以太坊拥堵我们该如何设置Gas费才最合理?

2020-12-22 链推者___Ethan 来源:区块链网络

近期随着以太坊的币价拉升,DeFi热潮的延续,以太坊的交易又再次突破新高,但是过多的交易量再次导致了以太坊的拥堵,以太坊的矿工费也达到了历史新高,之前转账几分钱的时代已经远去,随之而来的是动辄上百元的交易费用。

很明显,高昂的矿工费使你忍不住点进来,妄图通过学习科普来节省矿工费。不过以现阶段来看,省钱是不存在的,这篇文章顶多能让你花钱花的更明白点

以太坊矿工费是怎么计算的?

提到矿工费,很多人会脱口而出,就是Gas呗!目前的确是有很多人将Gas和矿工费直接画等号来使用的。但严格意义来说,这种定义是不准确的。

在以太坊区块链中,Gas是衡量计算量的特殊单位,它用来测量一个操作或一组操作需要执行多少工作量。比如,计算一个 Keccak256 加密哈希函数,每次计算哈希时需要 30 个 Gas。

因此Gas不是币,不是钱,不是费用,所以和矿工费并不是一个东西。

那Gas和矿工费有什么关系呢?看下面这一条公式:

矿工费= Gas Price * Gas Used 翻译过来就是 :

矿工费=Gas 价格*Gas 用量

下面我们就来拆开讲一下公式里的一些概念。

Gas Price 指你愿意为单位Gas支付多少以太坊,这是最吸引矿工的数字,也是决定你的交易完成快慢的决定性因素,因为矿工为了获得更多的矿工费,总是会优先为出价更高的交易服务。

所以在转账前一定要设置合理的 Gas Price,过低会长时间得不到处理,或者被移除交易,导致转账失败。

Gas Used 是指你的这次操作消耗了多少Gas,但在日常转账时,我们通常见不到Gas Used在哪里设置,这是因为只有在转账完成后,我们才能看到这笔交易具体使用了多少Gas。

我们在转帐前可以设置的叫做Gas Limit,即Gas 限额,意思是你愿意为这笔操作最多使用多少Gas,Gas Limit 和 Gas Used的特别像你点外卖,你预计自己可以吃多少和你实际吃多少的关系。

设置完Gas Limit进行转账后,会有以下几种情况:

1、Gas Limit = Gas Used,即预设的 Gas 和用掉的 Gas 完全一致。

2、Gas Limit > Gas Used,即预设的Gas没有完全消耗完。

3、Gas Limit < Gas Used,即预设的Gas不够实际使用的。

第一种,交易成功。

第二种,交易成功。还有个好消息是,没有消耗完的Gas会以ETH的形式返回,并不会造成损失。

第三种,交易失败。还有个坏消息是,已经消耗的Gas不会退回,损失惨重。

所以简单总结一下:

Gas Price决定你的交易走多快(多快被矿工打包),

Gas Limit 决定你的交易可以走多远(可以运行多么复杂的合约)。

怎样合理设置Gas PriceGas Limit?

如果你是一个普通用户,那么你不需要考虑这些问题。譬如imtoken,比特派这样的钱包,在转账时会根据当前网络状态帮你自动计算推荐矿工费,为你设置当前最合理的Gas Price 和 Gas Limit。

如果你是一个不甘心做普通用户的普通用户,那我就带你一起琢磨一下

首先设置的矿工费= 设置Gas Price * 设置Gas Limit

虽然把Gas Price 和 Gas Limit 任意一个数值降低你的矿工费的值都会降低,但是最好不要随意降低 Gas Limit 。正确降低矿工费的方法应该是调低 Gas Price。

因为降低 Gas Limit不仅不会给你省钱,还会徒增你交易失败的概率,同时你也知道,交易失败后的矿工费是不会退还的,所以千万不要随意降低 Gas Limit,这是很不明智的一种行为。

为什么交易在区块链上会失败,提示Out Of Gas

Out Of Gas 就是指上面的第三种情况,Gas Limit < Gas Used,即预设的Gas不够实际使用的,这种情况在按钱包或者交易所推荐的预设Gas费下基本上都不会发生,如果发生,通常只会发生在以下几种情况之下:

1、以太坊线上交易量太多,太拥堵,你的交易可能是因Gas Price设置得太低而被遗忘所以被迫交易失败

2、在去中心化交易所的交易池内交易时,池内筹码比例变化得太快,你的交易自发出那一刻就已经是不成立了,所以会交易失败

3、智能合约不够健全,项目方太应付,没有提前预设返回Gas Limit 值,导致我们的钱包设置了错误的Gas Limit数据

解决办法:

1、在以太坊拥堵时候,要想交易成功迅速,就是要设置高额一点的Gas Price

2、在筹码比例变化快的池子内交易,你的交易速度,也就是你交易时选择交易数额已经输入密码的手速要快一些,这样还能大致跟得上流动性池子内的变化

3.如果是项目智能合约不健全,首先要考虑的是这个项目还值不值得去参加,最基础的交易Gas Limit 值都不能提前反馈,技术与审查实在是不到位;如果接受项目,要想交易成功,那你就要设置尽可能高的Gas Limit 值,多试几次,这由于是项目技术本身的不到位,所以并没有什么更好地办法

设置Gas Limit是不是越高越好?

前面说当Gas Limit > Gas Used 时,即预设的Gas没有完全消耗完,多设置的的部分Gas还会返还给我们。

所以很多人就会想,那我设置尽可能高的Gas Limit岂不是万无一失了?反正用不完的会还我。实际上过高的Gas Limit并不会提高你的交易速度。反而会给你带来风险。

因为以太坊每个区块可以处理的交易也是有限的,因此矿工需要在有限的交易数中获得更高的收益,而过高的Gas Limit在矿工眼中属于画大饼的行为,他们并不喜欢这种泡沫,会宁愿去选择数据更实在单价更高的交易,从而去实打实地填满一个区块,并且部分的挖矿策略中还会后置处理Gas Limit过高的交易。

而且,Gas Limit的存在可以有效的防止一些合约死循环漏洞去恶意消费你的矿工费,如果你设置了过高的Gas Limit,恰巧又碰到了有问题的合约,那么你Gas将会一直消耗下去,直到设置的Gas Limit将会被消耗光,这将是得不偿失的。

结语

现阶段高额的Gas费用将会是以太坊交易中一直存在的大问题;怎样去合理地设置Gas费,将会帮助我们去进行更精确的交易费用支出;但我们相信在以太坊2.0到来之后,以太坊能真正履行区块链去中心化交易的速率与低手续费,从而真正达到交易的性价比。

—-

编译者/作者:链推者___Ethan

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...