事務記錄在 geth 節點,但無法在 Ropsten 上找到事務條目
當一次發送一個新交易時(意味著間隔 1 或幾分鐘),它們被正確廣播和探勘。但是當一個接一個地發送它們中的幾個時(僅間隔幾秒鐘),它們中的大多數都失去了。Geth 節點確認收到交易,但區塊鏈 Ropsten 沒有顯示它們。
這是一組交易,其中大部分在 Ropsten 不可用:
I0421 14:23:57.216680 internal/ethapi/api.go:1107] Tx(d83896adacd210a545d8bc53be2672d2bbb535cd6fd93fc6d74dcafb24c047ea) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:23:41.739022 internal/ethapi/api.go:1107] Tx(c6002dc6a3b28b6caba7ed7cb143d79147dc705437ccf70e267a4b2379f7920d) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:23:08.040512 internal/ethapi/api.go:1107] Tx(dcaa2a36ca4e2c5c3377e6b1f72d127242b4556c001efc3aca38c980c4e4c333) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:23:07.542375 internal/ethapi/api.go:1107] Tx(dcaa2a36ca4e2c5c3377e6b1f72d127242b4556c001efc3aca38c980c4e4c333) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:23:01.623979 internal/ethapi/api.go:1107] Tx(c70976a147e3e268131b0ed2be4555277371f439bbfe641ed1c55acaeec725eb) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:54.749671 internal/ethapi/api.go:1107] Tx(c3089a845110a871713bead6b71984ac5053cf4c2a3baa864e7ba0cf4499280b) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:49.069954 internal/ethapi/api.go:1107] Tx(fb629dc7f75b9ad486fd48afe3838c093567463d850b19c867c58520420eb9e7) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:35.357242 internal/ethapi/api.go:1107] Tx(1cae8925fb57971c126f37d2cef98f71696523cd109b7359f2f5845f1f05ca6a) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:24.175374 internal/ethapi/api.go:1107] Tx(9aceebdb23c4542ea5469d4cf05cc3ee7bddc7ea55fdae05ea63c45c9e581a70) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:16.787944 internal/ethapi/api.go:1107] Tx(7a2d0660aeec7698328e1e1ee96ecc929f4f6323fd22c5a337c92995bf88b4cf) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:08.852178 internal/ethapi/api.go:1107] Tx(73e7586a05ed17f1acb21fae93806349334881393c4493d4c708e3a902cd16c6) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:22:01.956836 internal/ethapi/api.go:1107] Tx(2ded9002531b59dd7c42dcb2a51ab420be555d8c7a26269334c24ce8971e1b6e) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df I0421 14:21:53.184982 internal/ethapi/api.go:1107] Tx(9a9ac63a5d7b061b1597892f63a906c195c258c66b81e8d2f943ca9b5664f314) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
例如,
https://ropsten.etherscan.io/tx/0x2ded9002531b59dd7c42dcb2a51ab420be555d8c7a26269334c24ce8971e1b6e
說“無法找到事務條目”。
同時其他如:
https://ropsten.etherscan.io/tx/0x9aceebdb23c4542ea5469d4cf05cc3ee7bddc7ea55fdae05ea63c45c9e581a70
已成功開採。
我怎樣才能找出這些交易失去的位置和原因?知道如何調試該過程嗎?
參考:
在一個區塊期間從一個賬戶發送的多筆交易不一定會按照發送的順序被接收或探勘。每筆交易的 nonce 都會增加,但礦工必須使 nonce 低於之前收到的交易無效。如果他們的探勘無序,那麼較舊的交易(以秒為單位)可能會失效。
您需要檢查您是否在正確的鏈上,您可能碰巧在錯誤的鏈上。嘗試
eth.getBlock(blockNumber)
將返回的塊雜湊與 etherscan 進行比較。如果是,請從 geth 控制台嘗試使用
eth.pendingTransactions()
以查看這些交易是否在您的電腦上列為待處理。如果是,請嘗試
admin.peers
查看您是否連接到任何對等方。如果是,請嘗試:
var tx = eth.pendingTransactions()[index]
, 並替換index
為您要重播的交易的索引。然後:
eth.resend(tx, <optional gas price>, <optional gas limit>).
這樣做將允許您將交易重新廣播給您的同行(應該設置更高的汽油價格)。