科普贴 | 以太坊网络中的Gas Limit 和 Gas Price 是什么概念?
接触以太坊的同学都听过 Gas/ Gas Price/ Gas Limit,那么这些词汇究竟是什么意思?
还有,为什么有时候你的ETH转账会很慢?如何提高ETH转账速度?
Ethereum平台
Vitalik Buterin于2015年7月推出了全球市值第二大加密货币的平台叫做Ethereum。 该平台目标是为开发人员提供一个开放、分布式网络,允许启动自己的分散式应用程序(DApps)和智能合约。 若比特币网络是对等支付系统,则以太坊被设计为通过分散式虚拟机(EVM)执行程序代码。
Ethereum网络与Bitcoin不同,前者里不仅运行一种加密货币,除了ETH之外,还有Gas和Gas Limit。 它们不仅允许用户支付交易费用,还可以启动智能合约和DApps,并将数据存储在区块链中。
Gas 是什么?
Gas 翻译成中文就是“燃气”,是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行。
Gas 用来衡量执行某些动作需要多少“工作量”,这些“工作量”就是为了执行该动作支付给网络的费用额。通俗理解,Gas 是给矿工的佣金,并以 ETH 支付,无论是交易、执行智能合约并启动 DApps,还是支付数据存储费用,都需要用到 Gas。
▲gas 的工作原理
Gas Limit 和 Gas Price 是什么?
ETH 与其他加密货币不同,其作用不仅限于支付还用维护网络,一枚 ETH 分为:Finney,Szabo,Gwei,Mwei,Kwei 和 Wei,其中Wei是最小的 ETH 单位,一个ETH 等于一千 Finney,一百万 Szabo,十亿Gwei和百万万亿 Wei 。
Gas由两个部分组成: 限制(Gas limit)和价格(Gas Price)。Gas Limit 是用户愿意为执行某个操作或确认交易支付的最大Gas量(最少21,000)。Gas Price 是 Gwei 的数量,用户愿意花费于每个 Gas 单位的价钱。
当进行每笔交易时,发送人设定Gas Limit 和Gas Price,将 Gas Limit*Gas Price ,就得到了ETH交易佣金的成本。
发送者支付的Gas Price越高,则其交易的优先级越重要,因为矿工的报酬会更高。 此选项适用于那些参与热门ICO预售的人,并他们希望增加自己交易列入到下一个区块的机会。 但是,通过设置较低燃料价格(GasPrice),发送者可以节省资金,例如,将资金转到另一个钱包。
交易完成后,所有未使用的Gas都会退到发送者账户。 但是,如果用户设置的限制值太低,那么ta的交易被认为是无效的,并且会因为“Gas不足”错误而被取消,并且用于计算的Gas不会退到账户。 值得注意的是,无论交易是否通过,发送者总是向矿工支付计算费用。
因此设置 Gas 需要考虑的问题:
- 不同的操作会产生不同的 Gas 成本。
- Gas Price越高,交易优先级越高,打包交易速度越快。
- Gas 用完时,矿工将停止执行。也即当设置的最大Gas Limit用完时,交易还未完成,那么交易失败,并且已消耗的费用不再退回。
- 如果设置的最大Gas Limit未用完时,还有剩余的 Gas,将立即退还给发起交易的人员。
提高Gas Price是否会加快开采速度?
交易费用会交给挖矿的矿工。当矿工挖矿时,他们必须决定确认哪些交易。为了鼓励矿工在区块中确认你的交易,你可以设置一个足够高的 Gas Price,这样你就跳到了别人的前面,被优先确认交易。如果你的 Gas price 设置得过低,低于矿工的预期值,就会被忽视不予确认。
如果你想少花一些交易费,就降低 Gas price,但是价格太低会影响交易的确认速度,适用于不紧急的交易。目前为止,确认交易使用 1 Gwei 需要大约30分钟,而用 40 Gwei 大约1-2分钟。
想知道更多区块链的资讯和干货,请持续关注 wx公众号:『猫说区块链』。

科普贴 | 以太坊网络中的Gas Limit 和 Gas Price 是什么概念?的更多相关文章
- 以太坊ETH中智能合约消耗的Gas、Gas Limit是什么?
以太坊ETH中智能合约消耗的Gas.Gas Limit是什么? 数字货币交易一般是有交易费的,比特币(BTC)的交易费很容易理解,就是直接支付一定额度的BTC作为手续费.而以太坊(ETH)的交易费表面 ...
- 通过Geth搭建私有以太坊网络
前言 为了进一步了解以太坊区块链网络的工作方式和运行原理,笔者通过官方软件Geth搭建了私有以太坊网络fantasynetwork,最终实现了单机和多机节点间的相互连通:首先通过VMware Work ...
- 科普贴 | 以太坊代币钱包MyEtherWallet使用教程,一步步教你玩转MEW
MyEtherWallet 是一个以太坊的网页钱包,使用非常简单,打开网页就可以使用,源代码开源,不会在服务器上存储用户的钱包信息如私钥和密码.支持 Ledger Wallet.TREZOR 等硬件钱 ...
- 使用Mist部署Contract到Rinkeby以太坊网络
本文使用MyEthWallet新建一个账号,并导入到Mist中,然后部署Contract到Rinkeby网络使用MyEthWallet新建账号的好处是除了JSON文件之外,还能得到一张它生成的pdf( ...
- [中文] 以太坊(Ethereum )白皮书
以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...
- 区块链入门到实战(25)之以太坊(Ethereum) – 以太币单位
以太币的主要单位是以太/Ether,即一个以太币,以太币的最小单位是wei. 以太币最小单位 wei 是以虚拟币先驱人物:戴伟 Wei Dai 命名,戴伟 W Dai 是一位兴趣广泛的密码学专家,他在 ...
- 以太坊开发DApp入门教程——区块链投票系统(一)
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- 通俗讲解:PoW共识机制与以太坊的关系、Ghost协议 及 PoS共识机制的变种---Casper
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- 以太坊(ethereum)开发DApp应用的入门区块链技术教程
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
随机推荐
- 题解 P2920 【[USACO08NOV]时间管理Time Management】
题面 作为一名忙碌的商人,约翰知道必须高效地安排他的时间.他有N工作要 做,比如给奶牛挤奶,清洗牛棚,修理栅栏之类的. 为了高效,列出了所有工作的清单.第i分工作需要T_i单位的时间来完成,而 且必须 ...
- 028、HTML 标签1列表、图片、表格
内容简单看一下理解就行了. HTML 是用来描述网页的一种语言.就是用来编写网页的语言 内容:换行.分割,标签属性,编码方式设置,字体标签,特殊符号,列表.图片.表格标签############### ...
- BZOJ4269:再见Xor(线性基)
Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整数N. 接下来一行N个非负整数. ...
- BZOJ3673/3674:可持久化并查集
Description n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0& ...
- luogu P1891 疯狂LCM
嘟嘟嘟 这题跟上一道题有点像,但是我还是没推出来--菜啊 \[\begin{align*} ans &= \sum_{i = 1} ^ {n} \frac{i * n}{gcd(i, n)} ...
- 【转】使用程序修改系统(IE)代理设置
文章都是发布在github再转到这边的,这边格式可能会乱掉.博客地址:benqy.com 这是本人在做的一个前端开发调试工具(HttpMock),功能是web服务器+http日记+http代理(类似f ...
- Scala学习之路 (九)Scala的上界和下届
一.泛型 1.泛型的介绍 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性.泛型的典型应用场景是集合及集合中 ...
- CSS做一个Switch开关
本文为博主原创,转载请注明出处. Switch开关: 根据需求可知,Switch开关只有两种选择,true或false.所以我们想到HTML的checkbox控件,用它来做. <input id ...
- Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)
Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的 ...
- <数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构件
一.简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内. 示例一: package cn.generic.example; public ...