Go-Ethereum

來自同一地址的多個交易具有相同的詳細資訊

  • March 8, 2018

我正在執行一個本地乙太坊節點,它需要相當長的時間來探勘區塊。

我正在嘗試開發一種在乙太坊智能合約上動態呼叫事務方法的防彈方法。我們的產品允許​​使用者與乙太坊智能合約集成,並且在使用智能合約時對我們產品的使用者沒有限制。大多數情況下,我的邏輯是有效的,當我幾乎同時發布兩 (2) 筆或更多筆交易時,接受相同的細節。因為兩者都沒有被探勘,所以它們最終通過 geth 接收到相同的隨機數(即 nodejs 4.2.6 下的 geth 1.8.2-stable-b8b9f7f4 和 web3.js 1.0.0-beta.28),並產生“已知交易”結果.

我嘗試了多種策略來避免這個問題,但沒有一個能始終如一地工作:

  1. 在 signTransaction 方法中將“nonce”設置為 null。對於兩 (2) 筆未開采的已關閉交易,會導致“已知交易”錯誤。
  2. 將“nonce”設置為 getTransactionCount() 或 getTransactionCount(“pending”),但對於兩 (2) 筆未開采的已關閉交易,會導致“替換交易定價過低”錯誤。
  3. 構造邏輯,記住先前交易中的“nonce”並將它們與 getTransactionCount(“pending”) 結果合併 - 仍然導致“替換交易低估”錯誤。

我知道這可能是一個小眾案例,但有人知道如何最好地解決這個問題嗎?

我所有的問題都與以下開放的 Go-Eth 錯誤#2880相關嗎?

有一篇很好的文章描述瞭如何解決這個問題的多種選擇 -> “帳戶隨機數的並發模式

Geth Issue 2880 引用的是舊版本。我們在 geth 1.7.2 中為我們的 DAPP 使用“待處理”參數,如果交易在待處理交易池中,它工作得非常好。

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