主页 > 苹果手机下载imtoken钱包流程 > 【易错概念】以太坊的交易(transaction)

【易错概念】以太坊的交易(transaction)

交易和消息是以太坊系统中的两个关键概念,也是两个非常相似的概念。它们在形式上几乎相同sol币会是下一个以太坊吗,但性质完全不同。本篇博客将介绍和区分Transaction、Message和Message Call。

什么是交易?

交易存储发送者想要发送到以太坊网络的签名消息,其中包含要从一个帐户传递到另一个帐户(或合约)的消息。在以太坊中,有两种类型的交易:一种是生成消息调用,另一种是生成一个新帐户(例如,一个合约)。

一般来说,一个完整有效的以太坊交易由以下几部分组成:

交易中的字段

sol币会是下一个以太坊吗

根据以太坊黄皮书,我们知道一笔交易有以下几个字段:

如果交易是合约创建交易,还可能包含以下字段:

什么是消息?

sol币会是下一个以太坊吗

消息是以太坊中的“虚拟”事物,它永远不会记录在区块链中,它是由合约发送的。在形式上,消息“像”一个事务,但它与事务有本质的不同。成功的交易将被永久记录在区块链中。在以太坊中,我们可以将消息视为 EVM 中的函数调用。

一般来说,一条消息将包含以下部分:

事务、消息和调用(Message Call)的区别

sol币会是下一个以太坊吗

交易在以太坊黄皮书中被描述为:

一段数据,由外部 Actor 签名。它代表消息或新的自治对象。交易记录在区块链的每个区块中。一段数据,由外部 Actor 签名。它代表一条信息或一个新创建的自治对象(合同)。交易记录在区块链上的块中。

消息的描述是:

sol币会是下一个以太坊吗

通过自治对象的确定性操作或交易的加密安全签名在两个账户之间传递的数据(作为一组字节)和值(指定为以太币)。一组字节)和价值(以太币的数量),以合约的确定性操作或加密安全签名的交易的形式。

调用说明如下:

将消息从一个帐户传递到另一个帐户的行为。如果目标帐户与非空 EVM 代码相关联,则 VM 将以所述对象的状态和所作用的消息启动。如果消息发送者是自治对象,则调用传递从 VM 操作返回的任何数据。从一个帐户发送到另一个帐户的消息的行为。如果目标账户与非空 EVM 操作码相关联,则 VM 将根据该操作码的状态启动。如果消息的发送者是自治对象,则调用将传递从 VM 操作返回的所有数据。

sol币会是下一个以太坊吗

具体来说,调用是对合约的本地调用,它是只读操作sol币会是下一个以太坊吗,不消耗以太币。它可以模拟事务的行为,但是在调用结束后会返回到之前的状态。交易被广播到整个网络,由矿工处理和验证,并记录在区块链的区块中。

对合约中函数的调用会创建调用还是交易?

考虑以下四种情况:

第一种和第三种情况是明显的调用,第二种情况创建了一个事务,因为它使用了 sendTransaction 方法。一个特例是第4种情况,似乎是产生了一笔交易,但是由于以太坊黄皮书中交易的定义中提到了一笔交易是需要外部actor签名的消息,所以前4种情况并没有产生交易。

本文版权归作者罗远航所有,采用 Attribution-NonCommercial 3.0 License。任何人都可以转载和分享,但未经许可不得用于商业目的;转载请注明出处。谢谢您的合作!