10.5.0
Pre-releaseCardano Node version 10.5.0 introduces several key improvements and fixes across the Cardano ecosystem. The Node now exposes an LMDB MaxReaders configuration option, while Consensus includes optimizations for Ouroboros Genesis, drops GHC 8.10 support, and removes deprecated features such as SlotForgeTimeOracle. Network changes reduce the default peer connection targets, add configurable egress buffering, and fix synchronisation issues. The Cardano Node CLI standardizes JSON/YAML outputs, enables offline Plutus cost calculations, and removes legacy commands. Meanwhile, the Cardano Node API enhances governance credential handling, deprecates outdated functions, and resolves auto-balancing bugs.
This is a pre-release version of the node - it is not recommended for Mainnet use at this point in time.
Benchmarking reports relevant to the 10.5.0 release can be found in this post on Cardano Updates.
Breaking changes
- Removed
legacy governancecommand group: usecompatibleinstead - Deleted
governance...-pollcommands
Known issues
- There is a known bug when starting from a Byron snapshot. The node will reject the snapshot and replay the chain from the start. However the time it takes to replay byron is small, and the chance of users starting the node from a Byron snapshot is also low. Therefore the issue will be fixed in 10.6.0.
- An unsupported socket option is set by the diffusion layer on a Windows deployment which results in
WSAENOPROTOOPT(bad protocol option) error returned by the syscall leading to connection tear down.
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 (M1, M2, M3 or M4) processor
- 24GB of RAM when running with the
InMemorybackend, 8GB when running with theOnDiskbackend (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; Mint 20, 21, 21.1, 21.2, 21.3, 22, 22.1; Debian 11, 12)
- Windows 64-bit (10, 11)
- MacOS 10.15, 11 (Big Sur), 12 (Monterey), 13 (Ventura), 14 (Sonoma), 15 (Sequioa)
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
- Cardano Node documentation
- For details about changes to configuration for
UTxO-HDplease refer to the Consensus docs on UTxO-HD - The getting started guide may also be helpful for general queries.
- Networking options and related changes are listed on the P2P section
- For details about changes to configuration for
- Cardano CLI
- Internal API docs for ledger, consensus and network
- Compatibility matrix
Sign-off
| Role | Approval |
|---|---|
| Technical Steering Committee (Intersect) | 🟢 |
| Product Committee (Intersect) | 🟢 |
| Test Engineer | N/A |
| Performance Engineer | 🟢 |
| Site Reliability Engineer | N/A |
| Release Engineer | 🟢 |
Legend
- 🟢 - signed / agreed / supported
- 🟥 - not agreed / unsupported
Changelogs
Node
- Expose
MaxReadersconfig option for LMDB. - Set Preview and Preprod network configurations to use Ouroboros Genesis mode by default.
- Set node configuration's
LedgerDBQueryBatchSizeto match the UTXO-HD migration guide default.
Tracing
Consensus
- Bug fix in Ouroboros Genesis. Added the
GsmStateargument to theregisterClientfunction for the ChainSync Jumping optimization. If the node is in theGSM.CaughtUpstate, new peers now immediately disengage from CSJ. - Drop GHC 8.10 support.
- Use
HeaderWithTimefor the ChainSync candidates. - Remove
SlotForgeTimeOracleand its use in the BlockFetch client interface, as we no longer translate time in the BlockFetch client. - Rename
GetLedgerConfigtoDebugLedgerConfig, indicating that it is a debug query, meaning that compatibility across node versions is not guaranteed. Please let us know if you want to rely on this query and would benefit from proper backwards-compatibility guarantees. - Removed reference to deleted
NodeToNodeV_13fromSupportedNetworkProtocolVersion.
Ledger
- No changes
Network
- Removed support for legacy node-to-node protocol version 13 for clients unable to cross past Chang HF.
- To diminish socket usage, the default peer selection target for established outbound connections was lowered from 40 to 30 in deadline/caught up node. Also lowered the same parameter from 50 to 40 for a node syncing in Genesis mode.
- These peer selection targets are also propagated to the default values used by
cardano-node, default mainnet configuration file; cardano-book will be updated for the next release (rather than a pre-release).
- These peer selection targets are also propagated to the default values used by
- Implemented mux egress buffering via configurable polling parameter (
EgressPollIntervalkey in the node configuration file) which lets operators tune latency vs. network efficiency to their preference. The default value is 0 [s] effectively disabling this feature, but values up to 0.200 (200 ms) are currently supported, which trades network latency for expected gains in network efficiency under high load conditions where many downstream peers are served. See IntersectMBO/ouroboros-network#5113 - Fixed churn regression introduced in node 10.3 affecting a node syncing in Genesis mode.
- The default value of
PeerSharingin the node has changed totrue; this follows the published configuration, which has been using peer sharing for a while now.
CLI
Release Notes for cardano-cli (10.9.0.0 to 10.11.0.0)
Main changes
-
Standardized output format parameters and output across the
cardano-cliand added support for new formats, especiallyyamlandjson:-
New
--output-yamloption for the following commands:conway query ledger-stateconway query ref-script-sizeconway query stake-distributionconway query stake-poolsconway query utxoconway text-view decode-cborconway transaction calculate-min-feeconway transaction txidlatest query ledger-statelatest query ref-script-sizelatest query stake-distributionlatest query stake-poolslatest query utxolatest text-view decode-cborlatest transaction calculate-min-feelatest transaction txidquery ledger-statequery stake-distributionquery stake-poolsquery utxo
(compatible)
PR 1192 -
New
--output-jsonand--output-yamlflags for the following commands:conway query committee-stateconway query constitutionconway query drep-stake-distributionconway query drep-stateconway query future-pparamsconway query gov-stateconway query proposalsconway query ratify-statelatest query committee-statelatest query constitutionlatest query drep-stake-distributionlatest query drep-statelatest query future-pparamslatest query gov-statelatest query proposalslatest query ratify-state
(compatible)
PR 1188 -
The following commands have been updated to take output format:
conway query kes-period-infoconway query ledger-peer-snapshotconway query pool-paramsconway query pool-stateconway query protocol-parametersconway query spo-stake-distributionconway query stake-address-infoconway query stake-pool-default-voteconway query stake-snapshotconway query tipconway query tx-mempoolconway query tx-mempool infoconway query tx-mempool next-txconway query tx-mempool tx-existslatest query kes-period-infolatest query ledger-peer-snapshotlatest query pool-paramslatest query pool-statelatest query protocol-parameterslatest query spo-stake-distributionlatest query stake-address-infolatest query stake-pool-default-votelatest query stake-snapshotlatest query tiplatest query tx-mempoollatest query tx-mempool infolatest query tx-mempool next-txlatest query tx-mempool tx-existsquery kes-period-infoquery ledger-peer-snapshotquery pool-paramsquery pool-statequery protocol-parametersquery stake-address-infoquery stake-snapshotquery tipquery tx-mempoolquery tx-mempool infoquery tx-mempool next-txquery tx-mempool tx-exists
(compatible, maintenance)
PR 1180 -
Rolled out
--output-jsonand--output-yamlto various commands:compatible conway governance action viewcompatible conway governance vote viewconway governance action viewconway governance vote viewconway query leadership-scheduledebug transaction viewlatest governance action viewlatest governance vote viewlatest query leadership-schedulequery leadership-schedule
Ensured we encode json the same way in each command.
(breaking, maintenance)
PR 1175 -
The
--output-cborflag has been split to--output-cbor-binand--output-cbor-hex.
Thequery protocol-statecommand now takes output format flags:--output-cbor-bin--output-cbor-hex--output-json--output-yaml
(breaking, refactoring)
PR 1183
-
Standardised output format for
query ledger-peer-snapshotcommand
Supports--output-json,--output-json-prettyand--output-yaml
(breaking)
PR 1172 -
Standardised output for
query ledger-statecmd
(breaking, maintenance)
PR 1168 -
Standardised output for
text-view decode-cborcommand
(breaking, refactoring)
PR 1164 -
Incorporated CIP-129
(feature, compatible)
PR 1087
-
-
Added build for Windows as an artefact for releases
(feature)
PR 1182A mingw32 generated build for Windows is now available for every release in the releases page of GitHub. The build consists of a zip packing the
cardano-cliexecutable and the libraries it requires. This can be run without the need of using WSL.
-
Modified Plutus cost calculation command to allow the user to supply offline data instead of querying the node
(feature)
PR 1079Era dependent command
transaction calculate-plutus-script-costnow has been split into two optionsonlineandoffline. Theonlinemode works the same as it did. Theofflinemode allows users to manually provide the necessary information and does not require connecting to a running node to estimate the execution costs of Plutus contracts.To support this functionality, we have also added a new query to gather
EraHistory, needed by this command,query era-history. This query needs to still be run against a running node, but the information can be reused at least until there is a hard-fork.
Other features
-
Added support for stake pool extended keys
(feature)
PR 1091 -
Wrap CLI help based on terminal width
(feature)
PR 1152
Breaking changes
-
Removed
legacy governancecommand group
Usecompatibleinstead
(breaking)
PR 1194 -
Deleted
governance...-pollcommands:compatible babbage governance answer-pollcompatible babbage governance create-pollcompatible babbage governance verify-poll
(breaking, maintenance)
PR 1178
Bug fixes
-
Changed default era value from
babbagetoconway
(breaking, bugfix)
PR 1193 -
Simplified code by not using
QueryStakeAddressInfoCmdArgsunnecessarily.
Also fixedquery spo-stake-distributioncommand so that the output format flags are respected.
(refactoring, bugfix)
PR 1184 -
Fixed incomplete pattern match error in transaction build using byron address
(bugfix)
PR 1167
API
Release Notes for cardano-api (10.15.0.0 to 10.16.3.0)
Main changes
-
Added support for stake pool extended keys
(feature)
PR 781 -
Implemented
Cip129class. This type class captures the bech32 encoding modification that allows identification of various governance credentials and governance action ids.
(feature)
PR 778
Other features
-
Exposed
substituteExecutionUnits&handleExUnitsErrorsfromCardano.Api.Internal.Feesmodule
(compatible)
PR 820 -
Added
toMapsynonym forunUTxO,resolveTxInsynonym forlookupfunctions toCardano.Api.Tx.UTxO.
(compatible)
PR 832 -
Added
IsCardanoEraconstraint toEraCommonConstraints
(compatible)
PR 846 -
Added
IsShelleyBasedEraconstraint toEraCommonConstraints
(compatible)
PR 849 -
Added an instance for
Convert ConwayEraOnwards Era
(feature)
PR 848 -
Added constraints to
EraCommonConstraints
(compatible, refactoring)
PR 831 -
Added
Prettyinstance toUrl.
(compatible)
PR 839 -
Added
MonoTraversable,MonoFoldable,MonoFunctorto theUTxOtype
(compatible)
PR 845
Breaking changes
-
Deprecated
makeShelleyTransactionBody
(breaking, refactoring)
PR 835 -
Allowed providing of actual datum for reference inputs in
TxInsReference.
(feature, breaking)
PR 814 -
Deprecated
shelleyToAlonzoEraToShelleyToBabbageEra,alonzoEraOnwardsToMaryEraOnwards,babbageEraOnwardsToMaryEraOnwards,babbageEraOnwardsToAlonzoEraOnwards.- Added
asTypefor easier obtaining ofHasTypeProxyproxies - Removed unneded
AsType afunctions' arguments - Removed some
ByronEra-related dead code.
(breaking, refactoring)
PR 825
- Added
-
Removed Babbage era from
ExperimentalAPI together withbabbageEraOnwardsToErafunction.
(breaking)
PR 828 -
Improved autobalancing errors when change has no lovelace
checkMinUTxOValuehas its arguments flipped.
(breaking, refactoring)
PR 816
Bug fixes
- Fixed an autobalancing error needlessly thrown when there is no change in the transaction. Added property test for autobalancing.
(bugfix, test)
PR 829
Submit API
Plutus
- No changes
Detailed Changelogs
Individual packages' changelogs
Package changelogs| Package | Version | Changelog |
|---|---|---|
| Win32-network | 0.2.0.1 | ChangeLog.md |
| base-deriving-via | 0.1.0.2 | CHANGELOG.md |
| byron-spec-chain | 1.0.1.0 | CHANGELOG.md |
| byron-spec-ledger | 1.1.0.0 | CHANGELOG.md |
| cardano-api | 10.16.3.0 | CHANGELOG.md |
| cardano-binary | 1.7.1.0 | CHANGELOG.md |
| cardano-cli | 10.11.0.0 | CHANGELOG.md |
| cardano-crypto-class | 2.2.2.0 | CHANGELOG.md |
| cardano-crypto-praos | 2.2.1.0 | CHANGELOG.md |
| cardano-crypto-test | 1.6.0.0 | CHANGELOG.md |
| cardano-crypto-tests | 2.2.1.0 | CHANGELOG.md |
| cardano-crypto-wrapper | 1.6.0.0 | CHANGELOG.md |
| cardano-data | 1.2.4.0 | CHANGELOG.md |
| cardano-git-rev | 0.2.2.0 | |
| cardano-ledger-allegra | 1.7.0.0 | CHANGELOG.md |
| cardano-ledger-alonzo | 1.13.0.0 | CHANGELOG.md |
| cardano-ledger-alonzo-test | 1.3.1.0 | CHANGELOG.md |
| cardano-ledger-api | 1.11.0.0 | CHANGELOG.md |
| cardano-ledger-babbage | 1.11.0.0 | CHANGELOG.md |
| cardano-ledger-babbage-test | 1.3.1.0 | CHANGELOG.md |
| cardano-ledger-binary | 1.6.0.0 | CHANGELOG.md |
| cardano-ledger-byron | 1.1.0.0 | CHANGELOG.md |
| cardano-ledger-byron-test | 1.5.2.1 | CHANGELOG.md |
| cardano-ledger-conway | 1.19.0.0 | CHANGELOG.md |
| cardano-ledger-conway-test | 1.3.1.0 | CHANGELOG.md |
| cardano-ledger-core | 1.17.0.0 | CHANGELOG.md |
| cardano-ledger-mary | 1.8.0.0 | CHANGELOG.md |
| cardano-ledger-shelley | 1.16.0.0 | CHANGELOG.md |
| cardano-ledger-shelley-ma-test | 1.3.0.0 | CHANGELOG.md |
| cardano-ledger-shelley-test | 1.6.0.0 | CHANGELOG.md |
| cardano-lmdb | 0.4.0.3 | CHANGELOG.md |
| cardano-lmdb-simple | 0.8.0.1 | CHANGELOG.md |
| cardano-ping | 0.8.0.1 | CHANGELOG.md |
| cardano-prelude | 0.2.1.0 | ChangeLog.md |
| cardano-prelude-test | 0.1.0.5 | |
| cardano-protocol-tpraos | 1.4.0.0 | CHANGELOG.md |
| cardano-slotting | 0.2.0.0 | CHANGELOG.md |
| cardano-strict-containers | 0.1.4.0 | CHANGELOG.md |
| contra-tracer | 0.1.0.1 | |
| cuddle | 0.3.2.1 | CHANGELOG.md |
| diff-containers | 1.3.0.0 | CHANGELOG.md |
| ekg-forward | 0.9 | CHANGELOG.md |
| fingertree-rm | 1.0.0.4 | CHANGELOG.md |
| heapwords | 0.1.0.2 | CHANGELOG.md |
| iohk-monitoring | 0.2.1.1 | |
| lobemo-backend-aggregation | 0.1.0.0 | |
| lobemo-backend-ekg | 0.2.0.0 | |
| lobemo-backend-monitoring | 0.1.0.0 | |
| lobemo-backend-trace-forwarder | 0.1.0.0 | |
| lobemo-scribe-systemd | 0.1.0.0 | |
| measures | 0.1.0.2 | CHANGELOG.md |
| monoidal-synchronisation | 0.1.0.6 | CHANGELOG.md |
| network-mux | 0.8.0.1 | CHANGELOG.md |
| non-integral | 1.0.0.0 | CHANGELOG.md |
| optparse-applicative-fork | 0.18.1.0 | CHANGELOG.md |
| ouroboros-consensus | 0.27.0.0 | CHANGELOG.md |
| ouroboros-consensus-cardano | 0.25.1.0 | CHANGELOG.md |
| ouroboros-consensus-diffusion | 0.23.0.0 | CHANGELOG.md |
| ouroboros-consensus-protocol | 0.12.0.0 | CHANGELOG.md |
| ouroboros-network | 0.21.2.0 | CHANGELOG.md |
| ouroboros-network-api | 0.14.0.0 | CHANGELOG.md |
| ouroboros-network-framework | 0.18.0.1 | CHANGELOG.md |
| ouroboros-network-mock | 0.1.1.2 | CHANGELOG.md |
| ouroboros-network-protocols | 0.14.0.1 | CHANGELOG.md |
| ouroboros-network-testing | 0.8.1.0 | CHANGELOG.md |
| plutus-core | 1.45.0.0 | CHANGELOG.md |
| plutus-ledger-api | 1.45.0.0 | CHANGELOG.md |
| plutus-tx | 1.45.0.0 | CHANGELOG.md |
| plutus-tx-plugin | 1.45.0.0 | CHANGELOG.md |
| prettyprinter-configurable | 1.36.0.0 | |
| quickcheck-monoids | 0.1.0.1 | CHANGELOG.md |
| set-algebra | 1.1.0.3 | CHANGELOG.md |
| small-steps | 1.1.1.0 | CHANGELOG.md |
| sop-extras | 0.4.0.0 | CHANGELOG.md |
| strict-checked-vars | 0.2.0.0 | CHANGELOG.md |
| strict-sop-core | 0.1.3.0 | CHANGELOG.md |
| tracer-transformers | 0.1.0.4 | |
| typed-protocols | 0.3.0.0 | CHANGELOG.md |
| typed-protocols-cborg | 0.3.0.0 | CHANGELOG.md |
| typed-protocols-examples | 0.5.0.0 | |
| typed-protocols-stateful | 0.3.0.0 | |
| typed-protocols-stateful-cborg | 0.3.0.0 | ChangeLog.md |
| validation-selective | 0.2.0.0.0.0.0.0.1 | CHANGELOG.md |
| vector-map | 1.1.0.0 | CHANGELOG.md |