Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] Changeset Release Preview - v2.18.0 #1

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

github-actions[bot]
Copy link

This PR is a preview of the changes that will be included in the next release. Please do not merge this PR.

Changelog Chainlink Core

2.18.0 - PREVIEW

nops

  • #14364 5d96be59a2 Thanks @huangzhen1997! - Make websocket URL WSURL for EVM.Nodes optional, and apply logic so that:
    • If WS URL was not provided, SubscribeFilterLogs should fail with an explicit error
    • If WS URL was not provided LogBroadcaster should be disabled
      #nops

added

changed

  • #13386 4b21c32e25 Thanks @DylanTinianov! - Implemented new chain agnostic MultiNode design along with the corresponding EVM implementation. The chain agnostic components enable Multinode to be integrated with Solana and other non-EVM chains. Previously the Multinode was coupled with EVM specific actions, and was called to execute these actions direclty. With this change, the MultiNode's responsibility has been simplified to focus on RPC selection along with performing health checks. Chain specific actions will instead be executed on the RPC directly after being selected by MultiNode. The Chain Agnostic MultiNode provides improved reliability and metrics for all chain integrations using it.
    These are following main components:
    Node: Common component which wraps an RPC with state information, health checks, and an alive loop to handle state changes along with maintaining chain information.
    RPCClient: Chain-specific RPC wrapper which implements required interface for MultiNode along with any chain-specific functionality needed.
    MultiNode: Perform RPCClient selection and performs health checks on all RPCs.
    TransactionSender: Chain agnostic component which broadcasts transactions to all healthy RPCs and aggregates results. A chain-specific error classifier must be implemented.
    MultiNode picks the "best" RPC based on one of the configurable criteria:

    • Priority defined in the config.
    • Highest latest block.
    • Round-robin within the same priority level (or using other configurable selection algorithms)
      Benefits of Chain Agnostic MultiNode:
      Reliability: Improved RPC reliability scaleable to all chains
      Maintainability: Can apply changes across all chain integrations through the use of common code
      Extendability: Can add new health checks, RPC selection and ranking algorithms
      Integration Speed: Much faster to integrate MultiNode with new chains
      Reduced Generics: Significantly less bulky code!
      #updated #changed #internal
  • #14635 ee1d6e3b1a Thanks @dhaidashenko! - Hedera chain type: broadcast transactions only to a single healthy RPC instead of all healthy RPCs to avoid redundant relay fees. #changed

removed

updated

  • #14765 ca31213970 Thanks @graham-chainlink! - #updated support aptos creation in chain config UI

  • #14718 16499e5cb7 Thanks @graham-chainlink! - #updated introduce network field on chain resolver

  • #13386 4b21c32e25 Thanks @DylanTinianov! - Implemented new chain agnostic MultiNode design along with the corresponding EVM implementation. The chain agnostic components enable Multinode to be integrated with Solana and other non-EVM chains. Previously the Multinode was coupled with EVM specific actions, and was called to execute these actions direclty. With this change, the MultiNode's responsibility has been simplified to focus on RPC selection along with performing health checks. Chain specific actions will instead be executed on the RPC directly after being selected by MultiNode. The Chain Agnostic MultiNode provides improved reliability and metrics for all chain integrations using it.
    These are following main components:
    Node: Common component which wraps an RPC with state information, health checks, and an alive loop to handle state changes along with maintaining chain information.
    RPCClient: Chain-specific RPC wrapper which implements required interface for MultiNode along with any chain-specific functionality needed.
    MultiNode: Perform RPCClient selection and performs health checks on all RPCs.
    TransactionSender: Chain agnostic component which broadcasts transactions to all healthy RPCs and aggregates results. A chain-specific error classifier must be implemented.
    MultiNode picks the "best" RPC based on one of the configurable criteria:

    • Priority defined in the config.
    • Highest latest block.
    • Round-robin within the same priority level (or using other configurable selection algorithms)
      Benefits of Chain Agnostic MultiNode:
      Reliability: Improved RPC reliability scaleable to all chains
      Maintainability: Can apply changes across all chain integrations through the use of common code
      Extendability: Can add new health checks, RPC selection and ranking algorithms
      Integration Speed: Much faster to integrate MultiNode with new chains
      Reduced Generics: Significantly less bulky code!
      #updated #changed #internal
  • #14509 dbd42db9b8 Thanks @huangzhen1997! - Remove finality depth as the default value for minConfirmation for tx jobs.
    Update the sql query for fetching pending callback transactions:
    if minConfirmation is not null, we check difference if the current block - tx block > minConfirmation
    else we check if the tx block is <= finalizedBlock
    #updated

  • #14375 816b25c001 Thanks @vyzaldysanchez! - #updated Workflows Engine loop refactored

  • #14693 03df8989e8 Thanks @ChrisAmora! - #updated Consume Feeds Manager WSRPC protos from Chainlink Protos Repository.

  • #14720 4f8c55eb01 Thanks @vyzaldysanchez! - #updated Refactors store_db

  • #14530 2c16f46311 Thanks @Madalosso! - #updated default config values for FinalityTagEnabled to match CCIP configs

wip

