Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 221 additions & 0 deletions src/content/ccip/llms-full.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

This page stands up an EVM CCV in order, using the project's two starter kits: the
[on-chain contracts kit](https://github.com/smartcontractkit/chainlink-ccv-starter-kit-contracts) for the
Expand Down Expand Up @@ -165,3 +166,5 @@ Checkpoint: a blocked-address send logs the reason string and never executes.

Your cell (the verifier and aggregator) is deployed, the aggregator is exposed, and the signer is registered
on chain. Prove it end to end in [Test your setup](/ccip/ccv-starter-kit/evm/test-your-setup).

<CcipCommon callout="ccvStarterKitDisclaimer" />
3 changes: 3 additions & 0 deletions src/content/ccip/v2/ccv-starter-kit/evm/test-your-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

Your cell (the verifier and aggregator) is not onboarded yet, so the default executor cannot fetch your
attestation and a message sits at `UNTOUCHED`. Prove the verifier and aggregator work by sending a message that
Expand Down Expand Up @@ -91,3 +92,5 @@ curl -s https://api.ccip.chain.link/v2/messages/<messageId> | jq -r '.status'
</Aside>

Checkpoint: the message reached the destination. The cell is ready for onboarding.

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

The policy hook is how you apply your own verification logic to every message your CCV signs: your compliance,
AML, sanctions, or risk screening. It is an HTTPS endpoint that you build and run; the verifier calls it with
Expand Down Expand Up @@ -84,3 +85,5 @@ returning a 5xx: both count as a failed call against the 7-day retry window, not

Put a short case reference in `reason`, never customer data. The verifier logs and archives it (truncated at 256
characters) and never signs it.

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

A CCV cell is one aggregator plus one verifier. Both read their credentials from secrets you provide when you
install the chart. This page explains what those secrets contain, which backends the chart supports for
Expand Down Expand Up @@ -122,3 +123,5 @@ has every field.
</li>
</ul>
</Aside>

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

The aggregator is the only component you expose to the internet; the verifier and everything else in the cell
stay private. It serves gRPC, which runs over HTTP/2, so the connection must stay HTTP/2 from the internet all
Expand Down Expand Up @@ -75,3 +76,5 @@ aggregator's readiness endpoint instead, `/health/ready` on port 8080:
The load balancer is still probing the default `GET /` against the gRPC port and marking the backend unhealthy.
Applying the `HealthCheckPolicy` clears it.
</Aside>

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ whatsnext:
"Reference": "/ccip/ccv-starter-kit/reference"
---

import CcipCommon from "@features/ccip/CcipCommon.astro"

A single cell is for learning. In production you run a committee of cells, each fully independent (its own
Postgres, secrets, and key custody, never shared), so that no single failure or compromise takes the committee
down. The off-chain kit's
Expand Down Expand Up @@ -47,3 +49,5 @@ Each cell needs its own RPC providers. If two cells read a chain through the sam
malicious provider shows both of them the same wrong chain state, and they can sign the same bad message. Use
multiple independent providers per chain with failover, and do not share a provider across cells. See the
[RPC requirements](/resources/network-integration#standardized-rpcs-with-slas).

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { Aside } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

The verifier signs message hashes with one key. You choose where that key lives with `keystoreBackend`:

Expand Down Expand Up @@ -94,3 +95,5 @@ holds a long-lived credential.
`kms:GetPublicKey`. See the AWS KMS
[permissions reference](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)
and [key policies](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html).

<CcipCommon callout="ccvStarterKitDisclaimer" />
2 changes: 2 additions & 0 deletions src/content/ccip/v2/ccv-starter-kit/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,5 @@ The kit adds two operator capabilities on top of the core cell:
Links to both kits' books, the chart values, and the concept pages.
</DocCard>
</DocCards>

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ whatsnext:
"Reference": "/ccip/ccv-starter-kit/reference"
---

import CcipCommon from "@features/ccip/CcipCommon.astro"

The verifier and aggregator export metrics and write logs. This page covers how to collect those metrics, what
to watch, and how to read the verifier's startup logs. The
[policy hook](/ccip/ccv-starter-kit/how-to/add-a-custom-policy-hook) is a service you run, so collect its logs
Expand Down Expand Up @@ -59,3 +61,5 @@ a real fault, and check first that the aggregator is running and listening on `:
In steady state with `finality_depth: 0`, the verifier waits for each source message to reach chain finality
before it attests, and logs `Healthy` while it waits. A log showing only `Healthy` is a verifier waiting for
finality, not a stuck one.

<CcipCommon callout="ccvStarterKitDisclaimer" />
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { CopyText } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

Onboarding registers your committee's aggregator endpoints with the CCIP indexer. Once you are onboarded, the
indexer reads your attestations and the default executor runs your messages automatically. It is optional,
Expand Down Expand Up @@ -57,3 +58,5 @@ your verifier entry instead of `UNKNOWN`. Keep your aggregators reachable: the i
your aggregators stay unreachable past that window, it stops and the default executor never runs those messages.
The attestations are still in your aggregators, so recover those messages the same way you tested: execute them
yourself.

<CcipCommon callout="ccvStarterKitDisclaimer" />
4 changes: 4 additions & 0 deletions src/content/ccip/v2/ccv-starter-kit/operate-day-2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ whatsnext:
"Reference": "/ccip/ccv-starter-kit/reference"
---

import CcipCommon from "@features/ccip/CcipCommon.astro"

Day-2 work splits in two: on-chain changes to your verifier contracts, run through the on-chain kit's `make`
targets, and off-chain operations on the running cells (your Helm releases). This page maps what those
operations are and where each is documented; the kits carry the exact commands.
Expand Down Expand Up @@ -103,3 +105,5 @@ The rows are ordered by where they surface, from deploy through onboarding.
| `policy_unavailable` rising, messages not signed | Policy-hook endpoint down or timing out | [Logging and monitoring](/ccip/ccv-starter-kit/logging-and-monitoring) |
| `Dropping task - policy hook returned FAIL` in the log | Your endpoint rejected the message | [Add a custom policy hook](/ccip/ccv-starter-kit/how-to/add-a-custom-policy-hook) |
| Onboarded, but a message was never executed | All aggregators unreachable for over an hour | [Onboard to the CCIP indexer](/ccip/ccv-starter-kit/onboard-to-the-indexer#after-onboarding) |

<CcipCommon callout="ccvStarterKitDisclaimer" />
3 changes: 3 additions & 0 deletions src/content/ccip/v2/ccv-starter-kit/prerequisites.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import ToolsUtilitiesGrid from "@components/ToolsUtilitiesGrid/ToolsUtilitiesGrid.astro"
import CcipCommon from "@features/ccip/CcipCommon.astro"

The CCV Starter Kit is a brownfield kit: it deploys into a Kubernetes cluster and stateful services you already
run, rather than provisioning new infrastructure. You bring the cluster, the database, the secret store, and
Expand Down Expand Up @@ -172,3 +173,5 @@ providers, no rate limits, and the performance SLAs. Cells in a committee must n
The off-chain kit ships a `local/` folder for experimentation only: a docker-compose stack you can run anywhere
Docker and docker-compose are available. Use it to try the cell out, not to run it for real. Production is
bring-your-own for every dependency above.

<CcipCommon callout="ccvStarterKitDisclaimer" />
3 changes: 3 additions & 0 deletions src/content/ccip/v2/ccv-starter-kit/reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ whatsnext:
---

import { CopyText, DocCards, DocCard } from "@components"
import CcipCommon from "@features/ccip/CcipCommon.astro"

The two kits, the concept pages, the tools, and the CCIP resources this guide links, collected in one place.

Expand Down Expand Up @@ -81,3 +82,5 @@ GitHub. The chart sets a default image tag; override it in your chart values to
## Support

Questions, or want to run a CCV? Email <CopyText text="clusersupport@smartcontract.com" />.

<CcipCommon callout="ccvStarterKitDisclaimer" />
3 changes: 3 additions & 0 deletions src/features/ccip/CcipCommon.astro
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import AdvancedPoolHooksComponent from "./AdvancedPoolHooks.mdx"
import FtfSupportTutorials from "./FtfSupportTutorials.mdx"
import ConceptualDisclaimerComponent from "./ConceptualDisclaimer.mdx"
import CcvDefaultVerifierPostureComponent from "./CcvDefaultVerifierPosture.mdx"
import CcvStarterKitDisclaimerComponent from "./CcvStarterKitDisclaimer.mdx"

export type Props = {
callout?:
Expand Down Expand Up @@ -69,6 +70,7 @@ export type Props = {
| "ftfSupportTutorials"
| "conceptualDisclaimer"
| "ccvDefaultVerifierPosture"
| "ccvStarterKitDisclaimer"
}
const { callout } = Astro.props as Props
---
Expand Down Expand Up @@ -107,3 +109,4 @@ const { callout } = Astro.props as Props
{callout === "ftfSupportTutorials" && <FtfSupportTutorials />}
{callout === "conceptualDisclaimer" && <ConceptualDisclaimerComponent />}
{callout === "ccvDefaultVerifierPosture" && <CcvDefaultVerifierPostureComponent />}
{callout === "ccvStarterKitDisclaimer" && <CcvStarterKitDisclaimerComponent />}
18 changes: 18 additions & 0 deletions src/features/ccip/CcvStarterKitDisclaimer.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Aside } from "@components"

<Aside type="caution" title="Disclaimer">
Support and maintenance of this CCV Starter Kit does not guarantee the security, availability, or operation of any
deployment, which may vary depending on its configuration. The code in the CCV Starter Kit, including examples,
templates, and starter kit components (the “Codebase”), and any code examples or deployment instructions in this
documentation are provided “AS IS” and “AS AVAILABLE”, may not have been audited, and may omit checks, validations or
error handling. You are solely responsible for reviewing, testing, auditing and securing any implementation before
deploying it in a production environment. The security, availability, and operation of any deployment of the Codebase
varies depending on its configuration. You should not rely on the Codebase or this documentation for production use
without first conducting your own technical, engineering, and security review. Please review the Chainlink Foundation
Terms of Service, which provide important information and disclosures. By accessing or using the CCV Starter Kit or
this documentation, including when using the CCV Starter Kit to deploy or operate a CCV, you acknowledge and agree
that your access to and use of the CCV Starter Kit and documentation is subject to the [Chainlink Foundation Terms of
Service](https://chain.link/terms) (the “Terms of Service”), as amended from time to time. Nothing in this notice
limits the permissions granted under the applicable software license for any code included in the CCV Starter Kit or
this documentation.
</Aside>
Loading