SIGN IN SIGN UP

Add RPC provider failover for block ingestor (#6430)

* graph: Fix retry_strategy underflow when limit is 0

Use saturating_sub to avoid underflow when limit is set to 0.

* chain/ethereum: Add RPC provider failover for block ingestor

When do_poll() fails, the ingestor now probes the current provider
before switching. If the current provider is unreachable, all
alternatives are probed in parallel and the first healthy one is
selected. This avoids unnecessary switches on non-RPC failures
(e.g. DB errors, chain reorgs).

Also limits latest_block_ptr retries to ENV_VARS.request_retries
so failures surface to the failover logic instead of retrying
indefinitely.

* docs: Document block ingestor failover behavior

* chain/ethereum: Return provider directly from resolve_provider

Simplify resolve_provider_idx into resolve_provider by returning
a reference to the Arc<A> instead of a usize index, eliminating
the separate indexing step at the call site.
M
Maksim Dimitrov committed
277f45e0960f8d8e0e4ace44ddbc38170423559d
Parent: 192869f
Committed by GitHub <noreply@github.com> on 3/27/2026, 11:20:49 AM