github IntersectMBO/cardano-node 11.2.1

pre-releaseone hour ago

Release Notes

Node version 11.2.1 is a pre-release version of cardano-node that is not yet recommended for use on mainnet. It is a maintenance release on top of 11.2.0. It updates to ouroboros-consensus 5.4, cardano-api 11.12 and cardano-cli 11.7, which together reduce the node's memory use around ledger snapshots, and it raises the protocol version the node advertises in block headers to 11.3.

For the full set of 11.2 changes (the new cardano-config configuration format, gRPC over HTTP/2, the removal of node-to-client versions below NodeToClientV_23, and more), see the 11.2.0 release notes.

Highlights:

  • Lower memory use. Writing a ledger snapshot no longer temporarily grows live memory by about the snapshot's size. The ChainDB also no longer keeps the genesis ledger state alive, which saves several hundred MiB on networks with a large genesis UTxO or delegation set.
  • Faster snapshots while syncing. Until the node has first caught up, ledger snapshots are written as soon as they are requested. The randomised snapshot delay applies only after that.
  • LSM is supported for block production. The UTxO-HD LSM has been confirmed to meet Praos performance guarantees for block production.
  • Network configurations: the maximum ledger snapshot delay (Storage.LedgerDB.Snapshots.MaxDelay) is capped at 1 hour on all networks (down from 6 hours on mainnet and preprod).
  • The block header protocol version is bumped from 11.1 to 11.3.
  • The node no longer crashes when writing traces to stdout fails (for example a closed pipe or an encoding error).

It is recommended to test the LSM backend in a safe environment before deployment in a block producer, and to allow at least 8GB of RAM.

Known issues

Breaking changes

There are no breaking changes for node operators in 11.2.1.

Breaking changes introduced in 11.2.0

These apply when upgrading from 11.1.x. See the 11.2.0 release notes for details.

  • Configuration files: the published mainnet-config.json/.yaml (and other network configs) are in the cardano-config envelope format and are not readable by pre-11.2 nodes. Flat configurations remain supported by 11.2.1; use cardano-node config migrate to convert one.
  • Docker: CARDANO_CONFIG_JSON_MERGE is a plain deep merge, so a merge document written for the flat shape silently does nothing against an enveloped config. Nest keys under Configuration.<Section> (e.g. {"Configuration":{"HermodTracing":{"TraceOptions":…}}}); see nix/docker/README.md.
  • Node-to-client: NodeToClientV_16 – NodeToClientV_22 were removed, along with the queries only they could reach: GetProposedPParamsUpdates, GetStakeDistribution (use GetStakeDistribution2) and GetPoolDistr (use GetPoolDistr2).
  • NixOS service: blsKeys (added in 11.1) is replaced by a single blsKey; multiple keys go in one file as a JSON array of text envelopes.
  • Tracing: log consumers should note the tracing changes listed in the 11.2.0 release notes: the mempool "tx" field is now hex CBOR, the DelegAccountAlreadyRegistered failure was renamed, there are new namespaces, and the trace forwarding config changed.

Release Benchmarks

System Testing

Technical Specification

Minimum System Requirements
  • An Intel or AMD x86 processor with two or more cores, at 1.6GHz or faster (2GHz or faster for a stake pool or relay)
  • Or, for MacOS, an Apple Silicon processor
  • 24GB of RAM when running with the InMemory backend, 8GB when running with the OnDisk backend (pending confirmation)
  • 300GB of free storage (350GB recommended for future growth)
Platforms
  • Linux 64-bit (Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS, 26.04 LTS; Mint 20, 21, 21.1, 21.2, 21.3, 22, 22.1, 22.2; Debian 11, 12, 13)
  • Windows 64-bit (10, 11)
  • MacOS 10.15, 11 (Big Sur), 12 (Monterey), 13 (Ventura), 14 (Sonoma), 15 (Sequoia), 26 (Tahoe)
GHC/Cabal supported versions
  • GHC 9.6
  • Cabal 3.8/3.12
Supported roles
Platform Block Production Relay Client (Desktop)
Linux 🟢 🟢 🟢
Windows 🟥 🟥 🟢
MacOS 🟥 🟥 🟢
Downloads

Documentation

Sign-off

Role Approval
Technical Steering Committee (Intersect) 🟢
Product Committee (Intersect) 🟢
Test Engineer N/A
Performance Engineer N/A
Site Reliability Engineer 🟢
Release Engineer 🟢
Legend
  • 🟢 - signed / agreed / supported
  • 🟥 - not agreed / unsupported

Changelogs

cardano-node
  • The protocol version the node advertises in block headers is bumped from 11.1 to 11.3. (#6767)
  • Network configurations: the maximum randomised ledger snapshot delay (Storage.LedgerDB.Snapshots.MaxDelay) is capped at one hour (3600s). On mainnet and preprod it was 6 hours (21600s); on preview and sanchonet it was 4320s. MinDelay and Interval are unchanged. (#6767, iohk-nix#624)
  • Updated to ouroboros-consensus 5.4, cardano-api 11.12 and cardano-cli 11.7. See the Consensus section for the memory improvements. (#6767)
cardano-tracer

No changes.

cardano-submit-api
  • Updated to cardano-api 11.12 and cardano-cli 11.7. (#6767)
cardano-testnet
  • New status command that reports the state of a testnet created with cardano-testnet, in human-readable form or as JSON with --json. The JSON output has a schema, checked in CI. (#6741)
  • Starting a testnet can no longer hang forever while waiting for a node to start. (#6750)
  • The --output-dir help now gives the real default (./testnet) and says the directory must not already contain a testnet. (#6752)
  • Updated to cardano-api 11.12 and cardano-cli 11.7. (#6767)
cardano-cli

Updated to cardano-cli 11.7.0.0:

  • New dijkstra stake-pool bls-registration-certificate offline: takes an existing pool registration certificate and writes a new one with only the BLS key and its proof of possession replaced. Use it to register a pool's BLS key for the first time or rotate it, without re-entering pool parameters. Accepts certificates from the Conway era and from earlier cardano-cli versions.
  • New debug certificate view prints a certificate file as JSON or YAML. debug certificate view and debug transaction view read standard input when the file path is -.
  • debug transaction view uses new keys for certificates (breaking for scripts that read them): pool registrations show pool id, vrf key hash, reward account (bech32) and margin (a fraction); DRep keys are spelled DRep, with credential key DRep credential; committee certificates show every credential and anchor.
  • transaction view prints sub-transaction data.
  • governance action create-protocol-parameters-update has options for the new Dijkstra parameters: minimum pool margin, maximum pledge leverage, the Peras parameters, and reference-input costs. --no-max-pledge-leverage and --no-peras-bootstrap-round propose unsetting them.
  • Dijkstra sub-transactions: new witness and assemble commands create key witnesses separately and combine them with an unsigned sub-transaction, rejecting witnesses whose signatures do not match.
  • Dijkstra transaction build, build-raw and build-estimate:
    • support native and Plutus V4 script guards (inline or reference);
    • support CIP-159 account balance intervals (--account-balance-interval, --starting-account-balance-interval).
cardano-api

Updated to cardano-api 11.12.0.0:

  • Fixed calcMinFeeRecursive failing with FeeCalculationDidNotConverge when the change output sits near a CBOR integer width boundary (such as 2^32 lovelace). The fee it returns can be up to 4 * txFeePerByte above the minimum (176 lovelace on mainnet).
  • Fixed reading JSON simple scripts, including guards, in the Dijkstra era, which used to crash.
  • IntroducedInDijkstraPParams covers minimum pool margin, maximum pledge leverage, the Peras parameters and reference-input costs.
  • Requires ouroboros-consensus 5.4, cardano-ledger-core 1.23 and cardano-ledger-alonzo 1.18.
cardano-rpc

No changes.

Network

No changes.

Consensus

Updated from ouroboros-consensus 5.2.0.0 to 5.4.0.0:

  • The ChainDB no longer keeps its startup arguments reachable for its whole lifetime. Until now, the Peras voting view (never used while Peras is disabled) kept the genesis ledger state and its tables alive, costing several hundred MiB of live data on networks with a large genesis UTxO or delegation set.
  • Writing a ledger snapshot no longer temporarily grows live memory by about the snapshot's size. The snapshot request queue used to keep the request, and with it the serialised snapshot, reachable until the write finished.
  • Until the node has first caught up, ledger snapshots are written as soon as they are requested. The randomised snapshot delay (MinDelay/MaxDelay) applies only once the node has been caught up, even if it later falls behind again. While syncing, a delayed snapshot kept an outdated ledger state alive for the whole delay.
  • TraceForgingMempoolSnapshot is emitted after the forging thread has computed the mempool snapshot, not before, so its duration is no longer counted as block forging time.
Ledger

Updated to cardano-ledger-core 1.23, cardano-ledger-alonzo 1.18 and cardano-ledger-dijkstra 0.5. These contain library API changes only (Plutus cost model handling in PlutusWithContext, new Inject AlonzoContextError constraints), with no change in ledger rules or behaviour. The other ledger packages were rebuilt with updated bounds only.

Plutus

No changes.

Tracing

Updated to trace-dispatcher 2.13.3:

  • An IO error while writing traces to stdout, such as an encoding failure or a closed pipe, no longer crashes the node. The error is reported on stderr, and stdout tracing resumes once the condition clears. (hermod-tracing#22)
  • Lower per-message tracing overhead: configured tracers build their per-namespace tracers once per configuration instead of once per message, and namespace lookups no longer allocate.

Detailed Changelogs

Details

Package changelogs

Package Version Changelog
Win32-network 0.2.0.1 ChangeLog.md
acts-generic 0.1.1.0 CHANGELOG.md
base-deriving-via 0.1.0.2 CHANGELOG.md
basement 0.0.16
byron-spec-chain 1.0.2.0 CHANGELOG.md
byron-spec-ledger 1.1.1.0 CHANGELOG.md
cardano-addresses 4.0.8 ChangeLog.md
cardano-api 11.12.0.0 CHANGELOG.md
cardano-base 0.1.7.1 CHANGELOG.md
cardano-binary 1.9.1.0 CHANGELOG.md
cardano-cli 11.7.0.0 CHANGELOG.md
cardano-config 2.2.3.0 CHANGELOG.md
cardano-crypto 1.4.0
cardano-crypto-class 2.6.0.0 CHANGELOG.md
cardano-crypto-leios 0.3.0.0 CHANGELOG.md
cardano-crypto-praos 2.2.4.0 CHANGELOG.md
cardano-crypto-wrapper 1.8.0.0 CHANGELOG.md
cardano-data 1.4.0.0 CHANGELOG.md
cardano-diffusion 1.3.0.1 CHANGELOG.md
cardano-git-rev 0.2.2.1
cardano-keys 11.0.0.0 CHANGELOG.md
cardano-ledger-allegra 1.10.2.0 CHANGELOG.md
cardano-ledger-alonzo 1.18.0.0 CHANGELOG.md
cardano-ledger-api 1.15.0.0 CHANGELOG.md
cardano-ledger-babbage 1.15.0.1 CHANGELOG.md
cardano-ledger-binary 1.10.1.0 CHANGELOG.md
cardano-ledger-byron 1.3.0.0 CHANGELOG.md
cardano-ledger-conway 1.24.0.1 CHANGELOG.md
cardano-ledger-core 1.23.0.0 CHANGELOG.md
cardano-ledger-dijkstra 0.5.0.0 CHANGELOG.md
cardano-ledger-mary 1.11.1.1 CHANGELOG.md
cardano-ledger-shelley 1.20.0.1 CHANGELOG.md
cardano-ledger-shelley-test 1.10.0.0 CHANGELOG.md
cardano-prelude 0.2.2.0 ChangeLog.md
cardano-prelude-test 0.1.0.5
cardano-protocol 0.2.0.1 CHANGELOG.md
cardano-protocol-tpraos 1.6.0.1 CHANGELOG.md
cardano-rpc 11.5.0.0 CHANGELOG.md
cardano-slotting 0.2.2.0 CHANGELOG.md
cardano-strict-containers 0.1.6.0 CHANGELOG.md
digest 0.0.2.1.0.0.0.1 CHANGELOG.md
dmq-node 0.7.2.2 CHANGELOG.md
ekg-core 0.1.2.0
ekg-forward 1.4 CHANGELOG.md
ekg-json 0.1.1.1
ekg-wai 0.1.2.0
foundation 0.0.30
fs-api 0.4.0.0 CHANGELOG.md
fs-sim 0.5.0.1 CHANGELOG.md
heapwords 0.1.0.2 CHANGELOG.md
hedgehog 1.7 CHANGELOG.md
hedgehog-extras 0.10.1.0 CHANGELOG.md
io-classes 1.8.0.1 CHANGELOG.md
io-sim 1.8.0.1 CHANGELOG.md
kes-agent 1.4.0.0 CHANGELOG.md
libsystemd-journal 1.4.6.0 Changelog.md
measures 0.1.0.3 CHANGELOG.md
monoidal-synchronisation 0.1.0.8 CHANGELOG.md
network-mux 1.0.0.0 CHANGELOG.md
non-integral 1.0.0.0 CHANGELOG.md
optparse-applicative 0.19.0.0 CHANGELOG.md
optparse-applicative-fork 0.19.0.0 CHANGELOG.md
ouroboros-consensus 5.4.0.0 CHANGELOG.md
ouroboros-network 2.0.0.0 CHANGELOG.md
plutus-core 1.71.0.0 CHANGELOG.md
plutus-ledger-api 1.71.0.0 CHANGELOG.md
plutus-metatheory 1.71.0.0 CHANGELOG.md
plutus-tx 1.71.0.0 CHANGELOG.md
plutus-tx-plugin 1.71.0.0 CHANGELOG.md
prettyprinter-configurable 1.36.0.0
quickcheck-monoids 0.1.1.0 CHANGELOG.md
servant-server 0.20.3.0 CHANGELOG.md
small-steps 1.2.0.0 CHANGELOG.md
snappy-c 0.1.3 CHANGELOG.md
sop-extras 0.4.2.0 CHANGELOG.md
streaming 0.2.4.0 changelog.md
strict-checked-vars 0.2.1.0 CHANGELOG.md
strict-sop-core 0.1.4.0 CHANGELOG.md
trace-dispatcher 2.13.3 CHANGELOG.md
trace-resources 0.2.4 CHANGELOG.md
validation-selective 0.2.0.0.0.0.0.0.1 CHANGELOG.md
vector-algorithms 0.9.1.0 CHANGELOG.md
vector-map 1.2.1.0 CHANGELOG.md

Don't miss a new cardano-node release

NewReleases is sending notifications on new releases.