Skip to content

eth_simulateV1 discrepancy #9960

@Alleysira

Description

@Alleysira

Description

Hello developers,

I am currently running differential testing (Geth, Besu, Nethermind, Reth, Erigon) using a separate testnet chain. During my testing of the eth_simulateV1 method, I observed a discrepancy in how Besu handles the input/data compared to other EL clients.

Specifically, when the input and data are provided in the same time but different values are provided, besu return
error while other EL clients could execute the request. BTW, I also test cases where input and data are provided with same values or only one of the them in the tests, these scenarios are good.

Steps to Reproduce

Test case:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_simulateV1",
  "params": [
    {
      "blockStateCalls": [
        {
          "calls": [
            {
              "from": "0xc000000000000000000000000000000000000000",
              "to": "0xd000000000000000000000000000000000000000",
              "input": "0xDEADBEEF",
              "data": "0xCAFEBABE"
            }
          ]
        }
      ],
      "validation": false
    },
    "latest"
  ]
}

Expected behavior: Using input value.

Actual behavior: Return error.

Frequency: 100%

Logs

# geth
{"id": 1, "jsonrpc": "2.0", "result": [{"baseFeePerGas": "0x0", "blobGasUsed": "0x0", "calls": [{"gasUsed": "0x52a8", "logs": [], "returnData": "0x", "status": "0x1"}], "difficulty": "0x0", "excessBlobGas": "0x0", "extraData": "0x", "gasLimit": "0x392a13c", "gasUsed": "0x52a8", "hash": "0xd7542931a40cf042965f59458114ccb4ff350d5d52010bb91016adef5080ab4e", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner": "0x8943545177806ed17b9f23f0a21ee5948ecaa776", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "number": "0x295", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x846d666feb22d163597d8d132ca1df39ecc8a5ea2abb985fb9dbfc7b713c3e7c", "receiptsRoot": "0xb77f680a9de2f33cc2c460cc18ca6e5b282cfa603b6155c65db4b0019b005b94", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x296", "stateRoot": "0xefaddfd587534c0b13b6c5a3db5c939166053c0d893395288af34dc17e674ee5", "timestamp": "0x69a80240", "transactions": ["0xb7ead76612289fb7002977ef4ca37790524af6d51f46027c522ee2fae2f590fa"], "transactionsRoot": "0xe6b8a1dcb3fde4fbb8ef04ea469a2ea3414bc5b5292b548f46aa5653911606d2", "uncles": [], "withdrawals": [], "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}], "server": "http://127.0.0.1:45466"}
# besu
{"error": {"code": -32602, "message": "Invalid params"}, "id": 1, "jsonrpc": "2.0", "server": "http://127.0.0.1:44946"}
# neth
{"id": 1, "jsonrpc": "2.0", "result": [{"baseFeePerGas": "0x0", "blobGasUsed": "0x0", "calls": [{"gasUsed": "0x52a8", "logs": [], "returnData": "0x", "status": "0x1"}], "difficulty": "0x0", "excessBlobGas": "0x0", "extraData": "0x", "gasLimit": "0x392a13c", "gasUsed": "0x52a8", "hash": "0xdf44a812a34691a01f6acb9a410bf17e8b1a2038708f2c5a9fdbd71c9a9191d3", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner": "0x8943545177806ed17b9f23f0a21ee5948ecaa776", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "number": "0x295", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x846d666feb22d163597d8d132ca1df39ecc8a5ea2abb985fb9dbfc7b713c3e7c", "receiptsRoot": "0xb77f680a9de2f33cc2c460cc18ca6e5b282cfa603b6155c65db4b0019b005b94", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x296", "stateRoot": "0xefaddfd587534c0b13b6c5a3db5c939166053c0d893395288af34dc17e674ee5", "timestamp": "0x69a80240", "transactions": ["0xb2a78c65a368253f1ce5996bca673ad978d5cf4c57cf3e39e7713ebac2a7fe21"], "transactionsRoot": "0x2c2b19d4f8b36a05a0974dd0b0997925c91a742717ff411b3cbb11245f53c850", "uncles": [], "withdrawals": [], "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}], "server": "http://127.0.0.1:46474"}
# reth
{"id": 1, "jsonrpc": "2.0", "result": [{"baseFeePerGas": "0x0", "blobGasUsed": "0x0", "calls": [{"gasUsed": "0x52a8", "logs": [], "returnData": "0x", "status": "0x1"}], "difficulty": "0x0", "excessBlobGas": "0x0", "extraData": "0x626573752032362e312e30", "gasLimit": "0x392a13c", "gasUsed": "0x52a8", "hash": "0xb525149b289f0a64e661284f097518043b499c5f2be8479aeef4117db9f64afa", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner": "0x8943545177806ed17b9f23f0a21ee5948ecaa776", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "number": "0x295", "parentBeaconBlockRoot": "0x4bd61a39baf5de5c7a1d917cbbe89ad567634790aeb47095a58e19284a0c80f9", "parentHash": "0x846d666feb22d163597d8d132ca1df39ecc8a5ea2abb985fb9dbfc7b713c3e7c", "receiptsRoot": "0xb77f680a9de2f33cc2c460cc18ca6e5b282cfa603b6155c65db4b0019b005b94", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x2a1", "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "0x69a80240", "transactions": ["0xb7ead76612289fb7002977ef4ca37790524af6d51f46027c522ee2fae2f590fa"], "transactionsRoot": "0xe6b8a1dcb3fde4fbb8ef04ea469a2ea3414bc5b5292b548f46aa5653911606d2", "uncles": [], "withdrawals": [], "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}], "server": "http://127.0.0.1:45636"}
# erigon
{"id": 1, "jsonrpc": "2.0", "result": [{"baseFeePerGas": "0x0", "blobGasUsed": "0x0", "calls": [{"gasUsed": "0x52a8", "logs": [], "returnData": "0x", "status": "0x1"}], "difficulty": "0x0", "excessBlobGas": "0x0", "extraData": "0x", "gasLimit": "0x392a13c", "gasUsed": "0x52a8", "hash": "0xd7542931a40cf042965f59458114ccb4ff350d5d52010bb91016adef5080ab4e", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner": "0x8943545177806ed17b9f23f0a21ee5948ecaa776", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "number": "0x295", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x846d666feb22d163597d8d132ca1df39ecc8a5ea2abb985fb9dbfc7b713c3e7c", "receiptsRoot": "0xb77f680a9de2f33cc2c460cc18ca6e5b282cfa603b6155c65db4b0019b005b94", "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x296", "stateRoot": "0xefaddfd587534c0b13b6c5a3db5c939166053c0d893395288af34dc17e674ee5", "timestamp": "0x69a80240", "transactions": ["0xb7ead76612289fb7002977ef4ca37790524af6d51f46027c522ee2fae2f590fa"], "transactionsRoot": "0xe6b8a1dcb3fde4fbb8ef04ea469a2ea3414bc5b5292b548f46aa5653911606d2", "uncles": [], "withdrawals": [], "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}], "server": "http://127.0.0.1:45998"}

Versions (Add all that apply)

  • Software version: besu/v26.1.0
  • Docker Version: 24.0.2
  • Consensus Client & Version if using Proof of Stake: Lighthouse

Metadata

Metadata

Assignees

Labels

P3Medium (ex: JSON-RPC request not working with a specific client library due to loose spec assumtion)RPCbugSomething isn't working

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions