chainlink
chainlink copied to clipboard
capability registry offchain
High level arch diagram of the offchain registry system is below, with some example flows from the top down.
- Onchain Capability Registry: source of truth of all DONs, capability configurations, etc.
- CRSyncer: this is an offchain component that is responsible solely for replicating the onchain capability registry state offchain. It syncs the full state. This is because some downstream components (e.g a Workflow Registry) may need more info than others (e.g a Capability Launcher).
- Local: this is an offchain component that implements the
capreg.Localinterface (name TBD). Basically, this consumes all state updates from the CRSyncer and decides what to do with it. For example, a capability launcher may have to instruct some capabilities to update themselves due to new configuration, or a workflow registry might need to update optimal capability routes.
flowchart TD
D[Onchain CapabilityRegistry] --> |Full sync on tick| A
A[CRSyncer] -->|Call sync fn| B(CapabilityLauncher)
A[CRSyncer] -->|Call sync fn| C(WorkflowRegistry)
A[CRSyncer] -->|Call sync fn| F(SomeOtherConsumer)
B[CapabilityLauncher] -->|Call start fn| G(CCIP)
B[CapabilityLauncher] -->|Call start fn| H(Transmission)
G[CCIP] -->|Launch New Oracle| I(Ethereum)
G[CCIP] -->|Launch New Oracle| K(Arbitrum)
G[CCIP] -->|Launch New Oracle| L(Optimism)
H[Transmission] -->|Launch New Transmitter| M(Polygon)
C[WorkflowRegistry] -->|Capability routing| WE(Workflow Engine)
I see you updated files related to core. Please run pnpm changeset in the root directory to add a changeset as well as in the text include at least one of the following tags:
-
#addedFor any new functionality added. -
#breaking_changeFor any functionality that requires manual action for the node to boot. -
#bugfixFor bug fixes. -
#changedFor any change to the existing functionality. -
#db_updateFor any feature that introduces updates to database schema. -
#deprecation_noticeFor any upcoming deprecation functionality. -
#internalFor changesets that need to be excluded from the final changelog. -
#nopsFor any feature that is NOP facing and needs to be in the official Release Notes for the release. -
#removedFor any functionality/config that is removed. -
#updatedFor any functionality that is updated. -
#wipFor any change that is not ready yet and external communication about it should be held off till it is feature complete.
Quality Gate failed
Failed conditions
C Reliability Rating on New Code (required ≥ A)
See analysis details on SonarQube
Catch issues before they fail your Quality Gate with our IDE extension
SonarLint