当前位置:首页 > 物联网 > 区块链
[导读] 在过去的几年里,很多人(包括我自己)进入了加密货币空间,任何与以太坊有过接触的人都可能会问自己,地球是什么气体?简单地说,Gas为以太坊网络提供的动力,就像汽油为汽车提供动力一样。本文将为您揭示

在过去的几年里,很多人(包括我自己)进入了加密货币空间,任何与以太坊有过接触的人都可能会问自己,地球是什么气体?简单地说,Gas为以太坊网络提供的动力,就像汽油为汽车提供动力一样。本文将为您揭示这一声明,以便您在本文结束时对Gas的真正含义有一个坚实的了解。

以太坊网络

Gas为以太坊网络提供的动力,就像汽油为汽车提供的动力一样,这到底意味着什么?为了解释这一点,我需要给你们一些关于以太坊网络主要用途的背景知识。以太坊网络是一个计算机网络,它将在区块链上执行代码并更新其全局状态。好吧这听起来有点复杂。

这最终意味着,网络上的计算机正在执行代码和存储数据。这段代码的执行占用了资源(CPURAM等),并且因为网络上的每台计算机都必须执行它。这提供了一种简单的方法来打破网络,创建一个具有无限循环的智能合约,因为网络上的每个节点都试图执行他们会发现他们自己被卡住的代码,并且不能为任何其他交易提供服务。

以太坊的开发人员和设计人员意识到了这一点,并理解必须有与代码执行和存储相关的成本才能防止这种情况发生。这种成本被称为Gas。

智能合约

当我提到代码的执行时,我指的是以太坊网络上的所有交易,但是在本文中,我想重点讨论智能合约。智能合约通常是用像solid这样的高级编程语言编写的。这里有一个简单的智能合约的例子,它把两个数字加在一起,并返回结果。

SOLIDITY

pragma solidity ^0.4.24;contract abc {

function add(uint256 a, uint256 b) internal pure returns (uint256) {

uint256 c = a + b;

return c;

}

}

这种可靠的代码编译成EVM (以太坊虚拟机)字节码的方式与java编译成JVM字节码的方式相同。EVM是一种面向安全的虚拟机,旨在允许全球计算机网络执行不可信代码。

EVM本质上是占用您的CPU、RAM等的一部分,并设置一台虚拟计算机。下面是上面编译成十六进制和字符串字节码的可靠度代码,

HEX BYTECODE

6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a2425c36ccea0b4e81864448087f7f7a36fb11875dfb63711a27fcb427ad1cd00029

STRING BYTECODE

PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG2 TIMESTAMP 0x5c CALLDATASIZE 0xcc 0xea SIGNEXTEND 0x4e DUP2 DUP7 DIFFICULTY 0x48 ADDMOD PUSH32 0x7F7A36FB11875DFB63711A27FCB427AD1CD00029000000000000000000000000

注意,十六进制和字符串字节码在内容上完全相同,只是用两种不同的格式表示。从字符串字节码可以看出,有一些简单的指令,如PUSH1等。EVM的每个opt代码都有一个相关的Gas值。例如PUSH1,将一个字节项放在堆栈上的命令的开销为3,而计算KECCAK256等开销较大的计算(计算Keccak-256哈希值的开销为30 +(6乘以被哈希的单词数)。

Gas价格,Gas限额和耗尽

你可能参与了ICO,或者你只是简单地把一些ETH转移到另一个账户,在这两种情况下,你可能被要求提供一个Gas限额和一个Gas价格。一般来说,它们预先填满了推荐值,但这两个值实际上是什么意思呢?“Gas限额”指的是你将在这笔交易中使用的Gas量,而“Gas价格”指的是你愿意为一种Gas支付的以太币数量。你支付的方程很简单,

Gas PAID = Gas PRICE * Gas USED

CONSTRAINT

Gas USED 《= Gas LIMIT

所使用的Gas是执行合约所使用的量,Gas限额对合约执行所能使用的最大Gas量起约束作用。这可以阻止恶意代码或低效代码耗尽您的以太坊帐户。

举个简单的例子,如果我设定了100的Gas上限和1ETH的Gas价格,并且我执行了一个需要88Gas的合约,那么我将为执行该代码支付88ETH。如果我签了不同的合约,需要101个Gas,而不是88个,价格和限制条件相同,合约将会在合约结束前用完。这是因为我设置了100天然气的上限,这意味着我愿意支付的最高执行这个合约是100Gas。在合约执行过程中耗尽Gas将导致它恢复所做的所有更改。尽管如此,因为它仍然要完成计算,你仍然要为你用完的Gas付费,在这里是100,总成本也就是100。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