主页 > 怎样下载imtoken > 以太坊中账户、交易、Gas 和区块 Gas Limit 等基本概念

以太坊中账户、交易、Gas 和区块 Gas Limit 等基本概念

怎样下载imtoken 2023-06-18 08:00:54

作为一篇科普文章,本文总结了以太坊中账户、交易、Gas、区块Gas Limit等相关概念,方便大家在实践中更好的结合具体业务。

什么是账户

以太坊账户与我们所知道的账户概念有一些相似之处,但也有很大的不同,甚至与比特币中的 UTXO 不同。

有两种类型的帐户:

- 外部拥有账户(EOA),也称为普通账户

- 合约账户

普通账户

所谓普通账户就是我们存放以太坊的账户,可以随意生成。 它具有以下特点:

- 带有以太币余额的余额(以太币存放的地方,不同于比特币的UTXO模型)。

- 一个计数器(nonce),用于确定每笔交易只能处理一次。

- 发送交易(以太币转账、发布合约、调用智能合约)

- 由私钥控制

以太坊节点赚钱吗_以太坊节点一天分红多少_以太坊超级节点收益

- 没有代码关联

合约账户

合约账户也是最令人兴奋的概念和底层代码实现。 它是函数和数据的集合,存在于以太坊中的特定地址(智能合约发布地址),具有以下特点:

执行时:

以太坊区块链上的所有操作都是由每个账户发起的交易发起的。 当智能合约账户收到一笔交易时,交易带来的参数将成为代码的输入参数。 合约代码将由以太坊虚拟机 (EVM) 在参与网络的每个节点上运行,作为对其新区块的验证。

事务和消息事务

一般来说,“交易”是指一个账户向另一个账户发送一个签名的消息包,区块链会记录并存储相应数据的过程。 推而广之,调用智能合约改变合约账户的数据状态也是一种交易,同样需要手续费。

交易包括:

信息

合约有能力向其他合约发送“消息”。 消息是一个永远不会序列化的虚拟对象,只存在于以太坊执行环境中。 它们可以理解为函数调用(function calls)。 曾经有人问智能合约是否可以调用比特币转账,这里的解释已经给出了明确的答案。

消息包括:

- 消息发送者

以太坊节点一天分红多少_以太坊节点赚钱吗_以太坊超级节点收益

- 消息的接收者

- 可选数据字段,合约实际输入的数据

- gasLimit,与交易相同。

一般来说,一条消息就是一笔交易,只是它不是由外部账户生成,而是由合约账户生成。 当 call 或 delegatecall 这两个命令在合约正在执行的代码中运行时,会生成一条消息。 消息有时被称为“内幕交易”。 与交易类似,消息指示接收账户运行其代码。 因此,合约账户可以与其他合约账户有关系。

什么是气体

以太坊的运行环境,也称为以太坊虚拟机(EVM)。 参与网络的每个节点都将运行 EVM 作为块验证协议的一部分。 每个网络中的所有完整节点都执行相同的计算并存储相同的值。 合约执行会在所有节点重复多次,任何人都可以发布执行合约,这使得合约执行的消耗非常昂贵。 因此,为了防止对以太坊网络的蓄意攻击或滥用,以太坊协议规定交易或合约调用的每一个操作步骤都需要收费。 . 这笔费用以gas为单位计算,也就是俗称的燃料。

交易消耗的gas和gas

每笔交易包括gas limit和gas price。 矿工可以选择打包这些交易并收取这些费用。 Gasprice 会影响交易打包的等待时间。 如果交易运行使用的gas量小于或等于设定的gas limit,交易将被处理。 但如果总gas消耗量超过gas limit,所有操作将被重置,但仍会收取交易手续费。 区块链将显示交易已尝试完成,但由于没有提供足够的气体,所有合约命令都被还原。 交易完成后,未使用的gas将以以太币的形式返还给发起方。 Gas 消耗量只是一个估计值,因此许多用户会多付 gas 以确保他们的交易被接受。

估算事务消耗

交易费用由两部分组成:

gasUsed:交易消耗的gas总量

gasPrice:本次交易的单位gas价格(以Ether计算)

以太坊节点一天分红多少_以太坊节点赚钱吗_以太坊超级节点收益

交易费 = gasUsed * gasPrice

使用的气体

EVM 中的每个命令都设置了相应的耗气量值。 gasUsed是所有执行命令的gas消耗值之和。 如果你想估计gasUsed,你可以web3.eth.estimateGas。

汽油价格

用户可以自行设置的 gasPrice 价格。 由于网络拥堵等各种情况,这个价格会动态变化,可以根据交易字节数和当前区块打包的平均值粗略估算。

交易案例

GasLimit 可以理解为你的汽车油箱的上限。 同时,gasPrice 被理解为石油的价格。

对于汽车,汽油价格可能是每升(单位)2.5(价格)。 在以太坊中,每 gas(单位)为 20GWei(价格)。 为了加满您的“油箱”,您需要 10 升 2.5 = 25 美元。 同样以太坊超级节点收益,20 GWei 的 21000 gas = 0.00042 ETH。

以太坊单位换算单位wei值Wei

1个

1魏

以太坊节点一天分红多少_以太坊超级节点收益_以太坊节点赚钱吗

葵(白菜)

1e3魏

1,000

Mwei (爱情花边)

1e6魏

1,000,000

Gwei(香农)

1e9魏

1,000,000,000

微醚(szabo)

1e12魏

1,000,000,000,000

以太坊节点一天分红多少_以太坊节点赚钱吗_以太坊超级节点收益

milliether(芬尼)

1e15魏

1,000,000,000,000,000

1e18魏

1,000,000,000,000,000,000

气体限制

区块gas limit是单个区块允许的最大gas量以太坊超级节点收益,可以用来决定一个区块可以打包多少笔交易。

例如,我们有 5 笔交易,gas limit 分别为 10、20、30、40 和 50。如果区块 gas limit 为 100,那么前 4 笔交易可以成功打包到这个区块中。 矿工有权决定将哪些交易包含在区块中。 因此,另一个矿工可以选择将最后两笔交易包含到这个区块 (50+40) 中,然后包含第一笔交易 (10)。 如果您尝试打包一个将使用超过当前区块 gas 限制的交易,该交易将被网络拒绝,您的以太坊客户端将报告错误“交易超过区块 gas 限制”。

当前使用的气体限制为 21000。

区块的气体限制由网络上的矿工决定。 与可调整的区块 gas limit 协议不同,它有一个默认的挖矿策略,即大多数客户端默认的最小区块 gas limit 为 4,712,388。

以太坊网络上的“DoS”攻击

最近的一些评论表明,以太坊网络正在慢慢变慢,变得拥堵甚至无法使用。 这些评论将这种放缓称为对以太坊网络的“DoS”攻击。 当以太坊网络上始终存在完整的区块并且网络上有大量交易待处理时,就会发生所谓的 DoS 情况。 同时,矿工有权根据交易手续费选择打包哪些交易。 如果此时队列中(交易池中)有几千笔交易等待打包,可能会导致数小时的交易异常延迟。 DDoS 可以是恶意的也可以是非恶意的。