-
Notifications
You must be signed in to change notification settings - Fork 292
Description
Large Transaction Traces Causing Timeouts and Incorrect EOA Identification.
The data indicates a critical issue stemming from the debug_traceTransaction RPC method in Blockscout. Specifically, transactions with exceptionally large trace data, such as the example transaction 0x0d8a0dbeb84c3c3299293555be4b57eb239a7aeee4b8dacf1fcf5ca3036b15f7, can exceed size limitations (as evidenced by the 128MB response) and cause timeouts (413 Request Entity Too Large).
This problem is exacerbated by Blockscout's current approach of processing transactions, where individual failures on large traces can halt the processing of entire blocks. Consequently, the inability to successfully execute debug_traceTransaction on these problematic transactions prevents the correct identification of contract types, leading to smart contracts being incorrectly tagged as Externally Owned Accounts (EOAs).
application=ethereum_jsonrpc fetcher=internal_transaction count=1 [error] 413 Request Entity Too Large returned from single request batch. Cannot shrink the batch further. The actual batched request was [%{id: 0, params: ["0x0d8a0dbeb84c3c3299293555be4b57eb239a7aeee4b8dacf1fcf5ca3036b15f7", %{:timeout => "5s", "tracer" => "callTracer"}], method: "debug_traceTransaction", jsonrpc: "2.0"}]. The actual response of the method was :timeout.