主页 > 苹果商城可以直接下载imtoken吗 > 首页> imtoken钱包网址> 【虚假概念】以太坊交易(transact
首页> imtoken钱包网址> 【虚假概念】以太坊交易(transact
交易和消息是以太坊系统中的两个关键概念,也是两个非常相似的概念。 它们在形式上几乎相同,但在本质上却完全不同。 本篇博客将介绍和区分Transaction、Message和Message Call。
什么是交易?
交易存储发送者发送到以太坊网络的签名消息,其中包含要从一个帐户传递到另一个帐户(或合约)的信息。 在以太坊的以太坊消息侧,交易分为两种:一种是可以产生消息调用的交易以太坊转账广播,另一种是可以产生新账户(比如合约)的交易。
一般来说,一个完整有效的以太坊交易包括以下几个部分:
交易中的字段
根据以太坊黄皮书,我们知道一笔交易有以下几个字段:
如果交易是合约创建交易,还可能包括以下字段:
什么是新闻
消息在以太坊中是一种“虚拟”的东西,它从不记录在区块链中,它是由合约发送的。 形式上,一条消息“点赞”一次交易,但它与交易有着本质的区别。 一次成功的交易将永久记录在区块链中。 在以太坊中,我们可以将消息视为 EVM 中的函数调用。
一般来说,一条消息会包含以下几个部分:
事务、消息和调用(Message Call)的区别
以太坊黄皮书中对交易的描述是:
由外部方签名的一段数据。 它代表一条消息或一个新的自治对象。 交易记录在区块链的每个区块中。
由外部方签名的一段数据。 它代表一条信息或一个新创建的自治对象(合约)。 交易记录在区块链的区块中。
消息的描述是:
数据(作为一组字节)和价值(指定为以太币)通过自主对象的确定性操作或交易的加密安全签名在两个账户之间传递。
在两个账户之间传输的数据(一组字节)和价值(以太币数量),以合同的确定性操作或加密安全签名交易的形式。
调用的描述是:
将消息从一个帐户传递到另一个帐户的行为。 如果目标帐户与非空 EVM 代码相关联以太坊转账广播,则 VM 将以所述对象的状态启动并对消息进行操作。 如果消息的发送者是一个自治对象,则 Call 传递从 VM 操作返回的任何数据。
从一个帐户发送到另一个帐户的消息的行为。 如果目标帐户与非空 EVM 操作码相关联,则 VM 将根据该操作码的状态启动。 如果消息的发送者是一个自治对象,调用将传递从 VM 操作返回的任何数据。
具体来说,调用是对合约的原生调用,是只读操作,不消耗以太币。 它模拟了一个事务的行为,但是在调用结束之后,又回到了之前的状态。 这笔交易将向全网广播,经矿工处理和验证后记录在区块链的一个区块中。
调用合约中的函数会创建调用还是交易?
考虑以下四种情况:
第一种和第三种情况是明显的调用,第二种情况创建一个事务,因为它使用了 sendTransaction 方法。 第四种情况比较特殊,好像是产生了一笔交易,但是因为以太坊黄皮书上交易的定义中提到交易是需要外部参与者(External Actor)签名的消息,所以前四种情况没有产生交易。