Open perekopskiy opened 1 week ago
I see, we should swap the logic for pending and do the pool lookup after the disk lookup to rule this out
because the pool update can happen later
@mattsse it reproduces for me with 1.0.7
do you mean this is still happening?
yes
Describe the bug
When running reth in dev mode with a small block-time (e.g. 300ms) JSON RPC API returns inconsistent results. After transaction with nonce X is included in the block (node returns receipt for it with blockNumber set) node may still return nonce X as a response for
eth_getTransactionCount(address, 'pending')
.Steps to reproduce
Here is repo with a small script that reproduces the issue. It sends transactions in loop from a single address. The script fails after some time with "nonce has already been used" error. It's better to run it on a resource-constrained machine and/or make all the CPUs busy so it reproduces faster.
Node logs
No response
Platform(s)
Linux (x86), Linux (ARM), Mac (Apple Silicon)
What version/commit are you on?
reth Version: 1.0.6 Commit SHA: c228fe15808c3acbf18dc3af1a03ef5cbdcda07a Build Timestamp: 2024-08-29T18:34:24.773465330Z Build Features: asm_keccak,jemalloc Build Profile: maxperf
What database version are you on?
Error: Datadir does not exist: "/root/.local/share/reth/mainnet"
Which chain / network are you on?
dev
What type of node are you running?
Archive (default)
What prune config do you use, if any?
No response
If you've built Reth from source, provide the full command you used
No response
Code of Conduct