【智能合约】以太坊中智能合约调用中用的gas相关概念详解
以太坊中智能合约调用中用的gas相关概念详解
我想用一个以太坊应用程序谈论需要“gas”运行。 什么是gas,我在哪里得到它?
1
“gas”是以太坊使用的特殊单位的名称。它衡量一个动作或一系列动作需要执行多少“工作”:例如,计算一个Keccak256密码散列,每计算一次散列需要30个气体,每256位 数据被哈希。 Ethereum平台上的一项交易或合同可以执行的每项操作都会花费一定数量的天然气,其运营所需的计算资源比计算资源要求较少的运算需要更多的天然气。
gas的重要性在于它有助于确保提交给网络的交易支付适当的费用。 通过要求交易支付每个操作的执行(或导致合同执行),我们确保网络不会因为执行大量对任何人无价值的密集工作而陷入困境。 这与比特币交易费用不同,它仅基于交易的千字节大小。 由于以太坊允许运行任意复杂的计算机代码,所以短的代码实际上可能导致大量计算工作的完成。 所以衡量直接完成的工作非常重要,而不是仅仅根据交易或合同的长度选择费用。
所以,如果gas基本上是交易费用,那么你如何支付? 这是一个棘手的地方。 虽然gas是一个可以测量物质的单位,但gas并没有任何实际的标志。 也就是说,你不能拥有1000gas。 相反,gas只存在于以太坊虚拟机内部,作为正在执行多少工作的计数。 在实际支付gas时,交易费用是ether的一定数量,以太坊网络上的内置令牌和矿工奖励生产块的令牌。
起初这可能看起来很奇怪。 为什么不直接用ether衡量成本? 答案是,就像比特币一样,以太网的市场价格可能会迅速变化! 但是计算的代价并不是因为以太的价格变化而上升或下降的。 所以将计算价格与以太币的价格区分开来是很有用的,这样每次市场
文章来源: coderfix.blog.csdn.net,作者:小雨青年,版权归原作者所有,如需转载,请联系作者。
原文链接:coderfix.blog.csdn.net/article/details/78475639
- 点赞
- 收藏
- 关注作者
评论(0)