我们有一组运行服务的服务器。该服务是由一个地址广播事务到许多不同的地址。 现在的问题是,它们在paralell中工作。这意味着,他们总是需要知道下一个有效的随机数。有时,服务尝试广播具有很高随机数的事务。例如可以说地址的最后交易“0xabc ......”有现时100现在一个服务试图用102代替有效101like这个随机数以广播原始交易:
web3j.ethSendRawTransaction(rawMessageWithNonce102).send();
是否有检测问题的任何方式? 当然web3j不会通过一个错误在这里,因为最初的TX进入了TX池。但是过了一段时间,它从那里删除了。 我怎么能在我的Java应用程序检测“过高现时的问题”?有任何想法吗? 预先感谢!
答案 0 :(得分:0)
不确定如何检测到它,但是您可能会缓存当前的随机数,即。在Redis中,然后在发送事务时检查该值。发送事务后,更新随机数,每个服务器将共享相同的缓存实例。