以太坊ETH中智能合约消耗的Gas、Gas Limit是什么?
以太坊ETH中智能合约消耗的Gas、Gas Limit是什么?
数字货币交易一般是有交易费的,比特币(BTC)的交易费很容易理解,就是直接支付一定额度的BTC作为手续费。而以太坊(ETH)的交易费表面上看也是如此,需要支付一定额度的ETH,但实际内部运行要用到一个叫Gas的概念。
以太坊使用了智能合约,交易要是按照智能合约的规定一步一步执行命令,每执行一个命令都会产生一定的消耗,这个消耗用Gas作为单位,另外,不同命令消耗的Gas数量也不相同。
每笔交易都被要求包括一个Gas limit(有的时候被称为startGas)和一个愿为单位Gas支付的费用。其中Gas limit是这笔交易允许的最大的消耗Gas的数量,可以理解为交易服务本身的服务费;而愿为单位Gas支付的费用,可以理解为小费。
矿工有权利选择先打包哪一笔交易,你支付的交易费越多矿工就越喜欢帮你打包,交易确认的速度也越快。
Gas limit是你一笔交易最多需要掏的交易费,交易费不会超过这个值,若交易完成后没有用完Gas limit数量的Gas,那么多余的Gas会以ETH的方式返还给你。
如果你想让交易马上就被打包完成,那就得給矿工小费,也就是附加Gas,如果算上小费,实际消耗的Gas是可能超过Gas limit值的。
一个交易的交易费由两个因素组成:
gasUsed:该交易消耗的总gas数量
gasPrice:该交易中单位gas的价格(用以太币计算)
交易费 = gasUsed * gasPrice
Gas是交易中计算交易费的单位,大概相当于我们开车消耗的汽油,最终交易费是多少还是用钱来表示更直观,比如汽车跑开100公里烧8个油,不懂车的可能就不知道8个油是什么概念,但如果说100公里油费56元就直观了。
以太坊Gas也是一样,最终直观表达交易费是多少钱的是gasPrice,比我完成一笔交易,交易费是0.001ETH,那么这个0.001ETH就是gasPrice。
发送代币通常需要消耗大约5万至10万的gas,所以总交易费会上升0.001至0.002个ETH。
以太坊中有两种账户:
外部拥有账户(EOA)
合约账户
一个合约账户拥有一下特性:
有一个以太币余额
有相关联的代码
代码执行是通过交易或者其他合约发送的call来激活
当被执行时 -- 运行在随机复杂度 (图灵完备性)-- 只能操作其拥有的特定储存,例如可以拥有其永久state -- 可以call其他合约
所有以太坊区块链上的行动都是由各账户发送的交易激活。每次一个合约账户收到一个交易,交易自带的参数都会成为代码的输入值运行。合约代码会被以太坊虚拟机(EVM)在每一个参与网络的节点上运行,以作为它们新区块的验证。
----------------------------
以太坊ETH官网:
由以上可以看出为什么那么多基于以太坊智能合约开发的虚拟币需要eth作为代币了,因为交易需要消耗,也可以看出eth生态链的巨大价值,有这个刚需做基础以太坊跑赢整个区块链虚拟币是必然,所以囤币配置一定比例的eth是相对比较合理的。
========================
囤币一族利用B-Model专业评级模型对价值币进行深入分析评分,帮你在茫茫币海中发现那些闪耀的宝藏。所有的分析都在买入前完成,剩下的只需要"囤币"长期持有等待价值增长。免责声明:本号仅为个人观点和喜好,不构成投资建议。投资有风险,入市须谨慎!
以太坊ETH中智能合约消耗的Gas、Gas Limit是什么?的更多相关文章
- 以太坊(Ethereum)智能合约NodeJS/Web3 使用
一.概述 运行环境:Node.js.npm.Truffle.Solidity等 root@keke:~/go-ethereum# node -v v8.9.4 root@keke:~/go-ether ...
- [币严区块链]简单易懂的以太坊(ETH)智能合约开发入门教程
以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链(BlockChain)平台. 本文介绍了一个简单的以太坊智能合约的开发过程. 开发环境 在以太坊上开发应用 ...
- 科普贴 | 以太坊网络中的Gas Limit 和 Gas Price 是什么概念?
接触以太坊的同学都听过 Gas/ Gas Price/ Gas Limit,那么这些词汇究竟是什么意思? 还有,为什么有时候你的ETH转账会很慢?如何提高ETH转账速度? Ethereum平台 Vit ...
- 以太坊: ETH 发送交易 sendRawTransaction 方法数据的签名 和 验证过程
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- 以太坊ERC20代币合约案例
一.ERC20代币合约与web3调用 ERC20代币合约在小白看来觉得很高大上,但其实就是一个代币的定义标准,方便其他dapp统一调用各种代币的方法.如图: 二.ERC20合约标准 [官方链接] co ...
- Eth 部署智能合约
首先要开发以太坊的智能合约,需要EVM(以太坊虚拟机),也就是需要运行的环境,我们可以通过 geth 来设置开发环境: geth --datadir testNet --dev console 2&g ...
- 区块链入门到实战(27)之以太坊(Ethereum) – 智能合约开发
智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethe ...
- 智能合约开发solidity编程语言开发一个以太坊应用区块链投票实例
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合 ...
- 零门槛,包教会。让你在5分钟内使用以太坊ERC20智能合约发行属于自己的空气币
前言 目前区块链是互联网中最最火的风口,没有之一.我周围的很多朋友也加入了“炒币”行列,但很不幸,几乎都被“割韭菜”了.而经过我的几天研究,发现,如果自己要发行一种空气币,简直太简单了.只需要下面几个 ...
随机推荐
- MongoDB pymongo模块 查询
查询 mongo_db 类似于 服务器命令行的db 我们可以db.user.find() 查询 find() 需要加上列表 import pymongo mongo_client = pymongo. ...
- nginx做正向代理
#代理服务器设置 server { resolver 8.8.8.8; resolver 114.114.114.114; listen ; access_log /home/lin/proxy.ac ...
- golang 中处理大规模tcp socket网络连接的方法,相当于c语言的 poll 或 epoll
https://groups.google.com/forum/#!topic/golang-nuts/I7a_3B8_9Gw https://groups.google.com/forum/#!ms ...
- 【Java】-NO.16.EBook.4.Java.1.002-【疯狂Java讲义第3版 李刚】- 数据类型
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.002-[疯狂Java讲义第3版 李刚]- 数据类型 Style:EBook Series:Java ...
- 大牛推荐的10本学习 Python 的好书
Python:蛇亚目蟒科,主要包括分布于非洲及亚洲的无毒蟒蛇. Python:Richard Clabaugh拍摄的恐怖电影,2000年发行. Python:澳大利亚汽车公司. Python:英国偶发 ...
- MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
MySQL自动编号,确保数据的唯一性
- come on! linux install JDK9.0.1
哈哈,JDK9已经出来了 我们把它安装到Linux上吧! 一下载JDK9 http://www.oracle.com/technetwork/java/javase/downloads/index.h ...
- 听说,你也一直钟爱着equals。。。
脑补一下final final 用于声明变量/参数/属性.方法和类. 修饰变量:如果变量是基本类型,其值不变:如果是对象,则引用不可再变(内容可变). 修饰方法:方法不可重写(是否可继承取决于方法的访 ...
- 读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
其实这个条款分成两部分介绍会比较好,第一部分是用const和enum替换不带参的宏,第二部分是用inline替换带参的宏. 第一部分:用const和enum替换不带参宏 宏定义#define发生在预编 ...
- windows 服务器硬盘的分区
进入Server 2012的操作系统,打开CMD框,输入:diskmgmt.msc,回车. 操作完第一步后会弹出“磁盘管理”的框.鼠标右键点击红框所在位置,选中“压缩卷”. 在“输入压缩空间量(MB) ...