step1:我创建了一个智能合约调用事务TX并将其发送到以太坊。
step2:验证TX并广播到其他节点。
step3: Evm执行TX失败(可能是因为实体化函数返回错误等原因)。
step4:其他人更改了约定状态,我之前的TX现在有效。
我的问题是,如果我现在重新发送TX,它会作为重复事务被执行或丢弃吗?
如果以太坊不做重复检查,一笔交易可能会在p2p网络中循环?
发布于 2018-08-23 23:23:29
每个事务都有一个现时值。每次发送事务时,必须递增nonce。
因此,在您的场景中,假设第一个事务的nonce为5,该事务失败。您发送的下一个事务必须具有nonce 6。因此,您不能简单地重播相同的事务-它将因为具有无效的nonce而被拒绝-但您可以创建一个除了递增nonce之外的相同的新事务。那一个将有资格被开采成一个区块。
https://stackoverflow.com/questions/51984026
复制相似问题