github IntersectMBO/cardano-node 1.23.0
Cardano Node 1.23.0

latest releases: test-bootstrap, 8.10.1-pre, 8.9.2...
3 years ago

This release includes a substantial amount of internal changes to support the upcoming Allegra and Mary hard forks and the new features they bring. This is not the final release before the Allegra hard fork, but it does include the bulk of the functionality for both Allegra and Mary hard forks.

  • The Allegra hard fork adds some features needed to support the Catalyst treasury scheme. It extends the existing multi-sig script language with predicates for time, via the slot number. It allows, for example, to make an address not spendable until a certain point in time.
  • The Mary hard fork adds multi-asset support. This is comparable to ERC20 and ERC721 tokens, but supported natively in the UTxO ledger. This is part of the Goguen feature set. It is a very significant feature and will have implications for all Cardano wallet implementations, including exchanges.

Another notable change in this release is an adjustment to the pool ranking that will benefit small pools that have not yet made many blocks. We have adjusted the initial Bayesian prior so that instead of assuming new pools will perform at some less-than-perfect average level, we assume they will perform more-or-less perfectly. This prior is still updated based on the actual performance history, so pools that perform poorly will still drop in ranking. This change will especially benefit small pools that have produce few blocks so far, because they have very little performance history and so their score will be more influenced by the initial prior.

Improvements

  • Preliminary support for the upcoming Allegra and Mary eras (#1899, #1951, #1958, #1959, #1961, #1965, #1971, #1977, #1981, #1984, #1987, #1988, #1989, #1990, #2019, #2038, #2080, #2666, #2668, #2670, #2677, #2679)
  • Preliminary support for the Allegra script language extensions (#1847, #1875, #1895, #1908, #2069)
  • Preliminary support for the Mary multi-asset extensions (#1905, #1931, #1938 #2081, #2083, #2085, #2093)
  • Adjust how the pool performance is estimated as part of the pool ranking: for pools with no performance history use a Bayesian prior that assumes that pools will perform well. This should benefit new small pools. (#1936)
  • Adjust the ledger state dump to return the "extended" ledger state (#2019)
  • Support bech32 and hex formats for reading verification keys (#1852)
  • Improved documentation for CLI multi-signature support (#1976)
  • Improve handling of invalid command line input (#2088)
  • Improved ledger state serialisation performance (#1968)
  • Restore build compatibility with GHC 8.6.5, so this release builds with both GHC 8.6.5 and 8.10.2. Future releases will support 8.10.x only. (#1956, #1990, #2540, #2652)
  • Several new local state queries in v4 of the node-to-client protocol (#2694)
  • Keep a compact form of the Shelley genesis content, to allow it to be queried later (#2704)
  • Switch to the newly-published "nothunks" package (#1894, #2664)
  • Address technical debt in the db-analyser tool (#2667)
  • Allow most Shelley ledger rules to be reused in subsequent eras (#1922)
  • Adjust how the ledger is parametrised to reflect the fact that some parts change with the ledger era, while others change with the consensus protocol. This makes it easier to handle ledger-only era changes that still use the same Praos consensus protocol. (#1915)
  • Support serialisation for the Shelley genesis data structure to support a new node query that can return the genesis parameters (#1927)
  • New cardano-ping demo and tool (#2701)
  • Make the node fail on startup if we cannot bind to the necessary ports (#2696)
  • Improvement to the calculation and collection of network connection performance metrics (#2636)
  • Improvements to the handling of the initial connection handshake (#2691)
  • Preparations for publishing io-sim as a public library (#2580, #2631, #2649)
  • Improved IPv6 support (#1928, #2662)
  • Preparation for the p2p governor: add a new node-to-node protocol version (4) with a new negotiated handshake parameter to determine if the connection will be uni-directional or bi-directional (#2658)
  • Documentation for the hard fork transition (#1741)
  • Check VRF signing key files have the correct file permissions (#1936, #1938)
  • Improve IPv6 support and related internal refactoring (#1928)

Resolved issues

  • Fix a space leak in the stake pool performance tracking that caused writing ledger state snapshots in consensus to take too long (#1967)
  • Fix a corner case in the way the pool performance history is calculated as part of the overall pool score calculation (#1897)
  • Fix a failure that occurs on starting a node when there are certain kinds of DB corruption (specifically a ledger snapshot that is newer than the tip of the immutable DB, which would typically occur when chain DB files are manually moved or removed) (#2651)
  • Fix a long-standing (highly unlikely) bug in evaluating alternative chains that cross a hard fork boundary (#2314, #2318, #2657, #2661)

Deprecated Features

  • Remove the HardForkNotBeforeEpoch setting from the config file (#2073, #2736, #2739)
  • Remove the deprecated LiveView feature, now that RTView is released (#1977)

Known Issues

  • #1734 ErrorPolicyUnhandledApplicationException may be observed when running CLI commands on windows
  • See GitHub Issues for further issues that have been reported

Documentation

Platforms

  • Linux 64-bit (Ubuntu 18.04 LTS, 20.04 LTS; Mint 19.3, 20; Debian 10.3)
  • Windows 64-bit (8.1, 10)
  • MacOS 10.13, 10.14, 10.15
  • Docker image

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)
  • 4GB of RAM (8GB for a relay or stake pool)
  • 10GB of free storage (20GB for a stake pool)
Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️

Don't miss a new cardano-node release

NewReleases is sending notifications on new releases.