第1步:我创建了一个智能合约通话交易TX,并将其发送到以太坊。
步骤2:验证TX,并将其广播到其他节点。
步骤3:EVM执行TX失败(可能是由于Solidity函数返回err等)。
步骤4:其他人更改了合同状态,我之前的TX现在有效。
我的问题是,如果我现在重新发送TX,它会作为
重复交易?
如果以太坊不进行重复检查,那么一笔交易可能会在p2p网络中循环?
答案 0 :(得分:2)
每笔交易都有一个随机数。每次发送交易时,您都必须增加随机数。
因此,在您的情况下,假设第一笔交易的现时值为5。该交易失败。您发送的下一个交易必须具有随机数6。因此,您不能简单地重新广播同一交易-它会被视为无效的随机数而被拒绝-但您可以进行新的交易,除了增加的随机数外。该人将有资格被开采成一个区块。