Skip to content

config: add NodePool.RedialBackoffMin - #585

Open
snowkide wants to merge 1 commit into
smartcontractkit:developfrom
linkpoolio:config-redial-backoff-min
Open

snowkide wants to merge 1 commit into
smartcontractkit:developfrom
linkpoolio:config-redial-backoff-min

Conversation

@snowkide

@snowkide snowkide commented Nov 2, 2026

Copy link
Copy Markdown

Exposes the multinode RedialBackoffMin setting (smartcontractkit/chainlink-framework#124) as an EVM node pool option:

[EVM.NodePool]
RedialBackoffMin = '1s' # Default

RedialBackoffMin is how long to wait before the first redial of an RPC node that has been marked as unreachable. Later redials back off exponentially, with jitter, up to 15s. Set to 0s to redial immediately; later redials then back off starting from 100ms.

This helps nodes with a single RPC entry behind a proxy or load balancer, where a backend restart drops the connection but a new connection is usually available right away.

Default unchanged: fallback.toml sets '1s', the current hardcoded value.

NewClientConfigs gets a new redialBackoffMin time.Duration parameter after pollSuccessThreshold, the same way pollSuccessThreshold was added in #432. Callers need to add the argument when they bump; pass time.Second to keep the current behavior (0 means redial immediately).

Changes:

  • toml.NodePool.RedialBackoffMin plus setFrom, default in fallback.toml, docs in docs.toml, regenerated CONFIG.md
  • NodePool interface and NodePoolConfig getter
  • NewClientConfigs parameter
  • Tests: config-full.toml, toml/config_test.go, config_test.go (asserts the 1s default), client/config_builder_test.go (asserts the value is passed through), client/evm_client_test.go, client/helpers_test.go

The value only takes effect once the multinode change above is merged and this module's multinode dependency is bumped; until then it is parsed and documented but unused.

Merge order: this PR builds against the current multinode and can be merged first. It needs to be merged before multinode is bumped past the change above, because that change adds RedialBackoffMin() to NodeConfig, which NodePoolConfig must implement.

Requires Dependencies

Delay before the first redial of an unreachable RPC node (default 1s, the
current hardcoded value). 0 redials immediately.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant