P2p Geth';sendTransaction';在循环中进行大量事务时不处理某些事务

P2p Geth';sendTransaction';在循环中进行大量事务时不处理某些事务,p2p,blockchain,ethereum,P2p,Blockchain,Ethereum,我们在一个循环中进行200个事务,用于将以太从一个地址发送到另一个地址,所有事务都应执行并返回成功或失败 但有些交易没有执行,即我们没有得到任何结果,这些交易既没有成功也没有失败 复制行为的步骤 在一个循环中进行200个事务,以将以太从一个地址发送到另一个地址 eth.sendTransaction({ from: privateWeb3.eth.coinbase, to: result, value: privateWeb3.toWei(2, 'ether') } 检查结果总数。 结果总数将

我们在一个循环中进行200个事务,用于将以太从一个地址发送到另一个地址,所有事务都应执行并返回成功或失败

但有些交易没有执行,即我们没有得到任何结果,这些交易既没有成功也没有失败

复制行为的步骤

在一个循环中进行200个事务,以将以太从一个地址发送到另一个地址

eth.sendTransaction({
from: privateWeb3.eth.coinbase,
to: result,
value: privateWeb3.toWei(2, 'ether')
}
检查结果总数。
结果总数将小于给定的事务总数

常见原因是重复的nonce。每个事务都包含一个称为nonce的连续递增数字。如果生成事务太快,而geth更新不够快,它将重用最后一个事务。因此,您将使用相同的nonce生成两个事务,在这种情况下,geth将拒绝一个。

我们如何克服这个问题呢?一种可能性是在开始时读取nonce,并为以下每个事务明确设置该值。例如,如果nonce为29,那么您将使用nonce 29、30、31、…、128生成事务。