Cardano Node 1.12.0
This release includes the integration of the majority of the Shelley features within the node and corresponding support in the command line tool. This includes the ability:
- to start a blockchain from genesis in Shelley mode;
- to create and use Shelley payment addresses and stake addresses;
- the ability to register and delegate to stake pools; and
- the ability to create blocks using stake pools.
The Shelley features are not available in the Byron mode, and so, are deactivated on the Cardano mainnet. They are pre-released and being tested on the Cardano Shelley Testnet.
In addition, logging, tracing and error messages have been improved, and a few issues have been fixed.
Deployed on the mainnet on 28 May 2020.
New features
cardano-cli
has been extracted into a separate cardano-node sub-component (#819). It provides a command line interface for various low-level node-related functionality. Byron and Shelley relevant commands are distinguished by its prefixedbyron
andshelley
command keywords. Documentation on constructing a Shelley chain from scratch (#893, #932, #1000) has been added. The following new commands were implemented:- generate Shelley KES and VRF keys (#816)
- generate Shelley address keys (#824)
- create Shelley genesis (#852, #864, #908, #926, #929)
- key-gen commands for various Shelley keys (#846, #870)
- commands for Shelley address construction (#870, #872, #887)
- Shelley transaction sign command (#894, #900)
- Shelley transaction submission command (#904)
- node query commands (#880, #884, #903, #918, #920, #933, #994, #1008, #1016)
- commands to create stake address certificates (#890, #919, #967)
- commands to create stakepool certificates (#922)
- system commands to update genesis delegations and create MIR certificates (#895)
- calculate the minimum fee for a transaction (#931)
- view the content of the various binary files (#915)
- create Shelley protocol param updates (#950, #1004)
- Byron update proposal vote creation and submission (#804)
- version command and
--version
flag, with git revision (#959)
- Added new
cardano-client
library in the network component to provide a simpler node client API (#2109) - Added support of initial Shelley protocol parameters in the Shelley genesis (#906)
- Added new
--shutdown-on-slot-synced
flag for the benchmarking and CI tests (#776) - Added hard fork support (#2034, additional PRs in the Changelog)
Improvements
- CLI commands that talk to the node no longer require the node config file (#901, #907, #917, #913, #928)
- Improved human readable error messages for CLI Byron commands (#1003)
- Added
systemd
socket activiation support (#856, #1022, #1995) systemd
support on Linux is now optional (#911)- Improved
FetchDecision
tracing output (#863) - Improved suppression of frequent repeated log messages (#842)
- Added logging of the node's network magic number on startup (#921)
- Adjusted configuration to keep metrics out of the log files (#930)
- Added trace of the node uptime (#892)
- Added trace of the number of transactions processed and blocks forged (#937, #943)
- Added trace for race of the current set of node peers for the live view (#1060
- Added Darwin (macOS) support for OS metrics in the "live view" (#785)
- Improved DB file locking behaviour (#1906, #2031, #2033)
- Added memory leak detection for Shelley transactions for mempool (#2010)
- Fixed the construction of the Shelley initial UTxO (#2038, #2046)
- The Shelley protocol parameters are included into the Shelley genesis (#2040)
- Used an improved more realistic KES implementation (#2092)
- Provided Shelley-compliant handling of OCert issue number in chain selection (#2108)
- Provided interface for node clients with minimal configuration (#2050, #2056)
- Added whole or filtered options for UTxO in local state query (#2016, #2110)
- Improved calculation of transaction sizes (#2114, #2115, #2116)
- Used
TCP_NODELAY
for faster block relaying (#2069) - Added ability to shut down transaction submission protocol cleanly by receiving side (#2090)
- Made protocol handlers dependent on the negotiated protocol version (#2090)
- Exposed bits of the ledger state needed for the node live view (#772)
- Added local state query for dumping a whole ledger state for test and debug (#2113)
- Shelley ledger changes:
- Relay nodes' IP/DNS are included in pool registration certificates (#1391, #1397, #1398, #1413)
- Removed the active slot coefficient from the set of parameters that could be changed via on-chain protocol parameter updates (#1394)
- Simplified specification and implementation of transaction size calculation (#1405)
- Adjusted the definition of total stake (#1428, #1437)
- Added support for minimum UTxO, aka non-decaying deposits (#1447)
- Finalised decision on final network Id number assignments in address format (#1465)
- Documented specific cryptographic choices in the specification appendix (#1389)
- Added options to local state query for querying the UTxO, either by all, or by address (#1402, #1422)
- Completed the support for caching serialised representation (#1380, #1408)
- Improved handling of cryptographic key roles (#1410)
- Improved details in ledger validation error reports (#1442, #1458, #1463, #1469, #1470, #1476)
- Added initial support for Byron addresses in the pre-Shelley state (#1473)
Resolved issues
- Fixed various live view issues(#964, #965, #974)
- Fixed structured tracing of transactions within adopted blocs for analysis tools (#993)
- Fixed handling of operational certificates for KES validity periods (#2092, #2094)
- Fixed long thread delays on 32bit systems (#2095)
- Fixed transaction signing in specification and implementation to sign the body hash, but not body (#1418)
- Fixed handling of the overlay schedule when there are no BFT nodes (#1401)
Known Issues
- Some Windows environments may prevent the creation of the node's named pipe (#754)
- Incorrect constant value for
epochSlots
invalidate-cbor
command (#848)
Documentation
- Cardano CLI
- Making a Shelley blockchain from scratch
- Internal API docs for ledger, consensus and network
Platforms
- Linux 64-bit, Windows 64 bit
Sign off
Role | Approval |
---|---|
Technical Lead | ✔️ |
QA Engineer | ✔️ |
Ops | ✔️ |
Release Manager | ✔️ |