-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core/capabilities/ccip: fix oracle startup logic (#1348)
Ticket: https://smartcontract-it.atlassian.net/browse/CCIP-3078 We can't start bootstrap oracles and plugin oracles on the same chainlink node. The main reason for this is that we have a singleton `SingletonPeerWrapper` object which manages all libocr peers for the application as a whole. Since this singleton only works with a single peer ID, it creates a single OCR peer, and all streams are created using this OCR peer. Since streams must have unique config digests for the same peer object, running a bootstrap oracle and a plugin oracle for the same config digest will fail because the stream will not be created. In order to remedy this we match what will be the case in production, which is: * Separate bootstrap node, with a peer ID that is either part of the OCR committee or not (most likely the latter, in order to avoid exporting / importing the P2P key from one node's DB to another). This bootstrap node will have to have a DNS name and be publicly accessible over the internet in order to be accessed by all nodes in the committee, at least initially, to facilitate peer discovery. * Plugin node that is more locked down, i.e no public DNS name required. To enable this, in this PR we: * Tweak the `launcher` component to launch bootstrap nodes only or plugin nodes only, and not both. This does NOT rely on the on-chain bootstrap P2P IDs that are set in the OCR config. This field will be removed in subsequent PRs. * Tweak the `OracleCreator` interface to support the above operation Follow ups: * Remove the `bootstrapP2PIds` field from the OCR config in CCIPConfig.sol
- Loading branch information
Showing
16 changed files
with
550 additions
and
1,129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.