接触以太坊的同学都听过 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 是什么概念?的更多相关文章

  1. 以太坊ETH中智能合约消耗的Gas、Gas Limit是什么?

    以太坊ETH中智能合约消耗的Gas.Gas Limit是什么? 数字货币交易一般是有交易费的,比特币(BTC)的交易费很容易理解,就是直接支付一定额度的BTC作为手续费.而以太坊(ETH)的交易费表面 ...

  2. 通过Geth搭建私有以太坊网络

    前言 为了进一步了解以太坊区块链网络的工作方式和运行原理,笔者通过官方软件Geth搭建了私有以太坊网络fantasynetwork,最终实现了单机和多机节点间的相互连通:首先通过VMware Work ...

  3. 科普贴 | 以太坊代币钱包MyEtherWallet使用教程,一步步教你玩转MEW

    MyEtherWallet 是一个以太坊的网页钱包,使用非常简单,打开网页就可以使用,源代码开源,不会在服务器上存储用户的钱包信息如私钥和密码.支持 Ledger Wallet.TREZOR 等硬件钱 ...

  4. 使用Mist部署Contract到Rinkeby以太坊网络

    本文使用MyEthWallet新建一个账号,并导入到Mist中,然后部署Contract到Rinkeby网络使用MyEthWallet新建账号的好处是除了JSON文件之外,还能得到一张它生成的pdf( ...

  5. [中文] 以太坊(Ethereum )白皮书

    以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...

  6. 区块链入门到实战(25)之以太坊(Ethereum) – 以太币单位

    以太币的主要单位是以太/Ether,即一个以太币,以太币的最小单位是wei. 以太币最小单位 wei 是以虚拟币先驱人物:戴伟 Wei Dai 命名,戴伟 W Dai 是一位兴趣广泛的密码学专家,他在 ...

  7. 以太坊开发DApp入门教程——区块链投票系统(一)

    概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

  8. 通俗讲解:PoW共识机制与以太坊的关系、Ghost协议 及 PoS共识机制的变种---Casper

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  9. 以太坊(ethereum)开发DApp应用的入门区块链技术教程

    概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

随机推荐

  1. redis 持久化与备份策略

    持久化(persistence) 本文是 Redis 持久化文档 的中文翻译. 这篇文章提供了 Redis 持久化的技术性描述,推荐所有 Redis 用户阅读. 要更广泛地了解 Redis 持久化,以 ...

  2. Linux基础第一课——基础知识了解

    前言 发展历史 linus 林纳斯 赫尔辛基大学 在自己的笔记本上安上自己写的操作系统 基于Linux内核 Linux内核 也是基于unix内核开发出来 unix 不开源 只能军方和大学使用 Linu ...

  3. Redis系列二:reids介绍

    一.什么是redis.redis有哪些特性.redis有哪些应用场景.redis的版本 1. 什么是redis redis是一种基于键值对(key-value)数据库,其中value可以为string ...

  4. gcd以及exgcd入门讲解

    gcd就是最大公约数,gcd(x, y)一般用(x, y)表示.与此相对的是lcm,最小公倍数,lcm(x, y)一般用[x, y]表示. 人人都知道:lcm(x, y) = x * y / gcd( ...

  5. 微信支付的notify.php中如何获取订单号(php版)

    不要直接使用demo中的notify.php,重写notify.php,继承WxPayNotify(可参考微信api),具体如下: require_once "WxPay.Api.php&q ...

  6. [Java123] JBoss

    https://blog.csdn.net/taogebx/article/details/4620760

  7. Dubbo -- 系统学习 笔记 -- 目录

    用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启 ...

  8. [转]OpenGL进阶(一) - 多视口

    直接给出原文链接:OpenGL进阶(一) - 多视口

  9. Git同时使用不同平台代码仓库

    问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...

  10. java过滤器filter使用

    一:filter:过滤器,拦截servlet的请求和响应. 1. package jd.com.filter; import javax.servlet.*; import java.io.IOExc ...