Open CindyZhouYH opened 9 months ago
Transactions sent to the same node, will always be found, transactions sent to different nodes may not (if they're not accepted).
The flow works as follows:
Now there are a few caveats where the transactions you submitted won't show up. This is if the Mempool doesn't propagate it, because it knows that it will not suceed:
@bchocho can provide more details here
It can get really confusing because if I say submit 4 different transactions with sequence number 1 to 4 different nodes. Only one will win, and the other 3 may or may not be committed with a failed transaction.
🐛 Bug: Inconsistency in transaction rejection and client response.
I built a 4-node chain locally following the document and used the python sdk to interact with it. When I'm sending transactions concurrently, some transactions that should have triggered MempoolStatusCode::InvalidUpdate and thrown an 'Send Transaction Exception' are instead acting as submitted successfully, returning Response [202 Accepted] and a transaction hash. However, it seems that these transactions are not actually submitted.
To reproduce
Code snippet to reproduce The python sdk script:
The move module:
Stack trace/error message The output:
However, two of the Response [202 Accepted] transactions are not submitted and cannot be found.
Expected Behavior
The rejected transactions should through the Send Transaction Exception. The transactions with Response [202 Accepted] and a returned transaction hash should be found on the chain.
System information
Please complete the following information: