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

CL Node v2.9.0 release docs #1775

Merged
merged 2 commits into from
Feb 22, 2024
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
37 changes: 37 additions & 0 deletions src/content/chainlink-nodes/node-versions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,43 @@ import { Aside } from "@components"

You can find a list of release notes for Chainlink nodes in the [smartcontractkit GitHub repository](https://github.com/smartcontractkit/chainlink/releases). Docker images are available in the [Chainlink Docker hub](https://hub.docker.com/r/smartcontract/chainlink/tags).

## Changes in v2.9.0 nodes - 2024-02-22

**[v2.9.0 release notes](https://github.com/smartcontractkit/chainlink/releases/tag/v2.9.0)**

### Added

- The `chainlink health` CLI command and HTML `/health` endpoint to provide human-readable views of the underlying JSON health data.
- New job type `stream` to represent streamspecs. This job type is not yet used anywhere but will be required for Data Streams V1.
- Environment variables `CL_MEDIAN_ENV`, `CL_SOLANA_ENV`, and `CL_STARKNET_ENV` for setting environment variables in LOOP Plugins with an `.env` file.

```
echo "Foo=Bar" >> median.env
echo "Baz=Val" >> median.env
CL_MEDIAN_ENV="median.env"
```

### Fixed

- Fixed the encoding used for transactions when resending in batches.

### Removed

- `P2P.V1` is no longer supported and must not be set in the TOML configuration in order to boot. Use `P2P.V2` instead. If you are using both, `V1` can simply be removed.
- Removed `TelemetryIngress.URL` and `TelemetryIngress.ServerPubKey` from TOML configuration, these fields are replaced by `[[TelemetryIngress.Endpoints]]`:

```toml
[[TelemetryIngress.Endpoints]]
Network = '...' # e.g. EVM. Solana, Starknet, Cosmos
ChainID = '...' # e.g. 1, 5, devnet, mainnet-beta
URL = '...'
ServerPubKey = '...'
```

## Changes in v2.8.0 nodes - 2024-01-24

**[v2.8.0 release notes](https://github.com/smartcontractkit/chainlink/releases/tag/v2.8.0)**

### Added

- Added distributed tracing in the OpenTelemetry trace format to the node, currently focused at the LOOPP Plugin development effort. This includes a new set of `Tracing` TOML configurations. The default for collecting traces is off - you must explicitly enable traces and setup a valid OpenTelemetry collector. Refer to the [README](https://github.com/smartcontractkit/chainlink/blob/v2.8.0/README.md) for more details.
Expand Down Expand Up @@ -104,6 +139,8 @@ Starting in `v2.9.0`:

## Changes in v2.7.2 nodes - 2023-12-14

**[v2.7.2 release notes](https://github.com/smartcontractkit/chainlink/releases/tag/v2.7.2)**

### Fixed

- Fixed a bug that caused nodes without OCR or OCR2 enabled to fail config validation if `P2P.V2` was not explicitly disabled. With this fix, NOPs will not have to make changes to their config.
Expand Down
176 changes: 21 additions & 155 deletions src/content/chainlink-nodes/v1/node-config.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -306,8 +306,6 @@ LeaseRefreshInterval determines how often to refresh the lease lock. Also contro
[TelemetryIngress]
UniConn = true # Default
Logging = false # Default
ServerPubKey = 'test-pub-key' # Example
URL = 'https://prom.test' # Example
BufferSize = 100 # Default
MaxBatchSize = 50 # Default
SendInterval = '500ms' # Default
Expand All @@ -331,22 +329,6 @@ Logging = false # Default

Logging toggles verbose logging of the raw telemetry messages being sent.

### ServerPubKey

```toml
ServerPubKey = 'test-pub-key' # Example
```

ServerPubKey is the public key of the telemetry server. This field will be removed in a furture version

### URL

```toml
URL = 'https://prom.test' # Example
```

URL is where to send telemetry. This field will be removed in a furture version

### BufferSize

```toml
Expand Down Expand Up @@ -1383,13 +1365,7 @@ PeerID = '12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw' # Example
TraceLogging = false # Default
```

P2P supports multiple networking stack versions. You may configure `[P2P.V1]`, `[P2P.V2]`, or both to run simultaneously.
If both are configured, then for each link with another peer, V2 networking will be preferred. If V2 does not work, the link will
automatically fall back to V1. If V2 starts working again later, it will automatically be preferred again. This is useful
for migrating networks without downtime. Note that the two networking stacks _must not_ be configured to bind to the same IP/port.

Note: P2P.V1 is deprecated will be removed in the future.

P2P has a versioned networking stack. Currenly only `[P2P.V2]` is supported.
All nodes in the OCR network should share the same networking stack.

### IncomingMessageBufferSize
Expand Down Expand Up @@ -1431,135 +1407,6 @@ TraceLogging = false # Default

TraceLogging enables trace level logging.

## P2P.V1

```toml
[P2P.V1]
Enabled = false # Default
AnnounceIP = '1.2.3.4' # Example
AnnouncePort = 1337 # Example
BootstrapCheckInterval = '20s' # Default
DefaultBootstrapPeers = ['/dns4/example.com/tcp/1337/p2p/12D3KooWMHMRLQkgPbFSYHwD3NBuwtS1AmxhvKVUrcfyaGDASR4U', '/ip4/1.2.3.4/tcp/9999/p2p/12D3KooWLZ9uTC3MrvKfDpGju6RAQubiMDL7CuJcAgDRTYP7fh7R'] # Example
DHTAnnouncementCounterUserPrefix = 0 # Default
DHTLookupInterval = 10 # Default
ListenIP = '0.0.0.0' # Default
ListenPort = 1337 # Example
NewStreamTimeout = '10s' # Default
PeerstoreWriteInterval = '5m' # Default
```

P2P.V1 is deprecated and will be removed in a future version.

### Enabled

```toml
Enabled = false # Default
```

Enabled enables P2P V1.

### AnnounceIP

```toml
AnnounceIP = '1.2.3.4' # Example
```

AnnounceIP should be set as the externally reachable IP address of the Chainlink node.

### AnnouncePort

```toml
AnnouncePort = 1337 # Example
```

AnnouncePort should be set as the externally reachable port of the Chainlink node.

### BootstrapCheckInterval

```toml
BootstrapCheckInterval = '20s' # Default
```

BootstrapCheckInterval is the interval at which nodes check connections to bootstrap nodes and reconnect if any of them is lost.
Setting this to a small value would allow newly joined bootstrap nodes to get more connectivity
more quickly, which helps to make bootstrap process faster. The cost of this operation is relatively
cheap. We set this to 1 minute during our test.

### DefaultBootstrapPeers

```toml
DefaultBootstrapPeers = ['/dns4/example.com/tcp/1337/p2p/12D3KooWMHMRLQkgPbFSYHwD3NBuwtS1AmxhvKVUrcfyaGDASR4U', '/ip4/1.2.3.4/tcp/9999/p2p/12D3KooWLZ9uTC3MrvKfDpGju6RAQubiMDL7CuJcAgDRTYP7fh7R'] # Example
```

DefaultBootstrapPeers is the default set of bootstrap peers.

### DHTAnnouncementCounterUserPrefix

```toml
DHTAnnouncementCounterUserPrefix = 0 # Default
```

DHTAnnouncementCounterUserPrefix can be used to restore the node's
ability to announce its IP/port on the P2P network after a database
rollback. Make sure to only increase this value, and _never_ decrease it.
Don't use this variable unless you really know what you're doing, since you
could semi-permanently exclude your node from the P2P network by
misconfiguring it.

### DHTLookupInterval

⚠️ **_ADVANCED_**: _Do not change this setting unless you know what you are doing._

```toml
DHTLookupInterval = 10 # Default
```

DHTLookupInterval is the interval between which we do the expensive peer
lookup using DHT.

Every DHTLookupInterval failures to open a stream to a peer, we will
attempt to lookup its IP from DHT

### ListenIP

```toml
ListenIP = '0.0.0.0' # Default
```

ListenIP is the default IP address to bind to.

### ListenPort

```toml
ListenPort = 1337 # Example
```

ListenPort is the port to listen on. If left blank, the node randomly selects a different port each time it boots. It is highly recommended to set this to a static value to avoid network instability.

### NewStreamTimeout

⚠️ **_ADVANCED_**: _Do not change this setting unless you know what you are doing._

```toml
NewStreamTimeout = '10s' # Default
```

NewStreamTimeout is the maximum length of time to wait to open a
stream before we give up.
We shouldn't hit this in practice since libp2p will give up fast if
it can't get a connection, but it is here anyway as a failsafe.
Set to 0 to disable any timeout on top of what libp2p gives us by default.

### PeerstoreWriteInterval

⚠️ **_ADVANCED_**: _Do not change this setting unless you know what you are doing._

```toml
PeerstoreWriteInterval = '5m' # Default
```

PeerstoreWriteInterval controls how often the peerstore for the OCR V1 networking stack is persisted to the database.

## P2P.V2

```toml
Expand Down Expand Up @@ -2124,6 +1971,23 @@ LatestReportDeadline = "5s" # Default
LatestReportDeadline controls how long to wait for a response from the
mercury server before retrying. Setting this to zero will wait indefinitely.

## Mercury.TLS

```toml
[Mercury.TLS]
CertFile = "/path/to/client/certs.pem" # Example
```

Mercury.TLS controls client settings for when the node talks to traditional web servers or load balancers.

### CertFile

```toml
CertFile = "/path/to/client/certs.pem" # Example
```

CertFile is the path to a PEM file of trusted root certificate authority certificates

## EVM

EVM defaults depend on ChainID:
Expand Down Expand Up @@ -5453,6 +5317,7 @@ GasLimit = 14500000
AutoCreateKey = true
BlockBackfillDepth = 10
BlockBackfillSkip = false
ChainType = 'scroll'
FinalityDepth = 1
FinalityTagEnabled = false
LogBackfillBatchSize = 1000
Expand Down Expand Up @@ -5531,6 +5396,7 @@ GasLimit = 5300000
AutoCreateKey = true
BlockBackfillDepth = 10
BlockBackfillSkip = false
ChainType = 'scroll'
FinalityDepth = 1
FinalityTagEnabled = false
LogBackfillBatchSize = 1000
Expand Down Expand Up @@ -5889,7 +5755,7 @@ ChainType = 'arbitrum' # Example
```

ChainType is automatically detected from chain ID. Set this to force a certain chain type regardless of chain ID.
Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma, wemix, zksync
Available types: arbitrum, metis, optimismBedrock, xdai, celo, kroma, wemix, zksync, scroll

### FinalityDepth

Expand Down
Loading