前言
简单的说就是手续费的一种变体,本质还是转账费用,只能在设计上,功能更复杂,用处更多。 即然是手续费,为什么不干脆一次性收取或者设定一个转账比例,不是更简单? 这个后面说。
Gas 说明
以太坊自称要成为世界计算机,但是这个计算机是烧Gas而不是用电,也不知是汽化天燃气还是液化天燃气。也有可能是以太坊想说,发电要用天燃气,所以Gas代表了消耗。
参数 | 作用 |
|---|---|
Gas(也称:GasUsed) | EVM中的每个操作都指定了要消耗的gas量 |
Gas Price | 每个操作的单价,就是说这笔交易,不只一处需要使用到Gas |
Gas Limit | 本次交易的Gas限额 |
所以一笔交易的手续费就是:
Transaction Fee = Gas * GasPrice
就是这么简单粗暴。
作用:资源限制手段,以及网络矿工奖励手段。
- 作为以太坊价格(具有波动性)和矿工对其工作的奖励之间的抽象层。
- 另一种是抵御拒绝服务攻击。
为了防止网络中的意外或恶意无限循环或其他计算浪费,每个交易的发起者需要设置他们愿意花费在gas上的金额的限制。 因此,gas系统阻止攻击者发送垃圾邮件交易,因为他们必须按比例支付他们消耗的计算,带宽和存储资源。
Gas 限制
每笔交易的gas是的上限的,也就是gasLimit,而每个区块只包含1250万单位的gas,超过这个上限后,交易无法打包,只能等待下一个区块再打包。
Gas - 操作次数
Gas 的操作每一步操作步数,都是固定的。也就是说每个合约在执行时,能执行多少操作完全就可以被计算出来的。
- 添加两个数字需要
3个gas - 计算Keccak256哈希值,需要
30个gas 每256位数据被哈希6个gas - 发送交易成本为
21000gas
ADD: 3
MUL: 5
SUB: 3
GasPrice - 操作单价
gasprice的计量单位为:gwei,一个gwei为是1g个wei,即10^9 wei。
由于1 wei = 10^(-18) ETH,所以: 1 gwei = 10^9 wei = 10^(-9) ETH。
wei和Gwei 不一样
单位 | 说明 |
|---|---|
wei | 1wei = 10^(-18) ETH |
Gwet | 1gwei = 10^9 wei,1gwei = 10^(-9) ETH |
这笔费用去了哪里?
最终给了矿工。
gas 预测
代码语言:javascript复制eth.estimateGas({from:eth.accounts[0], to:eth.account[1], value: 10})设置打包费用
如果站在矿工的角度上来说,怎么设置哪些需要打包哪些不需要打包。
而Gas的收益最后归矿工所有。


