gpt4 book ai didi

以太坊 Nonce 管理。错误随机数太低

转载 作者:行者123 更新时间:2023-12-03 20:28:01 24 4
gpt4 key购买 nike

我使用 web3 和供应商主网。我按契约(Contract)进行了 2 笔交易。首先是批准方法,另一笔交易是多次转账。我将第二个签名存储在数据库中。如果第一笔交易成功,我发送第二笔交易/。第二个事务几乎总是错误 nonce 太低`。我该如何解决这个问题

最佳答案

对于 正确 nonce 管理您有 2 个选择:

  • 请求交易编号 确认 使用 web3.eth 获取您的地址。 getTransactionCount (ethAddress),递增,发送并等待接收 之前 处理下一个。如果您需要高吞吐量并且依赖特定节点可用和同步,这会非常慢。
  • 您维护自己的本地柜台坚持 在数据库级别。使用 DB 的访问权限 处理可能的并发请求并每次都返回正确的值。你做不是 想要将此计数器保留在内存中,因为如果您的应用程序崩溃或重新启动,它们将会丢失。这是非常有效的,因为您不需要节点,并且您可以发送尽可能多的交易。如果出现问题......(nonce 太低)重置为 web3.eth.getTransactionCount(ethAddress) 的值。

  • 重要提示:您可能想知道为什么不使用 web3.eth.getTransactionCount(ethAddress, 'pending')。这是因为“挂起”选项使调用变得不可靠,因为节点很难在队列和内存池中获得准确数量的事务。

    为了更好地理解节点如何看待您的消息的随机数。在此处查看此答案: https://ethereum.stackexchange.com/questions/2808/what-happens-when-a-transaction-nonce-is-too-high/2809#2809

    还有这个: Send Raw Transaction Ethereum infura nodejs npm

    关于以太坊 Nonce 管理。错误随机数太低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491891/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com