以太坊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智能合约发行属于自己的空气币
前言 目前区块链是互联网中最最火的风口,没有之一.我周围的很多朋友也加入了“炒币”行列,但很不幸,几乎都被“割韭菜”了.而经过我的几天研究,发现,如果自己要发行一种空气币,简直太简单了.只需要下面几个 ...
随机推荐
- PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
一.数字补0. 如果要自动生成学号,自动生成某某编号,就像这样的形式“d0000009”.“d0000027”时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个 ...
- 由ngx.say和ngx.print差异引发的血案
Jan 16, 2018openresty点击 最近上线一个项目,利用openresty在前面做反向代理,部分地址通过lua的http请求后端接口进行返回,在线下测试都没问题,公司预发灰度测试都通过了 ...
- (转)Springboot邮件服务
springboot仍然在狂速发展,才五个多月没有关注,现在看官网已经到1.5.3.RELEASE版本了.准备慢慢在写写springboot相关的文章,本篇文章使用springboot最新版本1.5. ...
- Java通过POI生成Excel
import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; impo ...
- MySQL 基础 备份和恢复
数据库备份 mysqldump [args] > file_name 例如:备份所有数据库 shell> mysqldump --all-databases > dump.sql # ...
- Python 全栈开发二 python基础 字符串 字典 集合
一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...
- ios9 适配的坑
http://www.cocoachina.com/ios/20151016/13715.html
- vue弹窗组件
文件结构 component.vue <template> <div class="_vuedals" v-show="show"> & ...
- visual studio Lua 调试
BabeLua是一款基于VS (简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有如下功能和特性: ●Lua语法高亮 ●语法检查 ●自动补全 ●一键注释 ●格式化代码 ●自定义代码 ...
- xcode 各版本下载地址及其它工具下载地址
官方下载地址:https://developer.apple.com/downloads/