Client Setting Requirements
Supported JSON RPC Clients
BlockScout currently supports Geth, Erigon, Nethermind, Reth, Besu, RSKj, Lotus, and Ganache 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 Client | Value | Note |
---|---|---|
Geth | `geth` | Default. This value is applicable for both Geth and Reth JSON RPC clients |
Erigon | `erigon` | It is suggested to use |
Nethermind | `nethermind` | This value is applicable for Reth and deprecated OpenEthereum (aka Parity) JSON RPC clients |
Besu | `besu` | |
RSKj | `rsk` | |
Lotus | `filecoin` | |
Ganache | `ganache` |
*If the variable is not set, JSON RPC variant will be chosen based on CHAIN_TYPE
variable according to the mapping https://github.com/blockscout/blockscout/blob/a2625803c831fb86e38ffe0e28d94bfd697914ce/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/variant.ex#L114-L120
BlockScout currently requires a full archive node in order to import every state change for every address on the target network.
Configs
Application | Environment | Config path |
---|---|---|
Explorer | Dev | |
Prod | ||
Indexer | Dev | |
Prod |
Variables to connect to JSON RPC client
Name | Environment Variable | Default Value | Description |
---|---|---|---|
HTTP Endpoint |
| http://localhost:8545 | The HTTP Endpoint is used to fetch |
Fallback HTTP Endpoint |
| (empty) | Fallback JSON RPC HTTP url. |
Tracing Endpoint |
| http://localhost:8545 | The Tracing endpoint is used to fetch |
Fallback Tracing Endpoint |
| (empty) | Fallback JSON RPC tracing url. |
Eth_call Requests Endpoint |
| (empty) | JSON RPC url for |
Fallback Eth_call Requests Endpoint |
| (empty) | Fallback JSON RPC |
WebSockets Endpoint |
| ws://localhost:8546 | The WebSockets endpoint subscribes to |
Geth
More information on Geth JSON-RPC is available here.
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.
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
Last updated