以太坊如何在不同的世界状态下处理重复交易,这意味着一个交易有效,而另一个则无效?

时间:2018-08-23 10:47:36

标签: blockchain ethereum p2p go-ethereum

第1步:我创建了一个智能合约通话交易TX,并将其发送到以太坊。
步骤2:验证TX,并将其广播到其他节点。
步骤3:EVM执行TX失败(可能是由于Solidity函数返回err等)。
步骤4:其他人更改了合同状态,我之前的TX现在有效。  
 
 
我的问题是,如果我现在重新发送TX,它会作为 重复交易?

如果以太坊不进行重复检查,那么一笔交易可能会在p2p网络中循环?

1 个答案:

答案 0 :(得分:2)

每笔交易都有一个随机数。每次发送交易时,您都必须增加随机数。

因此,在您的情况下,假设第一笔交易的现时值为5。该交易失败。您发送的下一个交易必须具有随机数6。因此,您不能简单地重新广播同一交易-它会被视为无效的随机数而被拒绝-但您可以进行新的交易,除了增加的随机数外。该人将有资格被开采成一个区块。