Skip to content

Commit ffeabb1

Browse files
vlfigdhaidashenkocll-gg
authored
DF-23489 bump chainlink-evm (#22189)
* Bump chainlink evm * fix testscript test * DF-23489 bump chainlink-evm * DF-23489 point to reversion (test on ci) * Make generate * DF-23489 chainlink-evm latest * DF-23489 resolver: rm PollFailureSuccess prop from Solana testdata --------- Co-authored-by: Dmytro Haidashenko <dmytro.haidashenko@smartcontract.com> Co-authored-by: Geert G <117188496+cll-gg@users.noreply.github.com>
1 parent b75eb4e commit ffeabb1

36 files changed

Lines changed: 465 additions & 150 deletions

.changeset/cool-goats-give.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"chainlink": minor
3+
---
4+
5+
Node operators can now specify in `PollSuccessThreshold` how many successful polls in a row must an unreachable RPC pass to become Alive again, on EVM chains. #added #nops

.changeset/tall-tigers-fear.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"chainlink": minor
3+
---
4+
5+
RPCs that sustain polling error rates above 50% will now eventually be marked as unreachable, in addition to previous behaviour of `PollFailureThreshold` failures in a row. #updated #nops

ccip/config/evm/fallback.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ SafeTagSupported = true
88
LogBackfillBatchSize = 1000
99
LogPollInterval = '15s'
1010
LogKeepBlocksDepth = 100000
11+
LogPollerSkipEmptyBlocks = false
1112
LogPrunePageSize = 10000
1213
BackupLogPollerBlockDelay = 100
1314
MinContractPayment = '.00001 link'
@@ -78,6 +79,7 @@ PersistenceBatchSize = 100
7879

7980
[NodePool]
8081
PollFailureThreshold = 5
82+
PollSuccessThreshold = 0
8183
PollInterval = '10s'
8284
SelectionMode = 'HighestHead'
8385
SyncThreshold = 5

core/config/docs/chains-evm.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ LogPollInterval = '15s' # Default
7777
# LogKeepBlocksDepth works in conjunction with Feature.LogPoller. Controls how many blocks the poller will keep, must be greater than FinalityDepth+1.
7878
LogKeepBlocksDepth = 100000 # Default
7979
# **ADVANCED**
80+
# LogPollerSkipEmptyBlocks defines if LogPoller should persist or skip blocks that do not contain logs matching any of registered filters. Setting this to true can reduce the load on the database and improve performance for fast chains.
81+
LogPollerSkipEmptyBlocks = false # Default
82+
# **ADVANCED**
8083
# LogPrunePageSize defines size of the page for pruning logs. Controls how many logs/blocks (at most) are deleted in a single prune tick. Default value 0 means no paging, delete everything at once.
8184
LogPrunePageSize = 0 # Default
8285
# **ADVANCED**
@@ -426,10 +429,14 @@ GasEstimator.PriceMax = '79 gwei' # Example
426429
#
427430
# In addition to these settings, `EVM.NoNewHeadsThreshold` controls how long to wait after receiving no new heads before marking the node as out-of-sync.
428431
[EVM.NodePool]
429-
# PollFailureThreshold indicates how many consecutive polls must fail in order to mark a node as unreachable.
432+
# PollFailureThreshold indicates how many polls must fail beyond those that succeed in order to mark a node as unreachable.
430433
#
431434
# Set to zero to disable poll checking.
432435
PollFailureThreshold = 5 # Default
436+
# PollSuccessThreshold indicates how many consecutive polls must succeed in order to mark a node as alive once it has been marked as unreachable.
437+
#
438+
# Set to zero to require no successful polls (previous behavior).
439+
PollSuccessThreshold = 0 # Default
433440
# PollInterval controls how often to poll the node to check for liveness.
434441
#
435442
# Set to zero to disable poll checking.

core/config/docs/chains-solana.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ TxAcceptanceState = 3 # Default
8787
[Solana.MultiNode]
8888
# Enabled enables the multinode feature.
8989
Enabled = false # Default
90-
# PollFailureThreshold is the number of consecutive poll failures before a node is considered unhealthy.
90+
# PollFailureThreshold is the number of poll failures beyond poll successes before a node is considered unhealthy.
9191
PollFailureThreshold = 5 # Default
9292
# PollInterval is the rate to poll for node health.
9393
PollInterval = '10s' # Default

core/scripts/go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ require (
5050
github.com/smartcontractkit/chainlink-common/keystore v1.1.0
5151
github.com/smartcontractkit/chainlink-data-streams v0.1.13
5252
github.com/smartcontractkit/chainlink-deployments-framework v0.98.0
53-
github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260416173445-80f6efde0a03
53+
github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260428180431-40447a80e681
5454
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260421142741-9c7fbaf7c828
5555
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260420204255-a3f3bdd56877
5656
github.com/smartcontractkit/chainlink-protos/job-distributor v0.18.0
@@ -493,14 +493,14 @@ require (
493493
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc // indirect
494494
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc // indirect
495495
github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260415165642-49f23e4d76cc // indirect
496-
github.com/smartcontractkit/chainlink-ccv v0.0.0-20260423133643-8d6a915c04b3 // indirect
496+
github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd // indirect
497497
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20251211140724-319861e514c4 // indirect
498498
github.com/smartcontractkit/chainlink-evm/contracts/cre/gobindings v0.0.0-20260403151002-2c91155b5501 // indirect
499499
github.com/smartcontractkit/chainlink-feeds v0.1.2-0.20250227211209-7cd000095135 // indirect
500-
github.com/smartcontractkit/chainlink-framework/capabilities v0.0.0-20250818175541-3389ac08a563 // indirect
501-
github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20260326122810-b657beadfb57 // indirect
502-
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260410144512-ca02ad6ed16a // indirect
503-
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260410144512-ca02ad6ed16a // indirect
500+
github.com/smartcontractkit/chainlink-framework/capabilities v0.0.0-20260423135514-5b1a7565a99c // indirect
501+
github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20260423135514-5b1a7565a99c // indirect
502+
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260423135514-5b1a7565a99c // indirect
503+
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260423135514-5b1a7565a99c // indirect
504504
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251024234028-0988426d98f4 // indirect
505505
github.com/smartcontractkit/chainlink-protos/chainlink-ccv/committee-verifier v0.0.0-20251211142334-5c3421fe2c8d // indirect
506506
github.com/smartcontractkit/chainlink-protos/chainlink-ccv/heartbeat v0.0.0-20260115142640-f6b99095c12e // indirect

core/scripts/go.sum

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/services/chainlink/config_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,7 @@ func TestConfig_Marshal(t *testing.T) {
766766
LogBackfillBatchSize: ptr[uint32](17),
767767
LogPollInterval: &minute,
768768
LogKeepBlocksDepth: ptr[uint32](100000),
769+
LogPollerSkipEmptyBlocks: ptr(false),
769770
LogPrunePageSize: ptr[uint32](0),
770771
BackupLogPollerBlockDelay: ptr[uint64](532),
771772
MinContractPayment: commonassets.NewLinkFromJuels(math.MaxInt64),
@@ -809,6 +810,7 @@ func TestConfig_Marshal(t *testing.T) {
809810

810811
NodePool: evmcfg.NodePool{
811812
PollFailureThreshold: ptr[uint32](5),
813+
PollSuccessThreshold: ptr[uint32](0),
812814
PollInterval: &minute,
813815
SelectionMode: &selectionMode,
814816
SyncThreshold: ptr[uint32](13),
@@ -1249,6 +1251,7 @@ FlagsContractAddress = '0xae4E781a6218A8031764928E88d457937A954fC3'
12491251
LinkContractAddress = '0x538aAaB4ea120b2bC2fe5D296852D948F07D849e'
12501252
LogBackfillBatchSize = 17
12511253
LogPollInterval = '1m0s'
1254+
LogPollerSkipEmptyBlocks = false
12521255
LogKeepBlocksDepth = 100000
12531256
LogPrunePageSize = 0
12541257
BackupLogPollerBlockDelay = 532
@@ -1339,6 +1342,7 @@ PriceMax = '79.228162514264337593543950335 gether'
13391342
13401343
[EVM.NodePool]
13411344
PollFailureThreshold = 5
1345+
PollSuccessThreshold = 0
13421346
PollInterval = '1m0s'
13431347
SelectionMode = 'HighestHead'
13441348
SyncThreshold = 13

core/services/chainlink/testdata/config-full.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ FlagsContractAddress = '0xae4E781a6218A8031764928E88d457937A954fC3'
464464
LinkContractAddress = '0x538aAaB4ea120b2bC2fe5D296852D948F07D849e'
465465
LogBackfillBatchSize = 17
466466
LogPollInterval = '1m0s'
467+
LogPollerSkipEmptyBlocks = false
467468
LogKeepBlocksDepth = 100000
468469
LogPrunePageSize = 0
469470
BackupLogPollerBlockDelay = 532
@@ -554,6 +555,7 @@ PriceMax = '79.228162514264337593543950335 gether'
554555

555556
[EVM.NodePool]
556557
PollFailureThreshold = 5
558+
PollSuccessThreshold = 0
557559
PollInterval = '1m0s'
558560
SelectionMode = 'HighestHead'
559561
SyncThreshold = 13

core/services/chainlink/testdata/config-multi-chain-effective.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ SafeTagSupported = true
423423
LinkContractAddress = '0x514910771AF9Ca656af840dff83E8264EcF986CA'
424424
LogBackfillBatchSize = 1000
425425
LogPollInterval = '15s'
426+
LogPollerSkipEmptyBlocks = false
426427
LogKeepBlocksDepth = 100000
427428
LogPrunePageSize = 0
428429
BackupLogPollerBlockDelay = 100
@@ -495,6 +496,7 @@ PersistenceBatchSize = 100
495496

496497
[EVM.NodePool]
497498
PollFailureThreshold = 5
499+
PollSuccessThreshold = 0
498500
PollInterval = '10s'
499501
SelectionMode = 'HighestHead'
500502
SyncThreshold = 5
@@ -546,6 +548,7 @@ SafeTagSupported = true
546548
LinkContractAddress = '0xa36085F69e2889c224210F603D836748e7dC0088'
547549
LogBackfillBatchSize = 1000
548550
LogPollInterval = '15s'
551+
LogPollerSkipEmptyBlocks = false
549552
LogKeepBlocksDepth = 100000
550553
LogPrunePageSize = 0
551554
BackupLogPollerBlockDelay = 100
@@ -618,6 +621,7 @@ PersistenceBatchSize = 100
618621

619622
[EVM.NodePool]
620623
PollFailureThreshold = 5
624+
PollSuccessThreshold = 0
621625
PollInterval = '10s'
622626
SelectionMode = 'HighestHead'
623627
SyncThreshold = 5
@@ -664,6 +668,7 @@ SafeTagSupported = true
664668
LinkContractAddress = '0xb0897686c545045aFc77CF20eC7A532E3120E0F1'
665669
LogBackfillBatchSize = 1000
666670
LogPollInterval = '1s'
671+
LogPollerSkipEmptyBlocks = false
667672
LogKeepBlocksDepth = 100000
668673
LogPrunePageSize = 0
669674
BackupLogPollerBlockDelay = 100
@@ -735,6 +740,7 @@ PersistenceBatchSize = 100
735740

736741
[EVM.NodePool]
737742
PollFailureThreshold = 5
743+
PollSuccessThreshold = 0
738744
PollInterval = '10s'
739745
SelectionMode = 'HighestHead'
740746
SyncThreshold = 10

0 commit comments

Comments
 (0)