Eth R&D:
a.hamlatRole icon, besu — 19.03.2026, 14:43
@andrew Ashikhmin I was looking into besu warn logs on a hoodi validator and saw receipts root mismatch with at least one missed block produced by Erigon-Nimbus-C7. This is the log from besu if you want to investigate
{"@timestamp":"2026-03-19T13:03:25,112","level":"WARN","thread":"vert.x-worker-thread-0","class":"MainnetBlockBodyValidator","message":"Invalid block 2447700 (0x163fd5d4071ed58cbe62897d6bf2d640ee720a8a32e81b154102cc6f44e0eba2): receipts root mismatch (expected=0x539eee13d71cab4aa5b86865a63c45a46ef5fa2cd8810cbf1643aeaa123ed84c, actual=0x20684efe48c2ca6ad9c8a06a287d8ae9df2dbb43c398af715360f86eb796abde)","throwable":""}
{"@timestamp":"2026-03-19T13:03:25,112","level":"INFO","thread":"vert.x-worker-thread-0","class":"MainnetBlockValidator","message":"Invalid block 2447700 (0x163fd5d4071ed58cbe62897d6bf2d640ee720a8a32e81b154102cc6f44e0eba2): Optional[failed to validate output of imported block]","throwable":""}
Similar issue on block 2447685, produced by Erigon-Nimbus-C9
{"@timestamp":"2026-03-19T12:59:49,117","level":"WARN","thread":"vert.x-worker-thread-0","class":"MainnetBlockBodyValidator","message":"Invalid block 2447685 (0x78863dd39f50ee338b05ed764a88bde55053e72f84c244166aefc0bc2d837972): receipts root mismatch (expected=0x0f884a37e7945f203e8fdbb0a8d0faa8fd8c0f82b91ca13308e985f40bb776e5, actual=0xa202bf8f61afed8e5cb14b5ddb554970b1d4bc749274b958e75fe382071b5816)","throwable":""}
{"@timestamp":"2026-03-19T12:59:49,117","level":"INFO","thread":"vert.x-worker-thread-0","class":"MainnetBlockValidator","message":"Invalid block 2447685 (0x78863dd39f50ee338b05ed764a88bde55053e72f84c244166aefc0bc2d837972): Optional[failed to validate output of imported block]","throwable":""}
Investigation by @lystopad:
Erigon rejects Hoodi testnet block 2486302 because it computes 91,100 less gas used than the canonical header specifies. The discrepancy traces to tx[0] of that block: Erigon computes 440,329 gas used while the canonical value is 531,429. The missing gas is almost exactly what the canonical trace shows a nested DELEGATECALL to 0x14a2d707 consuming (91,109 gas). The root cause appears to be that Erigon's EVM forwards ~91,100 less gas to that DELEGATECALL than the reference client does, likely due to a bug in the EIP-7702 gas calculation path (gasDelegateCallEIP7702) that incorrectly computes the available gas before applying the 63/64 forwarding rule. The separately reported Besu receipt-root mismatch on block 2447700 produced by another Erigon-Nimbus validator is likely the same underlying bug, manifesting on a different block.
Eth R&D:
a.hamlatRole icon, besu — 19.03.2026, 14:43
@andrew Ashikhmin I was looking into besu warn logs on a hoodi validator and saw receipts root mismatch with at least one missed block produced by Erigon-Nimbus-C7. This is the log from besu if you want to investigate
Similar issue on block 2447685, produced by Erigon-Nimbus-C9
Investigation by @lystopad:
Erigon rejects Hoodi testnet block 2486302 because it computes 91,100 less gas used than the canonical header specifies. The discrepancy traces to tx[0] of that block: Erigon computes 440,329 gas used while the canonical value is 531,429. The missing gas is almost exactly what the canonical trace shows a nested DELEGATECALL to 0x14a2d707 consuming (91,109 gas). The root cause appears to be that Erigon's EVM forwards ~91,100 less gas to that DELEGATECALL than the reference client does, likely due to a bug in the EIP-7702 gas calculation path (gasDelegateCallEIP7702) that incorrectly computes the available gas before applying the 63/64 forwarding rule. The separately reported Besu receipt-root mismatch on block 2447700 produced by another Erigon-Nimbus validator is likely the same underlying bug, manifesting on a different block.