微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 什么是以太坊的Gas机制?

什么是以太坊的Gas机制?

2019-01-11 11:31
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2019-01-11 11:31 《区块链杂谈》电子杂志

以太坊在区块链上实现了一个运行环境,被称为以太坊虚拟机(EVM)。每个参与到网络的节点都会运行EVM作为区块验证协议的一部分。他们会验证区块中涵盖的每个交易并在EVM中运行交易所触发的代码。每个网络中的全节点都会进行相同的计算并储存相同的值。合约执行会在所有节点中被多次重复,这个事实得使得合约执行的消耗变得昂贵,所以这也促使大家将能在链下进行的运算都不放到区块链上进行。对于每个被执行的命令都会有一个特定的消耗,用单位Gas计数。

Gas是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行,用于交易、执行智能合约、支付数据存储费用等各个方面。

每个合约可以利用的命令都会有一个相应的Gas值。Gas值的存在避免智能合约进入死循环,你不能编写永不结束的程序,因为你用尽了Gas,计算将被节点拒绝。

Gas同时也是矿工的佣金,并以ETH⽀付。在以太坊中,由交易发起者付出的Gas最终会以ETH货币的价值计算并付给矿工作为手续费,也就是:Gas cost= Gas Used*Gas Price。

在现实中,所有的交易最终都是由矿工选择的,但是用户所选择支付的交易费用多少会影响到该交易被打包所需等待的时长。如果该交易由于计算,包括原始消息和一些触发的其他消息,需要使用的Gas数量小于或等于所设置的Gas limit,那么这个交易会被处理。如果Gas总消耗超过Gas limit,那么所有的操作都会被复原,但交易是成立的并且交易费任会被矿工收取。区块链会显示这笔交易完成尝试,但因为没有提供足够的Gas导致所有的合约命令都被复原。所以交易里没有被使用的超量Gas都会以以太币的形式打回给交易发起者。因为Gas消耗一般只是一个大致估算,所以许多用户会超额支付Gas来保证他们的交易会被接受。

来源:《区块链杂谈》第十五期

作者:陶婧婕

关注科技行者微信公众号(ID:itechwalker),获取更多《区块链杂谈》电子杂志

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-