Cardano Node 1.5.0
This is another cumulative release of the new Cardano node. Since the 1.3.0 release there has been continued development and improvements in all the layers, particularly in the consensus layer.
The most user visible improvements are that the memory use is now stable and the syncing performance is significantly improved compared to earlier releases, and compared to the old cardano-sl
node.
Nodes were deployed on the mainnet on 5th February 2020. These nodes are supporting the use of the new explorer backend by exchanges and other partners. These nodes are not yet being used to create blocks. The migration of the core block-producing nodes to this new cardano-node
implementation will become possible after the Ouroboros BFT hard fork.
New Features
Improvements
- Improved bulk syncing performance by adjusting default RTS options (#506)
- Improved syncing performance by avoiding concurrent block fetch (#1525)
- Adjusted tracing in block forging for system benchmarks (#1432)
- Added tracers for the benchmarking of block forging (#464)
- Limited forged block size based on current limits from the ledger state (#1363, #1400)
- Made the maximum concurrency in block fetch configurable (#1525)
- Added checks to prevent space leaks in the node console live view (#500)
- Adjusted the default set of enabled tracers (#494)
- Moved configuration of tracers from CLI to the config file (#474)
- Simplified
cardano-cli
interface (#476, #451) - Changed
cardano-cli
transaction format to be the raw chain format (#529) - Updated scripts and improved README, in particular, instructions on transaction creation (#497)
- Improved the benchmarking of transaction generator (#505)
- Moved support for trace forwarding into a logging plugin (#454)
- Allowed logging output to journald on Linux (#502)
- Elided repeated log messages (#445)
- Set default mempool size as twice the max block size (#1467, #1468)
- Added display of network status information and mempool size metric to the node console live view (#493, #457)
- Added support to get mempool snapshot size for use in system benchmarks (#1431)
- Set PBFT signature threshold to the default value in the config files (#452)
- Corrected the implementation PBFT window check to match specification (#1480)
- Added ability to get recent ledger states, for local query protocol (#1440, #1446)
- Relaxed the ledger validation rule for on-chain registered software versions to better match the legacy implementation
- Improved ledger DB snapshot policy for faster node startup (#1264, #1456, #1518)
- Reduced CPU cost of sending over the mux (approx 10%) (#1420, #1434)
- Added Windows IOCP-based async I/O for sockets and named pipes (#738 #1423)
- Simplified IOSim's Async representation (#1394)
- Optimised addition of blocks to the chain DB (#1398)
- Improved error messages referring to chain DB files (#305 #1529)
- Simplified tracing in the typed protocol drivers (#1481)
Resolved issues
- Cardano node memory leaks (#460)
- A space leak caused by Prometheus library (#491)
- Syncing with the testnet chain stops (the old and new nodes disagree about the validity of a specific update proposal on the testnet) (#461)
- An EBB-related bug in the chain DB iterators (#1435, #1475)
- A bug in block forging (due to unavoidable race condition) (#1437, #1459)
- Dubious async exception handling in chain DB (#1452, #1453)
- The size calculation of Byron transactions in the mempool (#1535, #1540)
- Intermittent Ouroboros/ChainDB error when syncing on Testnet #471
Known issues
- Incorrect minimum tx fee calculation #703
Documentation
Platforms
- Linux 64-bit
Sign off
Role | Approval |
---|---|
Technical Lead | ✔️ |
QA Engineer | ✔️ |
Ops | ✔️ |
Release Manager | ✔️ |