9.2.0
Node version 9.2.0
provides a number of improvements and bug fixes, including script-based DRep Support in the update certificate
CLI command and an improved transaction view
CLI command. The tx-submission
mini-protocol now starts with a short delay. The node also includes governance-related ledger state queries, improved Plutus debug functionality, a new method to compute over-the-wire CBOR encoded transaction size, plus fixes to DRep registration expiration and the DRep threshold for ratifying NoConfidence
votes, and new GetProposals
and GetRatifyState
consensus queries. Finally, it includes a major rework of the new tracing metrics naming schema.
Benchmarking reports relevant to the 9.2.0
release can be found in this post on Cardano Updates.
Breaking Changes
There are number of breaking changes to the API: valueFromList
, valueToList
, createAndValidateTransactionBody
and IsList Value
are deprecated, BalancedTxBody
now returns UnsignedTx
and the default value for Treasury Value
is now set to Nothing
instead of 0
.
Known Issues
None.
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 or M3) processor
- 24GB of RAM
- 200GB of free storage (250GB recommended for future growth)
Platforms
- Linux 64-bit (Ubuntu 18.04 LTS, 20.04 LTS; Mint 19.3, 20; Debian 10.3)
- Windows 64-bit (8.1, 10, 11)
- MacOS 10.13, 10.14, 10.15, 11
GHC/Cabal supported versions
- GHC 8.10.7/Cabal 3.8.1.0
Supported roles
Platform | Block Production | Relay | Client (Desktop) |
---|---|---|---|
Linux | 🟢 | 🟢 | 🟢 |
Windows | 🟥 | 🟥 | 🟢 |
MacOS | 🟥 | 🟥 | 🟢 |
Downloads
Documentation
- Cardano Node documentation
- Cardano CLI
- Internal API docs for ledger, consensus and network
- Compatibility matrix
Sign off
Role | Approval |
---|---|
Cardano Head of Engineering | 🟢 |
Cardano Head of Product | 🟢 |
Test Engineer | 🟢 |
Performance Engineer | 🟢 |
Site Reliability Engineer | 🟢 |
Release Engineer | 🟢 |
Changelogs
Node
Configuration Enhancements
Database Path Customization
- Separate Paths for Volatile and Immutable Databases: Users can now specify paths for volatile and immutable databases separately.
Command Line Options:
Users can specify database paths directly via command line:
[ --database-path FILEPATH
| --immutable-database-path FILEPATH --volatile-database-path FILEPATH
]
Configuration File:
Alternatively, paths can be set in the configuration YAML file under the "DatabaseFile" key:
"DatabasePath": {
"ImmutableDbPath": "mainnetnode/db/node-imm",
"VolatileDbPath": "mainnetnode/db/node-vol"
},
or for a single path configuration:
"DatabasePath": "mainnetsingle/db/node",
New tracing system
Major rework of the metrics naming schema
- Change all metric names to match those of the current tracing system, simplifying switching back and forth for existing integrations
- Augment metric names with type-spefic suffixes (like e.g.
_int
) - Add optional Node config value
TraceOptionMetricsPrefix
(String) to specify a namespace prefix for metric names
Consensus
- Add
GetProposals
andGetRatifyState
queries. - Add
NodeToClientV_17
tosupportedNodeToClientVersions
.
Ledger
Network
tx-submission
mini-protocol now starts with a short delay, see #IntersectMBO/ouroboros-network#4927.
Cardano-cli
Features
-
Script-based DRep Support on Update Certificate: Adds support for using a script-based decentralized representatives (DRep) in the
update certificate
command.
PR 884 -
Enhanced Transaction View: Modifies
transaction view
to show which inputs redeemers refer to, enhancing traceability.
PR 861
Breaking Changes
- Propagate Experimental API: Propagates the experimental API to
transaction build
internals and deprecates pre-Conway eras fortransaction build
.
PR 853 - Change in Default Behavior for Testnet Data Creation: The
create-testnet-data
command no longer defaults the--total-supply
option. It now derives the total supply from the Shelley genesis file or uses half of that as the--delegated-supply
if not specified.
PR 874
Bugfixes
- Mandatory Treasury Withdrawal Fields: Makes the funds receiving address and amount mandatory for treasury withdrawal actions, fixing a potential oversight in command requirements.
PR 877 - Prevent Overflow in Int Parsers: Addresses and forbids incorrect value entries in parsers for Int-like options to prevent silent overflows.
PR 864 - Fix Estimated Fee Rendering: Corrects the estimated fee output format from
Coin 357154
to357154 Lovelace
, improving clarity.
PR 873
Cardano-api
Features
- Upgrade Libraries: Upgrades to
cardano-ledger-*
,ouroboros-consensus-cardano
,ouroboros-network-api
,plutus-core
, andplutus-ledger-api
. PR 610 - New Types: Introduced
newtype UnsignedTx
anddata Era
to streamline era management for mainnet and upcoming eras. PR 604
Breaking Changes
- API Updates: Deprecated
valueFromList
,valueToList
, andcreateAndValidateTransactionBody
. IntroducedIsList Value
instance and recommend usingcreateTransactionBody
. PR 622 PR 597 - Transaction Changes:
BalancedTxBody
now returnsUnsignedTx
. PR 604 - Treasury Value Fix: Default value now set to
Nothing
instead of0
. Removed redundant type families in the Experimental API. PR 625
Bugfixes
Submit-api
Plutus
- Fixed a bug in the Plutus Core type normalizer in IntersectMBO/plutus#6272
- The case-of-case optimization on Plutus IR was removed from the compiler due to it causing OOMs: IntersectMBO/plutus#6248
- Removed
Emitter
andMonadEmitter
, and changed the type ofemit
toText -> BuiltinResult ()
: IntersectMBO/plutus#6224 - Forbade using
EvaluationResult
in the builtins code in favor ofBuiltinResult
, so that builtins throw errors with more helpful messages: IntersectMBO/plutus#5926 - Made
[] :: [Integer]
,[] :: [Bool]
,[] :: [Data]
, and[(Data, Data)]
compile directly to the respective empty list via theMkNil
type class without usage of built-in functions ordefineBuiltinTerm
: IntersectMBO/plutus#6347
Individual packages' changelogs
Package changelogs
Package | Version | Changelog |
---|---|---|
Win32-network | 0.2.0.0 | ChangeLog.md |
base-deriving-via | 0.1.0.2 | CHANGELOG.md |
byron-spec-chain | 1.0.1.0 | CHANGELOG.md |
byron-spec-ledger | 1.0.1.0 | CHANGELOG.md |
cardano-api | 9.3.0.0 | CHANGELOG.md |
cardano-binary | 1.7.1.0 | CHANGELOG.md |
cardano-cli | 9.4.1.0 | CHANGELOG.md |
cardano-crypto | 1.1.2 | |
cardano-crypto-class | 2.1.5.0 | CHANGELOG.md |
cardano-crypto-praos | 2.1.2.0 | CHANGELOG.md |
cardano-crypto-test | 1.5.0.2 | |
cardano-crypto-tests | 2.1.2.0 | CHANGELOG.md |
cardano-crypto-wrapper | 1.5.1.3 | CHANGELOG.md |
cardano-data | 1.2.3.0 | CHANGELOG.md |
cardano-git-rev | 0.2.2.0 | |
cardano-ledger-allegra | 1.6.0.0 | CHANGELOG.md |
cardano-ledger-alonzo | 1.10.2.0 | CHANGELOG.md |
cardano-ledger-alonzo-test | 1.2.1.3 | CHANGELOG.md |
cardano-ledger-api | 1.9.3.0 | CHANGELOG.md |
cardano-ledger-babbage | 1.9.0.0 | CHANGELOG.md |
cardano-ledger-babbage-test | 1.2.0.4 | CHANGELOG.md |
cardano-ledger-binary | 1.3.4.0 | CHANGELOG.md |
cardano-ledger-byron | 1.0.1.0 | CHANGELOG.md |
cardano-ledger-byron-test | 1.5.1.1 | CHANGELOG.md |
cardano-ledger-conway | 1.16.1.0 | CHANGELOG.md |
cardano-ledger-conway-test | 1.2.1.8 | CHANGELOG.md |
cardano-ledger-core | 1.14.0.0 | CHANGELOG.md |
cardano-ledger-mary | 1.7.0.0 | CHANGELOG.md |
cardano-ledger-shelley | 1.13.1.0 | CHANGELOG.md |
cardano-ledger-shelley-ma-test | 1.2.2.3 | CHANGELOG.md |
cardano-ledger-shelley-test | 1.4.0.3 | CHANGELOG.md |
cardano-ping | 0.4.0.2 | CHANGELOG.md |
cardano-prelude | 0.2.0.0 | ChangeLog.md |
cardano-prelude-test | 0.1.0.3 | |
cardano-protocol-tpraos | 1.2.0.1 | CHANGELOG.md |
cardano-slotting | 0.2.0.0 | CHANGELOG.md |
cardano-strict-containers | 0.1.3.0 | CHANGELOG.md |
contra-tracer | 0.1.0.2 | |
cuddle | 0.3.1.0 | CHANGELOG.md |
ekg-core | 0.1.1.7.0.0.0.0.1 | CHANGELOG.md |
ekg-forward | 0.5 | CHANGELOG.md |
fs-api | 0.2.0.1 | CHANGELOG.md |
fs-sim | 0.2.1.1 | CHANGELOG.md |
heapwords | 0.1.0.2 | CHANGELOG.md |
iohk-monitoring | 0.1.11.5 | |
libsystemd-journal | 1.4.5.0.0.0.0.1 | Changelog.md |
lobemo-backend-aggregation | 0.1.0.0 | |
lobemo-backend-ekg | 0.1.1.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.4.5.3 | CHANGELOG.md |
non-integral | 1.0.0.0 | CHANGELOG.md |
optparse-applicative-fork | 0.18.1.0 | CHANGELOG.md |
ouroboros-consensus | 0.20.1.0 | CHANGELOG.md |
ouroboros-consensus-cardano | 0.19.0.0 | CHANGELOG.md |
ouroboros-consensus-diffusion | 0.17.1.0 | CHANGELOG.md |
ouroboros-consensus-protocol | 0.9.0.1 | CHANGELOG.md |
ouroboros-network | 0.17.1.1 | CHANGELOG.md |
ouroboros-network-api | 0.9.0.1 | CHANGELOG.md |
ouroboros-network-framework | 0.13.2.4 | CHANGELOG.md |
ouroboros-network-mock | 0.1.1.2 | CHANGELOG.md |
ouroboros-network-protocols | 0.10.0.2 | CHANGELOG.md |
ouroboros-network-testing | 0.7.0.0 | CHANGELOG.md |
plutus-core | 1.32.1.0 | CHANGELOG.md |
plutus-ledger-api | 1.32.1.0 | CHANGELOG.md |
plutus-tx | 1.32.1.0 | CHANGELOG.md |
prettyprinter-configurable | 1.32.1.0 | |
quickcheck-monoids | 0.1.0.1 | CHANGELOG.md |
set-algebra | 1.1.0.3 | CHANGELOG.md |
small-steps | 1.1.0.0 | CHANGELOG.md |
sop-extras | 0.2.1.0 | CHANGELOG.md |
strict-checked-vars | 0.2.0.0 | CHANGELOG.md |
strict-sop-core | 0.1.2.0 | CHANGELOG.md |
tracer-transformers | 0.1.0.4 | |
typed-protocols | 0.1.1.0 | CHANGELOG.md |
typed-protocols-cborg | 0.1.0.4 | CHANGELOG.md |
typed-protocols-examples | 0.2.0.2 | |
validation-selective | 0.2.0.0.0.0.0.0.1 | CHANGELOG.md |
vector-map | 1.1.0.0 | CHANGELOG.md |
Legend
-
🟢 - signed / agreed / supported
-
🟥 - not agreed / unsupported