LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 小科普:以太坊矿工费是什么?怎样避免交易失败?

小科普:以太坊矿工费是什么?怎样避免交易失败?

2020-09-14 比特派钱包 来源:区块链网络

随着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 Price 和 Gas Limit?

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

如果你是一个不甘心做普通用户的普通用户,这里可以给你一些扩展网站,可以琢磨下,合理的Gas Price 和 Gas Limit是怎样根据大数据推算出来的https://ethgasstation.info/index.php。另外自定义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 Limit 值

2、你用的钱包不太聪明的样子,没看懂对方返回的 Gas Limit 值

解决办法: 1、手动给 Gas Limit 调高点,通常200000—300000就可以应付当前大多数的DeFi合约交易。2、换比特派。

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

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


聪明的小伙伴灵机一动,那我设置尽可能大的Gas Limit岂不是万无一失了?反正用不完的会还我。实际上过高的Gas Limit并不会提高你的交易速度。反而会给你带来风险。

以太坊每个区块可以处理的交易也是有限的,因此矿工需要在有限的交易数中获得更高的收益,而过高的Gas Limit在矿工眼中属于画大饼的行为,部分的挖矿策略中会后置处理Gas Limit过高的交易。

此外,Gas Limit的存在可以有效的防止一些合约死循环恶意消费你的矿工费,如果你设置了过高的Gas Limit,恰巧又碰到了有问题的合约,那么你Gas将会一直消耗下去,直到设置的GasLimit将会被消耗光,又是损失惨重的一天。

设置矿工费时候出现的Gwei是什么?

以太坊的最小单位是 Wei。1 个以太币 = 10 的 18 次方 Wei,此外,以太坊还有其他的单位:

Kwei(Babbage)= 10 的 3 次方 Wei

Mwei(Lovelace)= 10 的 6 次方 Wei

Gwei(Shannon)= 10 的 9 次方 Wei

MicroEther(Szabo)= 10 的 12 次方 Wei

MilliEther(Finney)= 10 的 15 次方 Wei

Ether = 10 的 18 次方 Wei

括号里的部分是每个单位的别名。

在以上这些单位里,通常计算 Gas 价格时使用的都是 GWei。

以上

矿工费真不是钱包收的!矿工费真不是钱包收的!矿工费真不是钱包收的!

你们的派派

2020年9月14日

—-

编译者/作者:比特派钱包

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

LOADING...
LOADING...