Skip to content

Cardano Node 1.20.0

Compare
Choose a tag to compare
@tatyanavych tatyanavych released this 23 Sep 14:13
· 6058 commits to master since this release
1f2f511

This release is light on user-visible changes as the development has been focusing on preparations for the multi-asset features and on paying down technical debt. It does however include a number of performance improvements in the node, a few new CLI commands, and an improvement that will enable Daedalus to report stake pool saturation.

Note that this release will automatically perform a DB migration on the first startup after the update. The migration will take 10-20 minutes depending on your CPU. If this is a problem for your use, then see below for steps to mitigate this.

Deployed on the testnet on 21 September 2020.
Deployed on the mainnet on 23 September 2020.

Steps to mitigate downtime for this update

This update includes a change in the format of a part of the chain DB (specifically the ledger state snapshots). The migration for this is handled automatically by the node on startup. The migration will take 10-20 minutes depending on your CPU.

To mitigate downtime:

  1. Update a non-production mainnet node
  2. Take a DB snapshot
  3. Stop production node
  4. Backup and replace DB with snapshot
  5. Restart production node on 1.20.0
  6. Repeat steps 3-5 for all production nodes

See #311 for example scripts of how this can be done.

New Features

  • New CLI command convert-cardano-address-key for converting more legacy signing key formats (#1756, #1822)
  • New CLI command create-genesis-key-delegation-certificate for creating genesis key delegation certificates (#1784)

Improvements

  • Adjusted the query used by the wallet to report pool stake to report it as a fraction of total stake rather than as a fraction of total supply, enabling it to be used to report pool saturation (#1836, #1850)
  • Adjusted the same query to report pool size based on the live stake distribution rather than the stake distribution snapshot from the last epoch boundary snapshot, enabling its use in the wallet for live reporting of pool saturation (#1854)
  • Introduced optimisations in the consensus layer leading to approximately a 15% synchronisation time improvement (#2555)
  • Optimised performance in the ledger for the end-of-epoch reward calculation, to reduce the CPU spike at the 48 hour point in each epoch (#1851)
  • Made performance and memory improvement in the overlay schedule of the ledger layer (#1849)
  • Added a new document on the details of pool ranking (#1816)
  • Improved support for conversion between JSON and transaction metadata, with support for two JSON schemas, suitable for different use cases (#1797)
  • Added sanity checks for the Shelley genesis on node start-up to help with configuring private testnets (#1149, #1478, #1820)
  • Added CLI support for bech32 and hex formats when reading signing keys (#1790)
  • Improved error messages for CLI errors (#1801, #1839)
  • Improved logging message for DB events (#576, #1819)
  • Added a script for a node that connects to the current mainnet (#1847)
  • Bundled the benchmarking scripts (#1810)

Resolved issues

  • Fixed a bug in the time (slot/era) node query (#2579)

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 8.1, 10 64 bit
  • 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)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️