status-im / nimbus-eth1

Nimbus: an Ethereum Execution Client for Resource-Restricted Devices

Home Page:https://status-im.github.io/nimbus-eth1/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

T8N 4844 blob tests state mismatch

winsvega opened this issue · comments

I disabled cpu heavy pyspec test (WARNING: Skipping test_excess_blob_gas because --lowcpu option was specified.) and was able to run the blobs .py tests on nimbus t8n.

Here where I get the stateroot mismatch in 4 tests:


--------
*** TOTAL ERRORS DETECTED: 4 errors during all test execution!
--------
info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_blob_tx_contract_creation[fork_Cancun-blockchain_test-], fork: Cancun, block: 1)
info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_blob_count[fork_Cancun-blockchain_test-too_many_blobs], fork: Cancun, block: 1)
info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_blob_txs_full.py::test_reject_valid_full_blob_in_block_rlp[fork_Cancun-blockchain_test-one_full_blob_at_the_end_max_txs], fork: Cancun, block: 1)
info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_excess_blob_gas_fork_transition.py::test_fork_transition_excess_blob_gas[fork_ShanghaiToCancunAtTime15k-blockchain_test-max_blobs], fork: ShanghaiToCancunAtTime15k, block

This tests are located at BlockchainTests/GeneralStateTests/Pyspec/cancun

Please check if this the t8n only bug or it happen with real nimbus evm

I only get stateroot mismatch from 1st test. While the 2nd and the 4th pass the test. And got exception from the 3rd.

Can you tell me how exactly the test being conducted? or can you provide the input and expected output for the failing cases?

So basically, I construct env, pre, txs from the tests and pass it to t8n. And then compare the result hashes. But the hash mismatch come from t8n error log in this case.

Also lately get many of these messages

StorageLedger/merge(): Unspecified(Aristo, ctx=mergeFn(), error=UtilsAccWrongStorageRoot)

I only get stateroot mismatch from 1st test. While the 2nd and the 4th pass the test. And got exception from the 3rd.

Can you tell me how exactly the test being conducted? or can you provide the input and expected output for the failing cases?

This tests are expected to pass. Should I provide the geth vm trace?

I'm more interested in your env and txs, because I might be construct it differently from yours(I don't know if you unpack the txs or not). But geth vm trace also valueable.
So please give me your env, txs and geth vm trace.

Also lately get many of these messages

StorageLedger/merge(): Unspecified(Aristo, ctx=mergeFn(), error=UtilsAccWrongStorageRoot)

It's a known regression, similar to #2228

what you mean unpack? I just send rlp file for txs

That's what I mean, still in rlp or deserialized into json.

here is the debug of one of the tests that nimbus is failing with that error
http://retesteth.ethdevops.io/temp/nimbus/

Thanks, will look into it

all fixed now but one

(cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_excess_blob_gas_fork_transition.py::test_fork_transition_excess_blob_gas[fork_ShanghaiToCancunAtTime15k-blockchain_test-max_blobs], fork: ShanghaiToCancunAtTime15k, block: 22)

get different state root on block22 perhaps the tranistion. only the stateRoot is different so I think it is related to beaconRoot precompile

@winsvega , my test shows all stateRoot are match for the test you mentioned. Including block 22 and 23.
tested against commit: 8926da0

NAME: src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_excess_blob_gas_fork_transition.py::test_fork_transition_excess_blob_gas[fork_ShanghaiToCancunAtTime15k-blockchain_test-max_blobs]
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 1, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 2, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 3, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 4, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 5, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 6, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 7, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 8, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 9, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 10, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 11, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 12, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 13, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 14, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 15, 0, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, 0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 16, 0, 0xa6f5fbf5746b87405d402ba5daa6b8ed95a83a1c374243f76bc0faa1220f4746, 0xa6f5fbf5746b87405d402ba5daa6b8ed95a83a1c374243f76bc0faa1220f4746, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 17, 0, 0x1b76db70e076bb2f6270ab49ac451e9edcfd8238a4e32eef18067254046c0e60, 0x1b76db70e076bb2f6270ab49ac451e9edcfd8238a4e32eef18067254046c0e60, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 18, 0, 0x814ace33f3d42889ca65aa3399c380860d5f9e03661a1db3c5e84f2639b17e9d, 0x814ace33f3d42889ca65aa3399c380860d5f9e03661a1db3c5e84f2639b17e9d, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 19, 0, 0x8ff9d5fc614c0fa3360006eeb598c53dfcc0e16a6723c8df47ade4cab8f491b1, 0x8ff9d5fc614c0fa3360006eeb598c53dfcc0e16a6723c8df47ade4cab8f491b1, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 20, 0, 0x6102f0767e9ac5dc2c0ab9046f5d6ef1443f43d42b04626b460b51a103a43839, 0x6102f0767e9ac5dc2c0ab9046f5d6ef1443f43d42b04626b460b51a103a43839, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 21, 0, 0x8473ad6c1444145a50148ab133f4b95f1c070079cfe9574027415373efd1e97b, 0x8473ad6c1444145a50148ab133f4b95f1c070079cfe9574027415373efd1e97b, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 22, 0, 0x0488e5f75205c63570c7e448aaab098076ebebde078f50f46c3b5216ebaba1f5, 0x0488e5f75205c63570c7e448aaab098076ebebde078f50f46c3b5216ebaba1f5, OK
BlockNumber, EXITCODE, resultStateRoot, expectedStateRoot, status: 23, 0, 0x980e4e4ec883c155b4663eeb6a2983c08744f820f15cca4c1323c46bf3b42775, 0x980e4e4ec883c155b4663eeb6a2983c08744f820f15cca4c1323c46bf3b42775, OK

Hm, still getting this 2 tests. failing with wrong state. the block must have been rejected with exception TransactionException.TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED

info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_block_blob_count[fork_Cancun-blockchain_test--blobs_per_tx_(1, 1, 1, 1, 1, 1, 1)], fork: Cancun, block: 1)
info: (cancun/eip4844_blobs/src/GeneralStateTestsFiller/Pyspecs/cancun/eip4844_blobs/test_excess_blob_gas_fork_transition.py::test_fork_transition_excess_blob_gas[fork_ShanghaiToCancunAtTime15k-blockchain_test-max_blobs], fork: ShanghaiToCancunAtTime15k, block: 22)

log: http://retesteth.ethdevops.io/results/log//2024-06-20-1718883261-nimbus.txt

fixed in #2407