以太坊中的gas、gas price、gas limit到底是什么

什么是gas

gas是“燃料”的意思,在以太坊区块链上实现了一个EVM(以太坊虚拟机)的代码运行环境,在链上执行写入操作时,网络中的每个全节点都会进行相同的计算并存储相同的值,这种执行的消耗是昂贵的,为了促使大家将能在链下进行的运算都不放到链上进行,也为了奖励矿工,因此在链上每执行一个写入操作时,都需要支付一定的费用,用gas为单位来计数,每个在链上可以执行的命令都设置了一个消耗的gas值,例:PUSH操作需要消耗3个gas,一次转账一般要消耗21000gas,gas使用ETH来支付。

注意:无论您执行的命令是成功还是失败,都需要支付计算费用,即使失败,节点也验证并执行了您的交易(计算),因此必须和成功执行支付一样的费用

什么是gas limit

每个区块有gas limit,即单个区块允许的最多gas总量,以此可以用来决定单个区块中能打包多少笔交易。

我们每一次交易或合约调用都要设置一个gas limit,如果该次操作所使用的gas数量小于或等于您所设置的gas limit,则会被执行,但如果gas总消耗量超过gas limit,所有的操作都会被重置,但费用依旧会被收取。在执行中实际消耗的gas值总和叫gas used,没有使用完的gas会退还到原账号。

如果您尝试将一个会使用超过当前区块gas limit的交易打包,则会被网络拒绝,会反馈“below gas limit”

什么是gas price

在发起交易或合约调用时,我们可以自己设置gas的价格,即gas price,一般以GWei(1 ETH = 1000000000 GWei)为单位。通过gas price可以节省矿工费用,但也会减慢矿工打包的速度,矿工会优先打包gas price设置高的交易,如果您想加快转账,您可以把gas price设置得更高,这样您就可以插队靠前。

在定义gas price时候,推荐浏览https://ethgasstation.info/ 这里能看到以太坊区块链上最近完成的交易对应的消耗单价、记录时间、等待时间、手续费均价等。根据自身交易需求,我们可以参考右下Safelow/Standard/Fast三个速度对应的gasPrice。

总结

  1. gas limit由我们自己设定,相当于我们预计汽车需要加多少升汽油;
  2. gas price由我们自己设定,相当于每升汽油的价格;
  3. 一次交易或调用实际需要消耗的gas(gas used)由该次交易或调用过程中执行的命令决定;
  4. gas used 必须小于或等于gas limit;
  5. 实际支付的费用 = gas used * gas price。

原文地址:http://blog.51cto.com/634435/2132099

时间: 2024-09-30 21:39:48

以太坊中的gas、gas price、gas limit到底是什么的相关文章

区块链学习(2)--以太坊中基本概念

1.以太币单位换算.以太坊的单位,沿袭了科学界的传统,用做过杰出贡献的数学.密码学专家的名字命名.以太坊的最小单位是 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 2.以太坊账

PoW挖矿算法原理及其在比特币、以太坊中的实现

PoW,全称Proof of Work,即工作量证明,又称挖矿.大部分公有链或虚拟货币,如比特币.以太坊,均基于PoW算法,来实现其共识机制.即根据挖矿贡献的有效工作,来决定货币的分配.? 比特币区块 ? 比特币区块由区块头和该区块所包含的交易列表组成.区块头大小为80字节,其构成包括:? 4字节:版本号 32字节:上一个区块的哈希值 32字节:交易列表的Merkle根哈希值 4字节:当前时间戳 4字节:当前难度值 4字节:随机数Nonce值? 此80字节长度的区块头,即为比特币Pow算法的输入

以太坊中RLP编码详解一文全搞懂

定义 RLP(Recursive Length Prefix,递归长度前缀)是一种编码算法,用于编码任意的嵌套结构的二进制数据,它是以太坊中数据序列化/反序列化的主要方法,区块.交易等数据结构在持久化时会先经过RLP编码后再存储到数据库中. RLP编码的定义只处理两类数据:一类是字符串(例如字节数组),一类是列表.字符串指的是一串二进制数据,列表是一个嵌套递归的结构,里面可以包含字符串和列表,例如["cat",["puppy","cow"],&q

以太坊中的计量单位及相互转换

以太币单位转换 首先我们来看一下以太币单位之间的转换,以太币的最小单位为wei,1个eth相当于10的8次方wei.通常,大家也使用Gwei作为展示单位.比较常用的就是eth,Gwei和wei. 单位 wei值 Wei wei 1 1 wei Kwei (babbage) 1e3 wei 1,000 Mwei (lovelace) 1e6 wei 1,000,000 Gwei (shannon) 1e9 wei 1,000,000,000 microether (szabo) 1e12 wei

基于以太坊实现代币发布

https://blog.csdn.net/Y_xiaohe1234/article/details/76848150 一.什么是代币?代币是利用以太坊的智能合约编写的数字货币.程序员可以通过编写智能合约代码,创建一种新的数字货币.你可以实现的功能: 基本功能:-创建数字货币,设置货币的名称.货币总量.货币图标等基本参数.-创建货币交易功能.实现货币在不同用户之间的转移. 上面的是基本功能,已经可以实现基本的代表交换,下面是高级功能,可以实现更加复杂的应用.高级功能:-创建货币的管理者.虽然区块

以太坊(三)

总览 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境.它不仅被沙箱封装起来,事实上它被完全隔离,也就是说运行在EVM内部的代码不能接触到网络.文件系统或者其它进程.甚至智能合约与其它智能合约只有有限的接触. 账户 以太坊中有两类账户,它们共用同一个地址空间.外部账户,该类账户被公钥-私钥对控制(人类).合约账户,该类账户被存储在账户中的代码控制. 外部账户的地址是由公钥决定的,合约账户的地址是在创建改合约时确定的(这个地址由合约创建者的地址和该地址发出过的交易数量计算得到,地址发出过的交易数

使用 Go-Ethereum 1.7.2搭建以太坊私有链

1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生.以太坊是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用. 以太坊可以用来编程,分散,担保和交易任何事物:投票,域名,金融交易所,众筹,公司管理, 合同和大部分的协议,知识产权,还有得益于硬件集成的智能资产. 以太坊的白皮书:https://github.com/ethe

以太坊源码机制:挖矿

狗年吉祥,开工利是,我们继续研究以太坊源码.从本篇文章开始,我们会深入到以太坊核心源码中去,进而分析与研究以太坊的核心技术. 关键字:拜占庭,挖矿,矿工,分叉,源码分析,uncle叔块,agent,worker,事件监听 本文基于go-ethereum 1.7.3-stable源码版本.源码范围主要在miner pkg. miner.start() miner即矿工的意思,矿工要做的工作就是"挖矿",挖矿就是将一系列最新未封装到块中的交易封装到一个新的区块的过程.学习以太坊挖矿之前,我

区块链,使用 Go-Ethereum 搭建以太坊私有链

1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生.以太坊是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用. 以太坊可以用来编程,分散,担保和交易任何事物:投票,域名,金融交易所,众筹,公司管理, 合同和大部分的协议,知识产权,还有得益于硬件集成的智能资产. 以太坊的白皮书:https://github.com/ethe