Per chain rpc settings (#6459)
* ethereum, node: Per-chain RPC settings via TOML config Introduce a ChainSettings struct that holds Ethereum RPC tuning parameters (timeouts, retries, batch sizes, block ranges, etc.) per chain instead of reading them from global ENV_VARS. Settings are parsed from [chains.<name>] TOML sections with serde defaults falling back to the existing environment variables, preserving full backwards compatibility. Thread ChainSettings through Chain, EthereumAdapter, and the free receipt-fetching functions so each chain can be independently tuned. * docs: Document per-chain RPC settings in config and env vars Add the full list of per-chain Ethereum RPC tuning settings to docs/config.md with env var fallback defaults, and add a cross-reference note in docs/environment-variables.md. * node: Validate per-chain settings on config load Reject invalid ChainSettings values at startup: max_block_range_size and max_event_only_range must be positive (i32), and block_batch_size, block_ptr_batch_size, block_ingestor_max_concurrent_json_rpc_calls, and get_logs_max_contracts must be non-zero (used as .buffered() args or filter batch limits where 0 would panic or silently break). * node, docs: Address review feedback on per-chain settings - Guard ChainSettings::validate() to Ethereum chains only - Add zero-value validation for polling_interval, json_rpc_timeout, request_retries, and target_triggers_per_block_range - Fix ETHEREUM_POLLING_INTERVAL env var name in doc comment (drop GRAPH_ prefix) - Fix polling_interval default in docs (500ms → 1000ms)
M
Maksim Dimitrov committed
0c9940a6c285f29f54baf3bf02cbfbd9b72082b2
Parent: 1d39f7d
Committed by GitHub <noreply@github.com>
on 4/1/2026, 10:18:57 AM