Links

Client Setting Requirements

Supported Clients

BlockScout currently supports Erigon, Nethermind, Geth, Parity, OpenEthereum, Hyperledger Besu, and Ganache clients. To define the node variant, it's advised to define the ETHEREUM_JSONRPC_VARIANT environment variable. Correct values include:
  1. 1.
    parity the same for Parity, OpenEthereum and Nethermind (default)
  2. 2.
    erigon
  3. 3.
    geth
  4. 4.
    besu
  5. 5.
    ganache
BlockScout currently requires a full archive node in order to import every state change for every address on the target network.

Development

variant =
if is_nil(System.get_env("ETHEREUM_JSONRPC_VARIANT")) do
"ganache"
else
System.get_env("ETHEREUM_JSONRPC_VARIANT")
|> String.split(".")
|> List.last()
|> String.downcase()
end

Production

variant =
if is_nil(System.get_env("ETHEREUM_JSONRPC_VARIANT")) do
"parity"
else
System.get_env("ETHEREUM_JSONRPC_VARIANT")
|> String.split(".")
|> List.last()
|> String.downcase()
end

OpenEthereum Client

--jsonrpc-interface all --jsonrpc-apis web3,eth,net,parity,pubsub,traces --ws-interface all --fat-db=on --pruning=archive --ws-apis all --ws-origins all --ws-hosts all
Name
Environment Variable
Default Value
Description
HTTP Endpoint
ETHEREUM_JSONRPC_HTTP_URL
The HTTP Endpoint is used to fetch blocks, transactions, receipts, coin/token balances.
Tracing Endpoint
ETHEREUM_JSONRPC_TRACE_URL
The Tracing endpoint is used to fetch internal transactions and block traces. In most cases this endpoint is identical to the HTTP Endpoint.
WebSockets Endpoint
ETHEREUM_JSONRPC_WS_URL
ws://localhost:8546
The WebSockets endpoint subscribes to newHeads which alerts the indexer to fetch the new block from the subscription.

Development

Production

Geth Client

More information on Geth JSON-RPC available here.
sudo /usr/bin/geth --http --http.addr 0.0.0.0 --port 30303 --http.port 8545 --http.api debug,net,eth,shh,web3,txpool --ws.api "eth,net,web3,network,debug,txpool" --ws --ws.addr 0.0.0.0 --ws.port 8546 --ws.origins "*" --sepolia --datadir=/rinkeby --syncmode "full" --gcmode "archive" --http.vhosts "*"
Tracing and pruning: By default, state for the last 128 blocks kept in memory. Most states are garbage collected. If you are running a block explorer or other service relying on transaction tracing without an archive node (--gcmode=archive), you need to trace within this window! Alternatively, specify the "reexec" tracer option to allow regenerating historical state; and ideally switch to chain tracing which amortizes overhead across all traced blocks.
Name
Environment Variable
Default Value
Description
HTTP Endpoint
ETHEREUM_JSONRPC_HTTP_URL
The HTTP Endpoint is used to fetch blocks, transactions, receipts, coin/token balances.
WebSockets Endpoint
ETHEREUM_JSONRPC_WS_URL
ws://localhost:8546
The WebSockets endpoint subscribes to newHeads which alerts the indexer to fetch the new block from the subscription.

Development

Production