bugfix

  • #14912 bb6a20a882 Thanks @cedric-cordenier! - Use correct OCR2OracleSpecID when setting up RequestedRoundTracker #bugfix

  • #14670 ad29b19612 Thanks @dimriou! - Fix BHE PriceMax bug #bugfix

  • #14685 c5e9f932ca Thanks @huangzhen1997! - The findBroadcastedAttempts in detectStuckTransactionsHeuristic can returns uninitialized struct that potentially cause nil pointer error. Changed the return type of findBroadcastedAttempts to be pointers and added nil pointer check. #bugfix

  • #14835 468fc4cd35 Thanks @ogtownsend! - Add DA oracle type to arbitrum and zksync configs #bugfix

  • #14534 de268e98b8 Thanks @huangzhen1997! - - register polling subscription to avoid subscription leaking when rpc client gets closed.

    • add a temporary special treatment for SubscribeNewHead before we replace it with SubscribeToHeads. Add a goroutine that forwards new head from poller to caller channel.
    • fix a deadlock in poller, by using a new lock for subs slice in rpc client.
      #bugfix

internal

  • #14696 072bfb667a Thanks @0xsuryansh! - #internal add getNextDonId() and getNodes(bytes32[] calldata p2pIds) in CapabilitiesRegistry and define interface for node info
    PR issue: CCIP-3569

  • #14602 002296d9db Thanks @dimriou! - Update dynamic fee types to align with geth #internal

  • #14622 c654322ace Thanks @ilija42! - #internal Add support for data word detail manual input in Contract Reader for searching through EVM log event data with Contract Reader QueryKey ValueComparators.

  • #14857 b8ae4adcfc Thanks @dimriou! - FHE empty reward fix #internal

  • #14702 ca9fb64356 Thanks @dimriou! - Return ErrConnectivity error when halting bumping #internal

  • #14511 8fa9a67dfc Thanks @silaslenihan! - #internal Updated QueryKey to be able to do advanced queries on contract event data words

  • #14697 4c3e7ec8c3 Thanks @dimriou! - Fix TXM flakey test #internal

  • #14620 09145baa9b Thanks @Farber98! - add address bytes to string modifier to chainReader. #internal

  • #13386 4b21c32e25 Thanks @DylanTinianov! - Implemented new chain agnostic MultiNode design along with the corresponding EVM implementation. The chain agnostic components enable Multinode to be integrated with Solana and other non-EVM chains. Previously the Multinode was coupled with EVM specific actions, and was called to execute these actions direclty. With this change, the MultiNode's responsibility has been simplified to focus on RPC selection along with performing health checks. Chain specific actions will instead be executed on the RPC directly after being selected by MultiNode. The Chain Agnostic MultiNode provides improved reliability and metrics for all chain integrations using it.
    These are following main components:
    Node: Common component which wraps an RPC with state information, health checks, and an alive loop to handle state changes along with maintaining chain information.
    RPCClient: Chain-specific RPC wrapper which implements required interface for MultiNode along with any chain-specific functionality needed.
    MultiNode: Perform RPCClient selection and performs health checks on all RPCs.
    TransactionSender: Chain agnostic component which broadcasts transactions to all healthy RPCs and aggregates results. A chain-specific error classifier must be implemented.
    MultiNode picks the "best" RPC based on one of the configurable criteria:

    • Priority defined in the config.
    • Highest latest block.
    • Round-robin within the same priority level (or using other configurable selection algorithms)
      Benefits of Chain Agnostic MultiNode:
      Reliability: Improved RPC reliability scaleable to all chains
      Maintainability: Can apply changes across all chain integrations through the use of common code
      Extendability: Can add new health checks, RPC selection and ranking algorithms
      Integration Speed: Much faster to integrate MultiNode with new chains
      Reduced Generics: Significantly less bulky code!
      #updated #changed #internal
  • #14789 5dfb13071e Thanks @0xnogo! - #internal: Adding test for rmn home reader

  • #14496 25c469880f Thanks @cedric-cordenier! - Add compute capability #internal

  • #14855 7cd384b945 Thanks @dimriou! - Rename SequenceAt to NonceAt #internal

  • #14631 ad9398a8fd Thanks @martin-cll! - Fix for Mercury transmitter decoding reports of a different codec version #internal

  • #14798 26e22eb6cf Thanks @0xsuryansh! - #internal Update gethwrapper for FeeQuoter, Internal.sol comment and byte calc update

  • #14719 de9ce674c6 Thanks @amit-momin! - Set chainType in chain client #internal

  • #14603 19690b0c44 Thanks @mateusz-sekara! - Implementing evm specific token data encoder for CCIP #internal

  • #14607 eec0ff9469 Thanks @winder! - #internal update ccip chainreader config.

  • #14694 e9b3397f46 Thanks @mateusz-sekara! - Adjustments for usdc reader tests #internal

  • #14624 be774f00a9 Thanks @mateusz-sekara! - Registering USDC/CCTP events in the ChainReader during oracle creation #internal

  • #14575 1b41e69cca Thanks @DylanTinianov! - Bump chainlink-solana and fix tests #internal

  • #14668 dacb6a8c70 Thanks @winder! - #internal ccip contract reader config.

  • #14814 f708ebb094 Thanks @DylanTinianov! - Fix testWSServer issue causing panic in testing #internal

untagged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant