Skip to content

Issue with EVM RPC response data consistencies #25961

@radiofreejohn

Description

@radiofreejohn

I apologize if this is the wrong place to reach out, we're not sure where the best place to report this is. I work for Goldsky, we do hosted indexing, and several of our customers rely on Hedera RPC information.

Our indexers are getting hard locked since the latest upgrade, as we see blocks which have the following pattern:

  1. we get a block with eth_getBlockByNumber/Hash and this returns a list of transactions.
  2. we cann eth_getTransactionReceipt for the transactions, and check the block number they reference.
  3. this comparison is off, the transaction appears in two blocks on chain which should not be possible.

Example block/txn:

Get block 0x5be3015

❯ curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x5be3015", false],"id":1}' 'https://mainnet.hashio.io/api'
{"result":{"timestamp":"0x6a2e5632","difficulty":"0x0","extraData":"0x","gasLimit":"0x8f0d180","baseFeePerGas":"0xf478e08400","gasUsed":"0x0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","receiptsRoot":"0xd4d5eaa637aa85294267684de9b2a1964f38344e37f276e21f3344a56ee86821","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x9a1","stateRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","totalDifficulty":"0x0","transactions":["0x64f93c99d3575ed3e5f9e7a154b6ae6b6016ebba0c020083fbef97d8f1bf0a1f","0x9018e52c7e444727ea3afb1b35ff0daae0c9de6259b66d10c40802ecdd071cd2"],"transactionsRoot":"0x88172015d45dee764db5fc4a5342f52c7b82a0633b59be40f4b090be4c73a4be","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","number":"0x5be3015","hash":"0x88172015d45dee764db5fc4a5342f52c7b82a0633b59be40f4b090be4c73a4be","parentHash":"0x421d6d8b549e38621c66ca5eb98697a22a3f04992bc5780126a84b909f0e3fe9"},"jsonrpc":"2.0","id":1}

get transaction 0x64f93c99d3575ed3e5f9e7a154b6ae6b6016ebba0c020083fbef97d8f1bf0a1f

❯ curl -X POST -H "Content-Type: application/json" --data '{"method":"eth_getTransactionReceipt","params":["0x64f93c99d3575ed3e5f9e7a154b6ae6b6016ebba0c020083fbef97d8f1bf0a1f"],"id":1,"jsonrpc":"2.0"}' 'https://mainnet.hashio.io/api'
{"result":{"blockHash":"0x24ba1da797e275957c0779415e8e6f063149b584d563f286d4dcedaacb4b3a81","blockNumber":"0x5bed0ac","from":"0xdc3a02aa93f0b22f5a6d5e459ac02a6d0a0a9717","to":"0x00000000000000000000000000000000007872cb","cumulativeGasUsed":"0x0","gasUsed":"0x0","contractAddress":"0x00000000000000000000000000000000007872cb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","transactionHash":"0x64f93c99d3575ed3e5f9e7a154b6ae6b6016ebba0c020083fbef97d8f1bf0a1f","transactionIndex":"0x1","effectiveGasPrice":"0xf478e08400","root":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","status":"0x0","type":"0x2","revertReason":"0x494e53554646494349454e545f54585f464545"},"jsonrpc":"2.0","id":1}

Note it returns the block number it is on as 0x5bed0ac which is different from the block that returned the transaction, of course, block 0x5bed0ac also returns this transaction hash which is where the inconsistencies break indexing.

Apologies if this is the wrong place to post this, feel free to close, or point me in the right direction if you are able.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions