Closed JasoonS closed 3 weeks ago
Hi @JasoonS,
I did have a look at this issue and have been able to identify the problem, it was a bug introduced by this PR in the frontier repository: https://github.com/polkadot-evm/frontier/pull/638
Thankfully it was detected in time and was fixed before going live on moonriver and moonbeam.
Important to note that those eth transactions were never replayed, it was a indexing bug on pallet_ethereum
logic, where after the runtime upgrade from version 1504 to 1603, 6 transactions from the previous block were also included as being part of the next block.
A possible solution is to add a moonbase specific patch that blacklists those transactions when querying block 2285348
, will work on it.
Hi @JasoonS,
The issue you mentioned above is described here: https://docs.moonbeam.network/builders/build/historical-updates/#ethereum-transactions-duplicated-in-storage
We will probably not include a patch specifically for this since it would not solve the inconsistency completely without an hard-fork (The patch we currently have would only filter the duplicated transactions from the block, but would not fix the receipts_root
and transactions_root
fields in the block header).
On your app, you will have to add some custom logic to handle this insistency.
Hi @RomarQ - Thank you for the detailed answer, that now makes sense. We have managed to disable validation in the meantime, and thankfully it is a testnet, so not super mission critical.
Once again, massive thank you for your time and attention.
I'm experiencing an issue when querying transaction receipts for block 2285347 on Moonbase Alpha. Specifically, the
blockNumber
field in some transaction receipts does not match the expected block number. This inconsistency is causing problems for us as we rely on accurate block data for our application.Issue Details:
blockNumber
in Receipts:0x22DF23
(Hexadecimal for 2285347)blockNumber
in Receipts: Mixed between0x22DF23
and0x22DF24
(2285347 and 2285348)0x006a6843eb35ad35a9ea9a99affa8d81f1ed500253c98cc9c080d84171a0afb3
0x64c102f664eb435206ad4fcb49b526722176bcf74801c79473c3b5b2c281a243
0xf546335453b6e35ce7e236ee873c96ba3a22602b3acc4f45f5d68b33a76d79ca
0x4ed713ccd474fc33d2022a802f064cc012e3e37cd22891d4a89c7ba3d776f2db
0xa5355f86844bb23fe666b10b509543fa377a9e324513eb221e0a2c926a64cae4
0xc14791a3a392018fc3438f39cac1d572e8baadd4ed350e0355d1ca874a169e6a
I have tested this on a few of the available public urpc endpoints.
Steps to Reproduce:
Use the Following Script:
(got chatgpt to whip this script up as an example, but should be easy to understand bash)
Observed Output:
Problem Description:
blockNumber
: When fetching transaction receipts for transactions in block 2285347, some transactions report theirblockNumber
as0x22df23
(2285347), while others report0x22df24
(2285348).blockNumber
of0x22df23
.blockNumber
field to process and validate transactions in our indexer.Analysis:
blockNumber
as0x22df23
:0x4ed713ccd474fc33d2022a802f064cc012e3e37cd22891d4a89c7ba3d776f2db
0xc14791a3a392018fc3438f39cac1d572e8baadd4ed350e0355d1ca874a169e6a
blockNumber
as0x22df24
:0x006a6843eb35ad35a9ea9a99affa8d81f1ed500253c98cc9c080d84171a0afb3
0x64c102f664eb435206ad4fcb49b526722176bcf74801c79473c3b5b2c281a243
0xf546335453b6e35ce7e236ee873c96ba3a22602b3acc4f45f5d68b33a76d79ca
0xa5355f86844bb23fe666b10b509543fa377a9e324513eb221e0a2c926a64cae4