Client Settings (Parity, OpenEthereum, Hyperledger Besu, Geth, Ganache)

Supported Clients

BlockScout currently supports Parity, OpenEthereum, Geth, Nethermind, 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.
    parity the same for Parity, OpenEthereum and Nethermind (default)
    2.
    geth
    3.
    besu
    4.
    ganache
BlockScout currently requires a full archive node in order to import every state change for every address on the target network.

Development

1
variant =
2
if is_nil(System.get_env("ETHEREUM_JSONRPC_VARIANT")) do
3
"ganache"
4
else
5
System.get_env("ETHEREUM_JSONRPC_VARIANT")
6
|> String.split(".")
7
|> List.last()
8
|> String.downcase()
9
end
Copied!

Production

1
variant =
2
if is_nil(System.get_env("ETHEREUM_JSONRPC_VARIANT")) do
3
"parity"
4
else
5
System.get_env("ETHEREUM_JSONRPC_VARIANT")
6
|> String.split(".")
7
|> List.last()
8
|> String.downcase()
9
end
Copied!

OpenEthereum Client

1
--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
Copied!
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.
1
sudo /usr/bin/geth --http --http.addr 0.0.0.0 --port 30303 --http.port 8545 --http.api debug,net,eth,shh,web3,txpool --wsapi "eth,net,web3,network,debug,txpool" --ws --ws.addr 0.0.0.0 --ws.port 8546 --wsorigins "*" --rinkeby --datadir=/rinkeby --syncmode=full --gcmode=archive --http.vhosts=*
Copied!
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

Last modified 1mo ago