前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于交易的gas 与gassPrice概念已经交易阻塞

关于交易的gas 与gassPrice概念已经交易阻塞

作者头像
大话swift
发布2019-09-25 14:25:37
7580
发布2019-09-25 14:25:37
举报
文章被收录于专栏:大话swift

以太坊的交易是通过旷工从矿池中挖矿完成的,而挖矿是❓通俗讲就是将矿池中提交的交易按照价格高低进行筛选打包成块的过程

为何有gas

说到gas就需要整理一个概念---什么是gas?

首先gas是个度量单位:我们生活中有衡量长短的单位-米,时间单位分钟小时和天以及年以及汽车损耗的汽油的度量单位升……有了这些作为铺垫我们就好理解以太坊中的gas啦。

在交易过程中对于大家来书同样一个比特币或者ether折换成人民币在同一时刻应该是相同的,对于同一个交易大家挖矿时消耗的计算力是相同的。那么怎么将每一份计算力划分出来等价于一份以太坊的资源消耗呢?对了划分度量---gas。这个gas犹如我们的金钱中的圆角分的数量是个资源对应出来的个体---买衣服花了200块钱这个那么换算成就是我买衣服花了200个ether(当然了这个衣服太贵啦…)

GasPrice

gasPrice是整个网络公认动态调整的一个代表一个gas购买力的数据。还原到现实世界的一个例子就是:有车的朋友都会关注汽油价格的波动,一个100升的油箱在汽油是2¥/V的时候你加满需要200块钱,还原至以太坊就是我执行这个预算需要消耗100的算力每个算力需要2gas,那么每个gas的价格就是50啦。当然了这100个算力是燃烧人民币换来的,假设折合1000块钱吧此时我们的gasprice就是对应人民币就是500 ¥/gas。再假如1gas就是一个以太币的话,那么1以太币的价格就是500大洋啦

好了,上面的是我们倒着推出来的,现实是这些都是系统内设动态变化的,说白了就是单价,使用是根据数量*单价计算总价用的

阻塞交易

区块链之所以包含链是因为它是把交易矿池中的交易通过旷工根据算力计算打包成块,然后再将这些块按照序号排列起来。这就出现两个问题

1 从矿池中取交易打包

2将打包数据编号

对于矿池中的交易数据需要旷工挖矿而旷工肯定是挑挑拣拣的啦---要么容易单位算力打包的多,要么总价贵,总之就是我要挑单位收益高的来。当然了系统也是这么设定的要不然大家都不钱系统怎么运行啊。

既然有挑挑拣拣就会出现有些没有利润的交易一直没有苦力愿意干从而一直呆在矿池无法被打包进而也就无法完成交易啦

再来说说打包过程,一个块中可以打包多个交易目前根据算法算出大概是每个块能打包224个交易,假如你的正好是某个快的打包的第一个交易那么你需要等待后续的223个也被打包了才有可能被整个链条承认…

处理交易阻塞

假如我们模拟一笔交易,费用很低那么他会持续的呆在矿池中

代码语言:javascript
复制
Type:                   Pending transaction
From:                   0xED96dD3Be847b387217EF9DE5B20D8392A6cdf40
To:                     0xa34C6BCAe6F46ac6470443CCea67d937f6060c7E
Nonce:                  1
Gas limit:              21000
Gas price:              1 GWei
Value:                  0.005 Ether

上文说到我们的交易提交后有可能价格低无法被打包,那么怎么处理呢?两种办法:修改价格重新提交,取消交易

1 取消交易

以太坊没有从交易池中移除交易的机制,但可以用不同的信息覆盖交易,例如用0值转移回发送方,这具有类似的效果。但这仍然是一个交易,仍然需要被开采。重新提交上述交易来达到取消交易的结果,如下所示:

代码语言:javascript
复制
Type:                   Pending transaction
From:                   0xED96dD3Be847b387217EF9DE5B20D8392A6cdf40
To:                     0xED96dD3Be847b387217EF9DE5B20D8392A6cdf40
Nonce:                  1
Gas limit:              21000
Gas price:              60 GWei
Value:                  0

注意,“To”地址改成了“From”地址,“Value”改成了0。

2 修改价格

我们把价格提高

代码语言:javascript
复制
Type:                   Pending transaction
From:                   0xED96dD3Be847b387217EF9DE5B20D8392A6cdf40
To:                     0xa34C6BCAe6F46ac6470443CCea67d937f6060c7E
Nonce:                  1
Gas limit:              21000
Gas price:              10 GWei
Value:                  0.005 Ether

注意 “From” 地址和 “Nonce” 值在两个交易中是相同的。这两个值可以用来唯一确定一个交易,允许交易覆盖。而且 gas 价格发生了相应的变化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档