究竟什么是以太坊Gas?

2019-07-12 20:07 栏目:经验之谈 来源: 查看()
在过去几年中,许多人(包括我自己)进入了加密货币领域。任何与以太坊有过接触的人都会问自己,地球有什么气体?简而言之,Gas提供了以太坊网络。动力就像汽油为汽车提供动力。本文将为您揭示此声明,以便您在本文末尾对Gas的真正含义有充分的了解。

究竟什么是以太坊Gas?

以太坊网络 天然气为以太坊网络提供的动力就像汽油为汽车提供的动力一样。这是什么意思?为了解释这一点,我需要向您介绍以太坊网络的主要用途。以太坊网络是一个计算机网络,它执行代码并在区块链上更新其全局状态。好的,这听起来有点复杂。 这最终意味着网络上的计算机正在执行代码并存储数据。此代码的执行占用资源(CPU,RAM等),必须为网络上的每台计算机执行。这提供了一种简单的方法来打破网络并创建具有无限循环的智能合约,因为网络上的每个节点都试图执行他们发现自己卡住的代码,并且不能为任何其他事务服务。 以太坊开发人员和设计人员都意识到这一点,并了解必须存在与代码执行和存储相关的成本,以防止这种情况发生。这个成本叫做Gas。 聪明的合同 当我提到代码的执行时,我指的是以太坊网络上的所有交易,但在本文中,我想关注智能合约。智能合约通常用固体等高级编程语言编写。这是一个简单的智能合约的例子,它将两个数字相加并返回结果。 坚固 Pragma solidity ^ 0.4.24; contract abc { 函数add(uint256 a,uint256 b)内部纯返回(uint256){ Uint256 c=a + b; 返回c; } } 这个可靠的代码被编译成EVM(以太网虚拟机)字节码,就像将Java编译成JVM字节码一样。 EVM是一种面向安全的虚拟机,旨在允许不受信任的代码在全球计算机网络中执行。 EVM基本上占用了你的部分CPU,RAM等,并设置了一个虚拟机。下面是上面编译成十六进制和字符串字节码的可靠性代码。 HEX BYTECODE 6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a2425c36ccea0b4e81864448087f7f7a36fb11875dfb63711a27fcb427ad1cd00029 SING BYTECODE PUSH10x80的PUSH10x40的MSTORE CALLVALUE DUP1 ISZERO PUSH10xF JUMPI PUSH1为0x0 DUP1 REVERT JUMPDEST POP PUSH10x35 DUP1 PUSH10x1D PUSH1为0x0 CODECOPY PUSH1为0x0 RETURN STOP PUSH10x80的PUSH10x40的MSTORE PUSH1为0x0 DUP1 REVERT STOP LOG1 PUSH60x627A7A723058 KECCAK256 LOG2 TIMESTAMP0x5c CALLDATASIZE的0xCC0xea SIGNEXTEND0x4e DUP2 DUP7 DIFFICULTY0x48 ADDMOD PUSH320x7F7A36FB11875DFB63711A27FCB427AD1CD00029000000000000000000000000 请注意,十六进制和字符串字节码的内容相同,但以两种不同的格式表示。从字符串字节码可以看出,有一些简单的指令,例如PUSH1。 EVM的每个opt代码都有一个相关的Gas值。例如,PUSH1,在堆栈上放置一个字节项的开销是3,并且KECCAK256的计算和其他开销很大(计算Keccak-256哈希的成本是30 +(散列字的6倍)数) 。 天然气价格,天然气限制和耗尽 您可能参与了ICO,或者您可能只是将一些ETH转移到另一个帐户。在任何一种情况下,都可能会要求您提供气体限制和天然气价格。一般来说,它们预先填充了推荐值,但这两个值实际上意味着什么? “气体限制”是指您将在此交易中使用的天然气数量,“天然气价格”是指您愿意为天然气支付的以太坊数量。你支付的等式非常简单。 Gas PAID=Gas PRICE * Gas USED 约束 Gas USED<=Gas LIMIT 使用的天然气是用于执行合同的金额,天然气限制限制了可用于合同执行的最大天然气量。这可以防止恶意代码或低效代码耗尽您的以太坊帐户。 举一个简单的例子,如果我设置一个Gas上限为100,Gas价格为1ETH,并且我执行了一个需要88Gas的合约,那么我将支付88ETH来执行该代码。如果我签订了不同的合同并且需要101 Gas而不是88,价格和相同的限制,合同将在合同结束前使用。这是因为我设定了100个上限,这意味着我愿意支付这个合约的最高执行力是100Gas。合同执行期间耗尽气体将导致其恢复所有变更。尽管如此,因为它仍然需要进行计算,你仍然需要支付你用完的气体,这里是100,总成本是100。 注意事项:实际上,气体实际上是在较小的以太坊中测量的。 未完待续. 以上信息为您提供了一个很好的起点,帮助您了解Gas是什么以及它对网络的重要性。如果你发现这篇文章已经回答了一些问题,但已经提出了10个不同的问题,不用担心,我也是一样,我会在下一篇文章中尝试解决这些问题,并深入探讨以太坊气体。
微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发