第1步:我创建一个智能合约调用交易TX并将其发送到以太坊。
步骤2:TX被验证并广播到其他节点。
步骤3:Evm执行TX失败(可能是因为solidity函数返回错误等)。
第四步:别人改变了合约状态,我之前的TX现在有效。
我的问题是,如果我现在重新发送 TX,它会被执行还是被丢弃
重复交易?
如果以太坊不做重复检查,一笔交易可能会在p2p网络中循环?
最佳答案
每笔交易都有一个随机数。每次发送交易时,您都必须增加随机数。
因此,在您的场景中,假设第一笔交易的随机数为 5。该交易失败。您发送的下一笔交易必须具有随机数 6。因此,您不能简单地重新广播同一交易(它将因具有无效随机数而被拒绝),但您可以创建一个除了递增随机数之外相同的新交易。那一个将有资格被开采成一个区 block 。
关于blockchain - 以太坊如何处理不同世界状态下的重复交易,即一个交易有效而另一个无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984026/