reth: Stader Guardian is unable to send tx
Describe the bug
Sending tx via Stader Guardian fails. Pointing the app at a partial Geth archive instead works.
Tested with a Reth archive on Ethereum mainnet. Output from Stader Guardian:
New Exchange Rate data: {19072800 75029479908760713110197 73570042123220188356194}
Old Exchange Rate data: {19065600 75677193647928469732705 74211565812785576762603}
Submitting Exchange Rate price: {19072800 75029479908760713110197 73570042123220188356194}
Submitted transaction hash: 0x34fc20e1793965c22c83f9dd3e3a71f8c6954485e54f4e0b2001dd7733d0c73c
2024/01/24 11:24:44 failed to submit Exchange Rate: failed to check transaction status: transaction receipt not found after 10 minutes
Steps to reproduce
Run any Stader Guardian duty against an archive Reth
Node logs
Debug logs are long. Please download from https://www.dropbox.com/scl/fi/811e6vfylw9jxsln2r5x5/reth-debug.txt?rlkey=63qvr4awlysuzwk9lboq7eemd&dl=0
Search for 0x34fc20e1793965c22c83f9dd3e3a71f8c6954485e54f4e0b2001dd7733d0c73c then go up a little to see the estimateGas, and the sendRawTransaction is right after that.
Platform(s)
Linux (x86)
What version/commit are you on?
reth Version: 0.1.0-alpha.16 Commit SHA: d8a9b58 Build Timestamp: 2024-01-23T16:43:42.089594260Z Build Features: Build Profile: maxperf
What database version are you on?
1
What type of node are you running?
Archive (default)
What prune config do you use, if any?
None
If you’ve built Reth from source, provide the full command you used
No response
Code of Conduct
- I agree to follow the Code of Conduct
About this issue
- Original URL
- State: closed
- Created 5 months ago
- Comments: 17 (10 by maintainers)
upon closer inspection the geth implementation also does: find the highest nonce in the pool + 1 for
eth_getTransactionCount(Pending)so still unclear what caused the high nonce here…
I see, this is slightly different than what reth does
https://github.com/ethereum/go-ethereum/blob/f55a10b64d511b27beb02ff4978a6ed66d604cd8/core/txpool/txpool.go#L334-L342
will get this fixed by mirroring geth, but I’m trying to find more info in the spec
Oh interesting
then the raw is submitted with same nonce 0x2f4 756
EDIT you were faster hehe
okay so this nonce is weirdly high, which makes me think that there’s something off with the implementation for the pending tag, need to check geth’s logic