时间:2024-12-21 01:18:51 点击:
Gas最初是在以太坊区块链上使用的,用于衡量消息消耗的计算和存储资源。这是短语“GasUnit”的起源。从历史上看,在其他区块链中,矿工以本机货币指定GasFee,然后根据消息消耗的Gas向生产矿工的区块支付优先费用。
但是,Gas消耗是整个网络应承担的成本,因为网络上的每个节点都必须花费存储和计算资源来验证每条消息并保持网络的一致状态。这样,基于特定消息的Gas使用量,会燃烧一些Gas以补偿网络。不花费此成本会造成激励失调,因为成块生产的矿工可能会免费包含计算上昂贵的消息,而其他人则会为此付出代价。
BaseFee是以太坊的EIp1559引入的概念。一条消息的BaseFee乘以Gas使用量即被“燃烧”。刻录意味着将其发送到无法使用的地址,并从网络上的流通中删除。它会根据给定时刻对网络带宽的需求进行动态调整。当网络变得拥塞时,它会上升,从而使估值低于网络BaseFee的邮件发件人将保留并等待直到拥塞消除。BaseFee的变化速率旨在快速增加潜在的DOS攻击,并随着网络变得不那么繁忙而迅速降低。导致网络变得更加拥塞的消息发件人也将通过支付更高的费用来内部化成本。燃烧还会产生缓慢的通缩压力,使所有网络参与者受益。
回到我们的公路旅行类比中,考虑一下汽车中的天然气之类的天然气,以及正常交通中的网络。如果道路拥堵(例如在高峰时段),并且交通停走,您的汽车将消耗更多的汽油。在这种情况下,可能需要稍等片刻然后再开始旅行。相同的理论也适用于Filecoin网络-当网络流量拥塞时,Gas费将很高,因此等待稍后再试可能是有意义的。
除了烧掉一些费用以补偿网络之外,消息发送方还包括针对生产矿工的区块的优先级费用,该费用不受消息消耗的Gas量的束缚。这称为Gaspremium,也可以在协议之外进行安排。
为了帮助读者更好地了解Gas收费机制,以下内容描述了有关Gas的概念及其相互作用。这些字段可以由消息发送者设置,但是目前在Lotus中是自动的,可以开发更多工具。
GasLimit–消息发送者可以消耗,估计和指定的消息执行量的限制。块中包含的所有消息的GasLimit之和不得超过BlockGasLimit。这以GasUnit为单位。
GasUsage – 一条消息的执行实际消耗的气体量。当前协议不知道消息在执行之前将确切消耗多少Gas。这以GasUnit为单位。
GasFeeCap –发件人愿意为每个GasUnit为在块中包含消息而支付的最大令牌数量。发送消息时,消息发送者的最低余额必须等于GasFeeCap乘以GasLimit的最低余额,即使并非所有余额都将被消耗掉。以attoFIL/ GasUnit为单位。
Gaspremium –优先权费用,它按每单位GasLimit的价格支付给块状生产矿工。这受GasFeeCap的限制,BaseFee具有更高的优先级。这以attoFIL /GasUnit为单位,并且可以低至1 attoFIL / GasUnit。
BaseFee –一个网络范围的变量,可以根据上一个技巧集中的所有消息的GasLimit之和动态调整。当总GasLimit超出某个块的GasLimit目标(信号网络拥塞)时,它将增加,而当低于此值时,它将减少。以attoFIL/ GasUnit为单位。
消息发送者只需为每个消息指定一个GasFeeCap和GasLimit。随着链上资源的消耗,GasUsage乘以BaseFee将被燃烧。从GasFeeCap中减去BaseFee将产生Gaspremium。Gaspremium乘以GasLimit将作为优先费用进入生产矿工的区块。GasLimit和GasUsage之间的部分差异将作为高估损失而被消耗掉。其余的将返回给邮件发件人。
当前默认实现是矿工基于GasFeeCap /GasLimit选择消息,以在给定GasLimit的情况下最大化其预期收益。当网络拥堵且BaseFee很高时,矿工可以选择对包装进行装箱,从而减少GasLimit总量,以降低BaseFee,但可能以牺牲Gaspremium为代价。
熟悉以太坊区块链的人,对这个词一定非常熟悉。这个词从字面意思理解是燃料的意思,可以说在以太坊区块链上它仍然充当着燃料的作用。在以太坊区块链中,避免不了的就是不断的写入,然而当在链上执行写入操作时,网络中每个节点都要进行一次运算,并存储相同的计算值,这样一来对于整个链来说耗费是非常巨大的,因此为了鼓励到底将不必要的运算放链下进行,鼓励矿工,每当在链上执行一个写入操作时都要支付一定以gas为单位的费用。
与gas费并列的其实还有其他几个词,“gas limit“、”gas price“。在区块链中,每个区块都有gaslimit,即单个区块允许的最多gas总量。我们每一次交易或合约调用都要设置一个gas limit,如果该次操作所使用的gas数量小于或等于所设置的gaslimit,则会被执行,但如果gas总消耗量超过gas limit,所有的操作都会被重置,但gas费用依旧会被收取。在执行中实际消耗的gas值总和叫gasused,没有使用完的gas会退还到原账号。
同样的在发起交易或合约调用时,我们可以自己设置gas的价格,即gas price,一般以GWei(1 ETH=1000000000GWei)为单位。通过gas price可以节省矿工费用,但也会减慢矿工打包的速度,矿工会优先打包gasprice设置高的交易,如果您想加快转账,您可以把gas price设置得更高,这样您就可以插队靠前。
其实这就相当于我们去网吧上网,gas limit相当于我们身上带的所有网费,gasprice是不同区域每小时不同的网费,我们根据自己的需求选择不同的电脑不同的时长,花的钱(gas used)自然不能超过身上带的money。
本文部分内容来自互联网,如有疑问请与我们联系。
www.4p3.cn 版权所有 赣ICP备2024038979号-2
本网站内容由互联网收集整理,目的在于研究学习传递之用 如有不妥请联系删除 gg.e@163.com