Client Setting Requirements

Supported JSON RPC Clients

OpenScan.AI currently supports Geth, Erigon, Nethermind, Reth, Besu, RSKj, Lotus, and Anvil JSON RPC clients. To define the JSON RPC node variant, it’s advised to define the ETHEREUM_JSONRPC_VARIANT environment variable*. Correct values include:

JSON RPC ClientValueNote
GethgethDefault. This value is applicable for both Geth and Reth JSON RPC clients
ErigonerigonIt is suggested to use erigon variant for Reth JSON RPC client.
NethermindnethermindThis value is applicable for Reth and deprecated OpenEthereum (aka Parity) JSON RPC clients
Besubesu
RSKjrsk
Lotusfilecoin
Anvilanvil

*If the variable is not set, the JSON RPC variant is chosen based on the CHAIN_TYPE variable according to the variant mapping in the OpenScan.AI backend source (see the ethereum_jsonrpc app in the OpenScan.AI repositories on GitHub):

defp get_default_variant do
case Application.get_env(:explorer, :chain_type) do
:rsk -> "rsk"
:filecoin -> "filecoin"
_ -> "geth"
end
end

Note: OpenScan.AI currently requires a full archive node in order to import every state change for every address on the target network.

Configs

Explorer and indexer configuration files (dev and prod environments) are located in the apps/explorer/config and apps/indexer/config directories of the OpenScan.AI backend repository. See the OpenScan.AI repositories on GitHub.

Variables to connect to JSON RPC client

NameEnvironment VariableDefault ValueDescription
HTTP EndpointETHEREUM_JSONRPC_HTTP_URLhttp://localhost:8545The HTTP Endpoint is used to fetch blocks, transactions, receipts, coin/token balances.
Fallback HTTP EndpointETHEREUM_JSONRPC_FALLBACK_HTTP_URL(empty)Fallback JSON RPC HTTP url.
Tracing EndpointETHEREUM_JSONRPC_TRACE_URLhttp://localhost:8545The Tracing endpoint is used to fetch internal transactions and block traces. In most cases this endpoint is identical to the HTTP Endpoint.
Fallback Tracing EndpointETHEREUM_JSONRPC_FALLBACK_TRACE_URL(empty)Fallback JSON RPC tracing url.
Eth_call Requests EndpointETHEREUM_JSONRPC_ETH_CALL_URL(empty)JSON RPC url for eth_call method requests.
Fallback Eth_call Requests EndpointETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL(empty)Fallback JSON RPC eth_call url.
WebSockets EndpointETHEREUM_JSONRPC_WS_URLws://localhost:8546The WebSockets endpoint subscribes to newHeads which alerts the indexer to fetch the new block from the subscription.

Geth

More information on Geth JSON-RPC is available here.

Terminal window
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 is 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.

Erigon

More information on Erigon configuration is available here.

Nethermind

More information on Nethermind configuration is available here.

Reth

More information on Reth configuration is available here.

RSKj

More information on RSKj configuration is available here.

Besu

More information on Besu configuration is available here.

Lotus

More information on Lotus configuration is available here.

OpenEthereum

Terminal window
--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