For the complete documentation index, see llms.txt. This page is also available as Markdown.

Debug EVM Transactions

Overview

UOMI provides advanced transaction tracing capabilities through Geth's debug APIs and OpenEthereum's trace module. These non-standard RPC methods offer deep insights into transaction processing and execution.

Available Debug Methods

debug_traceTransaction

Replays a transaction in the exact manner it was executed on the network.

curl http://127.0.0.1:9944 -H "Content-Type:application/json;charset=utf-8" -d \
  '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"debug_traceTransaction",
    "params": ["YOUR-TRANSACTION-HASH"]
  }'

Optional parameters:

  • disableStorage: (default: false) Disables storage capture

  • disableMemory: (default: false) Disables memory capture

  • disableStack: (default: false) Disables stack capture

debug_traceBlock

Returns a full stack trace of all invoked opcodes for all transactions in a block.

Variants:

  • debug_traceBlockByHash

  • debug_traceBlockByNumber

debug_traceCall

Executes an eth-call-like operation within the context of a given block.

trace_filter

Filters and retrieves trace data based on specific criteria.

Parameters:

  • fromBlock: Starting block number

  • toBlock: Ending block number

  • fromAddress: Filter transactions from these addresses

  • toAddress: Filter transactions to these addresses

  • after: Trace offset (default: 0)

  • count: Number of traces to return

⚠️ Important Limits

  • Maximum 500 trace entries per request

  • Trace cache duration: 300 seconds

Running a Debug Node

To access these debugging features, you need to run a node with specific debug flags enabled.

Required Flags

Optional Configurations

Transaction Pool API

Check the transaction pool status:

💡 Note The txpool API requires the --ethapi=txpool flag when starting the node.

Best Practices

  1. Node Configuration

    • Enable only the debug features you need

    • Consider memory usage when setting cache sizes

    • Monitor node performance with tracing enabled

  2. API Usage

    • Use specific filters to limit data returned

    • Consider pagination for large trace requests

    • Cache commonly requested trace data

Common Issues

  • Request Timeout: Reduce the trace range or add more filters

  • Memory Issues: Adjust cache size and duration

  • Missing Data: Verify node sync status and cache duration

Last updated