From 619ad2fdee4eadab74eb82967841f737580a03b3 Mon Sep 17 00:00:00 2001 From: Thomas Hodges Date: Fri, 2 Oct 2026 10:53:45 -0500 Subject: [PATCH 1/3] Align node operator docs with the current node The operator pages still described the v2.66.0 config, removed job types, and legacy environment variables. Match them to chainlink develop ec8baa5296. Direct request, flux monitor, webhook, workflow, and keeper jobs do not start. OCR and OCR2 job types start only when their Enabled flags are true. Postgres 18 is supported. The config reference is regenerated from the node CONFIG.md and SECRETS.md. --- src/content/any-api/getting-started.mdx | 2 +- .../chainlink-nodes/configuring-nodes.mdx | 2 +- .../chainlink-nodes/contracts/addresses.mdx | 4 + .../chainlink-nodes/contracts/forwarder.mdx | 17 + .../chainlink-nodes/contracts/operator.mdx | 5 + .../contracts/operatorfactory.mdx | 6 + .../building-external-initiators.mdx | 6 + .../external-initiators-in-nodes.mdx | 6 + .../external-initiators-introduction.mdx | 6 + .../job-specs/direct-request-existing-job.mdx | 7 + .../job-specs/direct-request-get-bool.mdx | 7 + .../job-specs/direct-request-get-bytes.mdx | 7 + .../job-specs/direct-request-get-int256.mdx | 7 + .../job-specs/direct-request-get-string.mdx | 7 +- .../job-specs/direct-request-get-uint256.mdx | 7 + .../job-specs/multi-word-job.mdx | 7 + src/content/chainlink-nodes/llms-full.txt | 1592 ++++++++++++++--- .../chainlink-nodes/oracle-jobs/all-jobs.mdx | 431 ++++- .../chainlink-nodes/oracle-jobs/all-tasks.mdx | 353 ++++ .../chainlink-nodes/oracle-jobs/jobs.mdx | 38 +- .../oracle-jobs/migration-v1-v2.mdx | 8 + .../chainlink-nodes/oracle-jobs/tasks.mdx | 4 +- .../resources/best-security-practices.mdx | 12 +- .../connecting-to-a-remote-database.mdx | 9 +- .../resources/enabling-https-connections.mdx | 29 +- .../evm-performance-configuration.mdx | 164 +- .../resources/miscellaneous.mdx | 4 +- .../performing-system-maintenance.mdx | 30 +- .../resources/requirements.mdx | 2 +- .../resources/run-an-ethereum-client.mdx | 30 +- .../v1/fulfilling-requests.mdx | 9 +- .../chainlink-nodes/v1/node-config.mdx | 251 ++- .../chainlink-nodes/v1/roles-and-access.mdx | 109 +- .../v1/running-a-chainlink-node.mdx | 2 +- .../chainlink-nodes/v1/secrets-config.mdx | 2 +- .../chainlink-nodes/v1/using-forwarder.mdx | 25 +- src/pages/chainlink-nodes.astro | 2 +- 37 files changed, 2717 insertions(+), 492 deletions(-) diff --git a/src/content/any-api/getting-started.mdx b/src/content/any-api/getting-started.mdx index 6c57b2aa72b..9e7e19b1a7f 100644 --- a/src/content/any-api/getting-started.mdx +++ b/src/content/any-api/getting-started.mdx @@ -27,7 +27,7 @@ Before creating any code, you should understand how Oracle jobs can get data onc ## What are jobs? -Chainlink nodes require [**Jobs**](/chainlink-nodes/oracle-jobs/jobs) to do anything useful. In the case of a Request and Receive job, the [Direct Request](/chainlink-nodes/oracle-jobs/all-jobs#direct-request-jobs) job monitors the blockchain for a request from a smart contract. Once it catches a request, it runs the tasks (both core and external adapters) that the job is configured to run and eventually returns the response to the requesting contract. +Chainlink nodes require [**Jobs**](/chainlink-nodes/oracle-jobs/jobs) to do anything useful. In the case of a Request and Receive job, a job watches the blockchain for a request from a smart contract. Once it catches a request, it runs the tasks (both core and external adapters) that the job is configured to run and eventually returns the response to the requesting contract. The legacy [Direct Request](/chainlink-nodes/oracle-jobs/all-jobs#direct-request-jobs) job type is not run by this node, so a `type = "directrequest"` spec does not start; see [Job Types](/chainlink-nodes/oracle-jobs/jobs) for the job types the node supports. ## What are tasks? diff --git a/src/content/chainlink-nodes/configuring-nodes.mdx b/src/content/chainlink-nodes/configuring-nodes.mdx index 6c8ed77e60f..0b29bcad718 100644 --- a/src/content/chainlink-nodes/configuring-nodes.mdx +++ b/src/content/chainlink-nodes/configuring-nodes.mdx @@ -119,7 +119,7 @@ Test your node to verify that it works as intended. If you are using a VPS, open ## Using multiple config files -You can use multiple config and secrets files. The config settings from each file are applied in the order that you specify when you run your node. Duplicated fields override values specified in earlier config files. This allows you to create a common config that applies to many nodes with specific configs for nodes that need unique configuration settings. Specifying multiple secrets files is invalid. +You can use multiple config and secrets files. The config settings from each file are applied in the order that you specify when you run your node. Duplicated fields override values specified in earlier config files. This allows you to create a common config that applies to many nodes with specific configs for nodes that need unique configuration settings. Secrets files are merged instead of overridden: you can specify several `-secrets` flags, but specifying the same field in more than one secrets file is an error. To specify multiple config files, add additional `-config` flags to the `docker run` command: diff --git a/src/content/chainlink-nodes/contracts/addresses.mdx b/src/content/chainlink-nodes/contracts/addresses.mdx index 972fa9b2759..54818acbc7a 100644 --- a/src/content/chainlink-nodes/contracts/addresses.mdx +++ b/src/content/chainlink-nodes/contracts/addresses.mdx @@ -6,6 +6,10 @@ title: "Contract addresses" import { Address } from "@components" + + This page lists the [operator factory](/chainlink-nodes/contracts/operatorfactory) addresses for different networks. ## Ethereum diff --git a/src/content/chainlink-nodes/contracts/forwarder.mdx b/src/content/chainlink-nodes/contracts/forwarder.mdx index 538e5e296f3..647b59d7607 100644 --- a/src/content/chainlink-nodes/contracts/forwarder.mdx +++ b/src/content/chainlink-nodes/contracts/forwarder.mdx @@ -60,6 +60,23 @@ _Only callable by an authorized sender_ | to | address | address | | data | bytes | to forward | +#### multiForward + +```solidity +function multiForward(address[] tos, bytes[] datas) external +``` + +Forward multiple calls to other contracts in a multicall style. + +_Only callable by an authorized sender_ + +##### Parameters + +| Name | Type | Description | +| ----- | --------- | --------------------------------------------------------- | +| tos | address[] | An array of addresses to forward the calls to | +| datas | bytes[] | An array of data to forward to each corresponding address | + #### ownerForward ```solidity diff --git a/src/content/chainlink-nodes/contracts/operator.mdx b/src/content/chainlink-nodes/contracts/operator.mdx index 715b2bf3fec..01c2284556c 100644 --- a/src/content/chainlink-nodes/contracts/operator.mdx +++ b/src/content/chainlink-nodes/contracts/operator.mdx @@ -6,6 +6,11 @@ title: "Operator" import { Aside } from "@components" + + Oracles must deploy an onchain contract to handle requests made through the LINK token (Read [Basic Request Model](/architecture-overview/architecture-request-model) to learn more). When the _Basic Request_ model was introduced, node operators had to deploy the legacy [Oracle contract](https://github.com/smartcontractkit/chainlink/blob/contracts-v1.0.0/contracts/src/v0.4/Oracle.sol). However, these come with some limitations, and soon, we introduced [operator contracts](https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/operatorforwarder/Operator.sol). diff --git a/src/content/chainlink-nodes/contracts/operatorfactory.mdx b/src/content/chainlink-nodes/contracts/operatorfactory.mdx index cb25646c5e0..f22313e1b1c 100644 --- a/src/content/chainlink-nodes/contracts/operatorfactory.mdx +++ b/src/content/chainlink-nodes/contracts/operatorfactory.mdx @@ -4,6 +4,12 @@ date: Last Modified title: "Operator Factory" --- +import { Aside } from "@components" + + + The [factory](https://www.youtube.com/watch?v=Q1zZo4O_Ong) design pattern is a well know programming pattern: Rather than compiling and creating instances of a contract yourself, the _factory_ does it for you. As explained in the [operator guide](/chainlink-nodes/contracts/operator), the `OperatorFactory` contract comes with these benefits: diff --git a/src/content/chainlink-nodes/external-initiators/building-external-initiators.mdx b/src/content/chainlink-nodes/external-initiators/building-external-initiators.mdx index 36a349e2126..f9d2b6a29a3 100644 --- a/src/content/chainlink-nodes/external-initiators/building-external-initiators.mdx +++ b/src/content/chainlink-nodes/external-initiators/building-external-initiators.mdx @@ -8,6 +8,12 @@ whatsnext: import { Aside } from "@components" + + An external initiator can trigger a run for any webhook job that it has been linked to. The URL for triggering a run is such: diff --git a/src/content/chainlink-nodes/external-initiators/external-initiators-in-nodes.mdx b/src/content/chainlink-nodes/external-initiators/external-initiators-in-nodes.mdx index a41f0631b84..dc08826f439 100644 --- a/src/content/chainlink-nodes/external-initiators/external-initiators-in-nodes.mdx +++ b/src/content/chainlink-nodes/external-initiators/external-initiators-in-nodes.mdx @@ -6,6 +6,12 @@ title: "Adding External Initiators to Nodes" import { Aside } from "@components" + +