Node Tracing / JSON RPC Requirements
Last updated
Was this helpful?
Last updated
Was this helpful?
Archive node with JSON RPC interface should strictly follow input/output interface described in
WebSocket interface (optional/highly recommended to enable) is used to subscribe to new block heads. Otherwise, Blockscout will trigger new blocks fetching by periodical polling the JSON RPC eth_blockNumber
method.
Support for the following standard Ethereum JSON RPC methods (documented at )
eth_blockNumber
eth_call
eth_getBalance
eth_getCode
eth_getBlockByHash
eth_getBlockByNumber
eth_getTransactionByHash
eth_getTransactionByBlockHashAndIndex
eth_getTransactionByBlockNumberAndIndex
eth_getTransactionReceipt
eth_getUncleByBlockHashAndIndex
eth_getLogs
Erigon Nethermind OpenEthereum
parity_pendingTransactions
Geth
txpool_content
Erigon Nethermind OpenEthereum
trace_replayBlockTransactions
(fetching of internal transactions)
trace_block
(fetching of block rewards)
Geth
debug_traceBlockByNumber
or debug_traceTransaction
callTracer
is used by default, starting from the Blockscout 5.1.0 release. To switch to a custom JS tracer, the Blockscout maintainer should set the export INDEXER_INTERNAL_TRANSACTIONS_TRACER_TYPE=js
environment variable. Prior to the 5.1.0 release, js tracer was a default option.
eth_getBlockByNumber
without transaction receipts for a block with 15 transactions: Desired response time is < 0.5s. For instance, in case of the Gnosis chain archive node, the response time for the block with ~20 transactions is ~0.4s.
eth_getTransactionReceipt
for random transactions desired response time is < 0.5s. For the Gnosis chain archive node the response time is ~0.3 - 0.4s.
Batched eth_getTransactionReceipt
for 15 transactions acceptable response time is Less than 1s. For the Gnosis chain archive node, it is ~0.6 - 0.7s
The desired rate limit for RPC endpoint is 200 req/sec for the indexing phase and 100 req/sec for the indexed chain.
Time measures for response time of crucial JSON RPC methods for indexing in Blockscout. .
All EVM chains must during configuration.
BlockScout currently supports Erigon, Geth, Nethermind, Hyperledger Besu, and Anvil clients. Define the node variant using the ETHEREUM_JSONRPC_VARIANT
environment variable.