Pending-Transactions

使用 getTransactionCount() + 1 可以防止等待待處理的交易嗎?

  • December 22, 2020

我測試了以低時間間隔發送多筆交易,我知道他們會等待之前的交易被確認。我沒有在事務程式碼中使用 Nonce,因為它是可選的。但我想知道,有沒有什麼方法可以在不等待之前確認的情況下發送交易?

我考慮過使用nonce = getTransactionCount() + 1,但我不確定它是否正確?以及我必須在其中設置哪個條件latestearliest或者pending為此解決方案。

我想過使用nonce = getTransactionCount() + 1

如果您沒有nonce明確指定,Web3.js 會為您執行此操作,因此不會有任何區別。

有什麼方法可以在不等待確認之前的交易的情況下發送交易?

是的,正如您所描述的那樣(發送它們而無需等待之前的確認)。

您可以“手動”增加 Nonce,進行內部控制。您可以創建一個 sendSignedTransactions 數組,並在使用 Promise.all 解決後,這是一種替代方案。據我所知,隊列最多支持 64 個事務。

至少在 Rinkeby 網路上,你只有在下一個區塊被探勘時才會收到收據,所以你會遇到每分鐘 4 筆交易的瓶頸。

如果發生錯誤,發送多個鏈事件將需要復雜的邏輯。

引用自:https://ethereum.stackexchange.com/questions/82456