Releases: smartcontractkit/chainlink
v2.10.0
Added
- Gas bumping logic to the
SuggestedPriceEstimator
. The bumping mechanism for this estimator refetches the price from the RPC and adds a buffer on top using the greater ofBumpPercent
andBumpMin
. - Added a new configuration field named
NodeIsSyncingEnabled
forEVM.NodePool
that will check on every reconnection to an RPC if it's syncing and should not be transitioned toAlive
state. Disabled by default. - Add preliminary support for "llo" job type (Data Streams V1)
- Add
LogPrunePageSize
parameter to the EVM configuration. This parameter controls the number of logs removed during prune phase in LogPoller. Default value is 0, which deletes all logs at once - exactly how it used to work, so it doesn't require any changes on the product's side. - Add Juels Fee Per Coin data source caching for OCR2 Feeds. Cache is time based and is turned on by default with default cache refresh of 5 minutes. Cache can be configured through pluginconfig using "juelsPerFeeCoinCacheDuration" and "juelsPerFeeCoinCacheDisabled" tags. Duration tag accepts values between "30s" and "20m" with default of "0s" that is overridden on cache startup to 5 minutes.
- Add rebalancer support for feeds manager ocr2 plugins.
Fixed
P2P.V2
is required in configuration when eitherOCR
orOCR2
are enabled. The node will fail to boot ifP2P.V2
is not enabled.- Removed unnecessary gas price warnings in gas estimators when EIP-1559 mode is enabled.
Changed
- Minimum required version of Postgres is now >= 12. Postgres 11 was EOL'd in November 2023. Added a new version check that will prevent Chainlink from running on EOL'd Postgres. If you are running Postgres <= 11 you should upgrade to the latest version. The check can be forcibly overridden by setting SKIP_PG_VERSION_CHECK=true.
- Updated the
LimitDefault
andLimitMax
configs types touint64
v2.9.1
v2.9.0
Added
chainlink health
CLI command and HTML/health
endpoint, to provide human-readable views of the underlying JSON health data.- New job type
stream
to represent streamspecs. This job type is not yet used anywhere but will be required for Data Streams V1. - Environment variables
CL_MEDIAN_ENV
,CL_SOLANA_ENV
, andCL_STARKNET_ENV
for setting environment variables in LOOP Plugins with an.env
file.echo "Foo=Bar" >> median.env echo "Baz=Val" >> median.env CL_MEDIAN_ENV="median.env"
Fixed
- Fixed the encoding used for transactions when resending in batches
Removed
P2P.V1
is no longer supported and must not be set in TOML configuration in order to boot. UseP2P.V2
instead. If you are using both,V1
can simply be removed.- Removed
TelemetryIngress.URL
andTelemetryIngress.ServerPubKey
from TOML configuration, these fields are replaced by[[TelemetryIngress.Endpoints]]
:
[[TelemetryIngress.Endpoints]]
Network = '...' # e.g. EVM. Solana, Starknet, Cosmos
ChainID = '...' # e.g. 1, 5, devnet, mainnet-beta
URL = '...'
ServerPubKey = '...'
v2.8.0
Added
- Added distributed tracing in the OpenTelemetry trace format to the node, currently focused at the LOOPP Plugin development effort. This includes a new set of
Tracing
TOML configurations. The default for collecting traces is off - you must explicitly enable traces and setup a valid OpenTelemetry collector. Refer to.github/tracing/README.md
for more details. - Added a new, optional WebServer authentication option that supports LDAP as a user identity provider. This enables user login access and user roles to be managed and provisioned via a centralized remote server that supports the LDAP protocol, which can be helpful when running multiple nodes. See the documentation for more information and config setup instructions. There is a new
[WebServer].AuthenticationMethod
config option, when set toldap
requires the new[WebServer.LDAP]
config section to be defined, see the referencedocs/core.toml
. - New prom metrics for mercury transmit queue:
mercury_transmit_queue_delete_error_count
mercury_transmit_queue_insert_error_count
mercury_transmit_queue_push_error_count
Nops should consider alerting on these. - Mercury now implements a local cache for fetching prices for fees, which ought to reduce latency and load on the mercury server, as well as increasing performance. It is enabled by default and can be configured with the following new config variables:
[Mercury] # Mercury.Cache controls settings for the price retrieval cache querying a mercury server [Mercury.Cache] # LatestReportTTL controls how "stale" we will allow a price to be e.g. if # set to 1s, a new price will always be fetched if the last result was # from 1 second ago or older. # # Another way of looking at it is such: the cache will _never_ return a # price that was queried from now-LatestReportTTL or before. # # Setting to zero disables caching entirely. LatestReportTTL = "1s" # Default # MaxStaleAge is that maximum amount of time that a value can be stale # before it is deleted from the cache (a form of garbage collection). # # This should generally be set to something much larger than # LatestReportTTL. Setting to zero disables garbage collection. MaxStaleAge = "1h" # Default # LatestReportDeadline controls how long to wait for a response from the # mercury server before retrying. Setting this to zero will wait indefinitely. LatestReportDeadline = "5s" # Default
- New prom metrics for the mercury cache:
mercury_cache_fetch_failure_count
mercury_cache_hit_count
mercury_cache_wait_count
mercury_cache_miss_count
- Added new
EVM.OCR
TOML config fieldsDeltaCOverride
andDeltaCJitterOverride
for overriding the config DeltaC. - Mercury v0.2 has improved consensus around current block that uses the most recent 5 blocks instead of only the latest one
- Two new prom metrics for mercury, nops should consider adding alerting on these:
mercury_insufficient_blocks_count
mercury_zero_blocks_count
Changed
PromReporter
no longer directly reads txm related status from the db, and instead uses the txStore API.L2Suggested
mode is now calledSuggestedPrice
- Console logs will now escape (non-whitespace) control characters
- Following EVM Pool metrics were renamed:
evm_pool_rpc_node_states
→multi_node_states
evm_pool_rpc_node_num_transitions_to_alive
→pool_rpc_node_num_transitions_to_alive
evm_pool_rpc_node_num_transitions_to_in_sync
→pool_rpc_node_num_transitions_to_in_sync
evm_pool_rpc_node_num_transitions_to_out_of_sync
→pool_rpc_node_num_transitions_to_out_of_sync
evm_pool_rpc_node_num_transitions_to_unreachable
→pool_rpc_node_num_transitions_to_unreachable
evm_pool_rpc_node_num_transitions_to_invalid_chain_id
→pool_rpc_node_num_transitions_to_invalid_chain_id
evm_pool_rpc_node_num_transitions_to_unusable
→pool_rpc_node_num_transitions_to_unusable
evm_pool_rpc_node_highest_seen_block
→pool_rpc_node_highest_seen_block
evm_pool_rpc_node_num_seen_blocks
→pool_rpc_node_num_seen_blocks
evm_pool_rpc_node_polls_total
→pool_rpc_node_polls_total
evm_pool_rpc_node_polls_failed
→pool_rpc_node_polls_failed
evm_pool_rpc_node_polls_success
→pool_rpc_node_polls_success
Removed
- Removed
Optimism2
as a supported gas estimator mode
Fixed
- Corrected Ethereum Sepolia
LinkContractAddress
to0x779877A7B0D9E8603169DdbD7836e478b4624789
- Fixed a bug that caused the Telemetry Manager to report incorrect health
Upcoming Required Configuration Changes
Starting in v2.9.0
:
TelemetryIngress.URL
andTelemetryIngress.ServerPubKey
will no longer be allowed. Any TOML configuration that sets this fields will prevent the node from booting. These fields will be replaced by[[TelemetryIngress.Endpoints]]
P2P.V1
will no longer be supported and must not be set in TOML configuration in order to boot. UseP2P.V2
instead. If you are using both,V1
can simply be removed.
v2.7.2
v2.7.1
v2.7.0
Added
- Added new configuration field named
LeaseDuration
forEVM.NodePool
that will periodically check if internal subscriptions are connected to the "best" (as defined by theSelectionMode
) node and switch to it if necessary. Setting this value to0s
will disable this feature. - Added multichain telemetry support. Each network/chainID pair must be configured using the new fields:
[[TelemetryIngress.Endpoints]]
Network = '...' # e.g. EVM. Solana, Starknet, Cosmos
ChainID = '...' # e.g. 1, 5, devnet, mainnet-beta
URL = '...'
ServerPubKey = '...'
These will eventually replace TelemetryIngress.URL
and TelemetryIngress.ServerPubKey
. Setting TelemetryIngress.URL
and TelemetryIngress.ServerPubKey
alongside [[TelemetryIngress.Endpoints]]
will prevent the node from booting. Only one way of configuring telemetry endpoints is supported.
-
Added bridge_name label to
pipeline_tasks_total_finished
prometheus metric. This should make it easier to see directly what bridge was failing out from the CL NODE perspective. -
LogPoller will now use finality tags to dynamically determine finality on evm chains if
UseFinalityTags=true
, rather than the fixedFinalityDepth
specified in toml config
Changed
P2P.V1
is now disabled (Enabled = false
) by default. It must be explicitly enabled withtrue
to be used. However, it is deprecated and will be removed in the future.P2P.V2
is now enabled (Enabled = true
) by default.
Upcoming Required Configuration Changes
Starting in v2.9.0
:
TelemetryIngress.URL
andTelemetryIngress.ServerPubKey
will no longer be allowed. Any TOML configuration that sets this fields will prevent the node from booting. These fields will be replaced by[[TelemetryIngress.Endpoints]]
P2P.V1
will no longer be supported and must not be set in TOML configuration in order to boot. UseP2P.V2
instead. If you are using both,V1
can simply be removed.
Removed
- Removed the ability to set a next nonce value for an address through CLI
v2.6.0
Added
- Simple password use in production builds is now disallowed - nodes with this configuration will not boot and will not pass config validation.
- Helper migrations function for injecting env vars into goose migrations. This was done to inject chainID into evm chain id not null in specs migrations.
- OCR2 jobs now support querying the state contract for configurations if it has been deployed. This can help on chains such as BSC which "manage" state bloat by arbitrarily deleting logs older than a certain date. In this case, if logs are missing we will query the contract directly and retrieve the latest config from chain state. Chainlink will perform no extra RPC calls unless the job spec has this feature explicitly enabled. On chains that require this, nops may see an increase in RPC calls. This can be enabled for OCR2 jobs by specifying
ConfigContractAddress
in the relay config TOML.
Removed
- Removed support for sending telemetry to the deprecated Explorer service. All nodes will have to remove
Explorer
related keys from TOML configuration and env vars. - Removed default evmChainID logic where evmChainID was implicitly injected into the jobspecs based on node EVM chainID toml configuration. All newly created jobs(that have evmChainID field) will have to explicitly define evmChainID in the jobspec.
- Removed keyset migration that migrated v1 keys to v2 keys. All keys should've been migrated by now, and we don't permit creation of new v1 keys anymore
All nodes will have to remove the following secret configurations:
Explorer.AccessKey
Explorer.Secret
All nodes will have to remove the following configuration field: ExplorerURL
Fixed
- Unauthenticated users executing CLI commands previously generated a confusing error log, which is now removed:
[ERROR] Error in transaction, rolling back: session missing or expired, please login again pg/transaction.go:118
- Fixed a bug that was preventing job runs to be displayed when the job
chainID
was disabled. chainlink txs evm create
returns a transaction hash for the attempted transaction in the CLI. Previously only the sender, recipient andunstarted
state were returned.- Fixed a bug where
evmChainId
is requested instead ofid
orevm-chain-id
in CLI error verbatim - Fixed a bug that would cause the node to shut down while performing backup
- Fixed health checker to include more services in the prometheus
health
metric and HTTP/health
endpoint
v2.5.0
Upcoming Required Configuration Change
- Starting in 2.6.0, chainlink nodes will no longer allow insecure configuration for production builds. Any TOML configuration that sets the following line will fail validation checks in
node start
ornode validate
:
AllowSimplePasswords=true
- To migrate on production builds, update the database password set in Database.URL to be 16 - 50 characters without leading or trailing whitespace. URI parsing rules apply to the chosen password - refer to RFC 3986 for special character escape rules.
Added
- Various Functions improvements
v2.4.0
Fixed
- Updated
v2/keys/evm
andv2/keys/eth
routes to return 400 and 404 status codes where appropriate. Previously 500s were returned when requested resources were not found or client requests could not be parsed. - Fixed withdrawing ETH from CL node for EIP1559 enabled chains. Previously would error out unless validation was overridden with
allowHigherAmounts
.
Added
- Added the ability to specify and merge fields from multiple secrets files. Overrides of fields and keys are not allowed.
Upcoming Required Configuration Change
- Starting in 2.6.0, chainlink nodes will no longer allow insecure configuration for production builds. Any TOML configuration that sets the following line will fail validation checks in
node start
ornode validate
:
AllowSimplePasswords=true
- To migrate on production builds, update the database password set in Database.URL to be 16 - 50 characters without leading or trailing whitespace. URI parsing rules apply to the chosen password - refer to RFC 3986 for special character escape rules.