cardano-node

The core component that is used to participate in a Cardano decentralised blockchain.

APACHE-2.0 License

Stars
3K

Bot releases are hidden (Show)

cardano-node - Cardano Node 1.11.0

Published by tatyanavych over 4 years ago

Cardano Node 1.11.0

This release delivers full Windows support, and incremental improvements to the node in Byron mode, including improvements in logging, reduced disk I/O and network error handling improvements.

Most of the current development focus is on the Shelley mode. This release includes the initial integration of the Shelley ledger and Ourboros Praos consensus within the node. The Shelley features are not available in the Byron mode, and so not available on the Cardano mainnet. For the curious: following releases will include the CLI tools needed to run the node in Shelley mode locally.

Deployed on the mainnet on 28 April 2020.

New features

Improvements

  • Improved performance in logging&monitoring system (#831)
  • Suppressed high frequency logging output during syncing (#773)
  • Improved example configuration for "live view" (#827)
  • Improved READMEs (#793, #828)
  • Verification of avoidance of excessive memory use in inbound transaction path (#1645, #1708)
  • Improved restart times by storing a ledger snapshot after a long replay (#1956)
  • Renamed immutable chain DB files from .epoch to .chunk (with an automatic migration) (#1755, #1954)
  • Minor disk I/O optimisation when serving headers and blocks (#1978)
  • Enabled local state query protocol with a V2 local IPC protocol (#1522)
  • Improved API for the local node IPC protocol (#1950, #1959, #1962)
  • Added timeouts on message sends (in addition to the existing timeouts of receive) (#1953)

Resolved issues

  • Fixed handling of unknown versions in protocol version negotiation (#1981)
  • Fixed DNS error handling improvements during temporary network outages (#1960, #1961)

Shelley features and improvements

Note that these include some Shelley-specific changes that were released earlier, but were not previously declared in the release notes.

  • Integrated the Shelley ledger with the consensus layer (#258, #982, #1403, #1405, #1820, #1822, #1824)
  • Added Shelley support for the local state query (#1442, #1848)
  • Added changes to prepare for the Shelley hard fork (#1750, #1775)
  • Added Shelley genesis file support (#798)
  • Added initial support for starting a node in Shelley mode (#820)
  • Added initial support for loading Shelley node leader credentials (#832)
  • Added support for reading/writing human-readable Shelley key file formats (#826, #829)
  • Improved Shelley ledger integration (#1963, #1821, #1967, #1984, #1986)
  • Added verification of avoidance of excessive memory use in Shelley ledger state (#1558, #1928)
  • in Shelley ledger
    • Added usage of normal form types to avoid excessive memory use in ledger state (#1343)
    • Kept serialised forms of transactions and transaction sequences (#1361, #1377, #1379)
    • Minor changes to the CBOR CDDL binary schema (#1376)
    • Adjusted the address type to better reflect the logical structure (#1370)
    • Improved the representation of the overlay schedule in the ledger(#1378)
    • Added exports needed for node and CLI integration (#1373, #1375)

Known Issues

  • Some Windows environments may prevent the creation of the node's named pipe (#754)
  • Incorrect constant value for epochSlots in validate-cbor command (#848)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.10.1

Published by tatyanavych over 4 years ago

Cardano Node 1.10.1

This patch release significantly improves the syncing performance on Windows, both the time and the memory required to do a full synchronisation of the chain. It brings the performance up to be nearly on par with OSX and Linux platforms.

Deployed on the mainnet on 16 April 2020.

Resolved issues

  • Improved Windows sync performance using a new implementation of network timeouts (#1931)
  • Improved chain DB concurrency during syncing by batching GC actions (#1932)
  • Introduced an exemption for historical "null" update proposals on IOHK's internal staging blockchain (#782, #768)
  • Added documentation on Byron-era protections against network address confusion (#727, #755)

Known Issues

  • Some Windows environments prevent the creation of the node's named pipe (#754)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.10.0

Published by tatyanavych over 4 years ago

Cardano Node 1.10.0

This release includes further improvements in memory use and syncing performance, as well as some bug fixes and other minor internal enhancements. See Cardano Node 1.10.0 ChangeLog for more details.

Improvements

  • Added a cross-platform clean shutdown mechanism (#726, #767)
  • Added logging node version on startup (#757)
  • Changed interpretation of relative paths in the config file ( #750)
  • Improved docs for building and running cardano-node (#718, #752)
  • Improved sync performance with refined hash representation (#1887)
  • Improved validation performance with refined hash representation (#760)
  • Improved chain DB locking for better concurrent performance (#1816, #1866, #1907, #1919)
  • Disabled support for rewinding system clock to simplify hard fork support (#1908)
  • Improved transaction submission tracing (#1861, #1895)
  • Simplified tracing output and internals (#763, #768)
  • Improved Windows IO manager exception handling (#1897)
  • Handled DNS server changes in case of switching network connection (#1891)
  • Reduced memory use in low level network code (#1902)
  • Added extensions to a simplified library interface for node clients (#1894)

Resolved issues

  • Fixed activation of the TraceForwarder logging system plugin (#743)
  • Fixed mismatch with specs with update proposal version numbers (#759, #766)

Known Issues

  • Syncing can be slow on Windows (#736)
  • ChainValidationUpdateError for cardano-node 1.10.0 on staging (#782)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.9.3

Published by tatyanavych over 4 years ago

Cardano Node 1.9.3

This release provides fixes for several issues on Windows relevant to named pipes and timeout problems.

Deployed on the mainnet on 2 April 2020.

Resolved issues

  • Fixed Windows named pipes bug that limited node client connections and caused problem with wallet restoration (#1876, #1874)
  • Established more reliable connections with Windows named pipes (#1881)
  • Increased a timeout to ensure a node can reconnect to a network on Windows (#1873, 1878)
  • Added a timeout in one state of the chain sync protocol to reduce wait time in case of network problems (#1871)

Known Issues

  • Syncing can be slow on Windows (#736)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.9.2

Published by tatyanavych over 4 years ago

Cardano Node 1.9.2

This release resolves inconsistency in transaction fee calculation between the old and new node implementations.

Resolved issues

  • Fixed mismatch in the minimum transaction fee between the old and new node implementations (#737, #756)

Known Issues

  • Syncing can be slow on Windows (#736)
  • On Windows, a node can not reconnect to a network (#1873)
  • Named pipes error when restoring wallet (#1874)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️
cardano-node - Cardano Node 1.9.1

Published by tatyanavych over 4 years ago

Cardano Node 1.9.1

This release includes a fix for the NTP client on Windows.

Deployed on the mainnet on 30 March 2020.

Resolved issues

  • ntp-client does not work on Windows (#1785)

Known Issues

  • Syncing is slow on Windows (#736)
  • Inconsistency in transaction fee calculation between the old and new node implementations (#737 (#756))

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.9.0

Published by tatyanavych over 4 years ago

Cardano Node 1.9.0

This release includes CLI and configuration changes, security, reliability and logging improvements, as well as other minor internal enhancements. This release adds Windows support. See Cardano Node 1.9.0 ChangeLog for more details.

New features

  • Added CLI support for creating Byron era update proposals (#696)

Improvements

  • Removed genesis file override on CLI and moved it to the configuration file (#683)
  • Made genesis file path in configuration file relative (#648)
  • Removed listening on local ports in default configuration for security (#707)
  • Limited the number of accepted connections (#1391, #1831)
  • Added protocol timeouts, per-protocol state (#1395, #1813)
  • Added a minor check in transaction submission protocol handler (#1856)
  • Improved syncing performance for far away nodes with high network latency (#1843)
  • Improved selection of nearby low latency peers (#1858, #1859, #1860)
  • Added new DNS relay pool in default mainnet configuration (#708)
  • Added logging of progress meter in monitoring output for long running block replay (#712)
  • Improved trace verbosity for block fetch decisions (#701)
  • Improved trace output for mux timeouts (#717), mempool events (#724), subscription and DNS lookups (#725)
  • Added internal framework to support hard forks (#1698)
  • Adjusted the update proposal endorsement rule to simplify hard forks (#753)
  • Added minor optimisation in storage layer (#1810)
  • Added export of the mainnet protocol magic id (#750)
  • Added significant update to the Win32 network I/O library (#1574, #1627, #1844)
  • Updated documentation (#677, #709)

Resolved issues

  • Fixed subtle block fetch concurrency bug found (#1845, #1850)
  • Resolved node topography sync time issue (#589, #1843)

Known Issues

  • ntp-client does not work on Windows (#1785)

Documentation

Platforms

  • Linux 64-bit, Windows 64 bit (beta)

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops
Release Manager ✔️
cardano-node - Cardano Node 1.8.0

Published by tatyanavych over 4 years ago

Cardano Node 1.8.0

This is a cumulative release that includes several security and robustness improvements, as well as other minor and internal improvements. This release also has initial (beta) Windows support. See Cardano Node 1.7.0 ChangeLog and Cardano Node 1.8.0 ChangeLog for more details.

Deployed on the mainnet on 23th March 2020.

New Features

  • Added new CLI commands get-tip, pretty-print-cbor and validate-cbor (#591, #545, #637)
  • Added version command to CLI (#593, #630)

Improvements

  • Added structured logging for TxSubmission (#584)
  • Added logging detail for TraceForgedInvalidBlock (#605)
  • Improved default configuration for logging filters (#633)
  • Improved tracers for logging and benchmarking (#624, #653, #663, #664, #655, #670)
  • Improved tracing and error reporting in the network layer (#1762)
  • Added trace transaction flow in TxSubmission for transaction system tracing (#1688)
  • Integrated Windows IOCP-based asynchronous I/O, with abstraction layer (#1499)
  • Vectored asynchronous I/O for Windows network sockets (#1552)
  • Clarifed code for genesis generation (#732)
  • Added timeouts for the handshake phase in the node-to-node protocol (#1752)
  • Improved use of PRNGs (#1554, #1616, #1678, #1677)
  • Dropped dependency on OpenSSL for easier cross-compilation to ARM and JavaScript

Resolved issues

  • Fixed configuration for routing of metrics monitoring backends (#622, #659)
  • Fixed error classification policies (#1553, #1738)
  • Fixed resource management bugs (#1787, #1792)
  • Squashed accidental memory retention on the chain (#1718, #1793)
  • Fixed a race condition with 0-length SDUs (#1730)
  • Reduced fetching of duplicate transactions (#1749)
  • Fixed an unstructured message output for journald (#590)
  • Fixed an EBB-related bug (#1690, #1691)
  • Fixed a chain DB bug and improved performance in adding blocks (#1463, #1709)
  • Fixed a block fetch bug (#1147)
  • Fixed calculation of transaction size to match legacy Byron implementation (#703)
  • Fixed replay protection for votes on protocol updates (#739)
  • Fixed a minor mismatch on transaction size in a block to conform the specification (#718, #742)

Known Issues

  • Node topography impacts sync time (#589)

Documentation

Platforms

  • Linux 64-bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - 1.6.0 Cardano Node

Published by tatyanavych over 4 years ago

This release includes many improvements and bug fixes based on enhanced testing for the node, ledger, consensus and network libraries. See its ChangeLog for details.

Deployed on the mainnet on 24th February 2020.

Improvements

  • Improved node CLI for real protocol vs mock protocols (#297, #314, #318, #335)
  • Moved benchmarking CLI commands to their own sub-group (#540)
  • Removed redundant --genesis-hash flag from cardano-cli (#540)
  • Extended transaction generator to be able to use the transaction submission HTTP API (#549)
  • Improved log output for normal block forging and errors (#537) and for normal mempool events (#538)
  • Added display of the node id to the node console live view (#534)
  • Added report of program version via logging and monitoring system (#542)
  • Disabled SMP on ARM CPUs due to an RTS ARM SMP bug in GHC 8.6.x (#560)
  • Improved handling of the block number at the genesis (#1585, #1594, #1595, #1597)
  • Added handling of restarting after wall clock time has been moved back (#1550, #1563)
  • Added specific program exit codes for node chain db errors (#1201, #1541)
  • Re-validated chain db files after unclean shutdown (#1551, #1623, #1304, #1568)
  • Added ability to report mempool capacity in tracing (#1510, #1509)
  • Added better support for versioned network protocols (#1632)
  • Re-implemented NTP client time check library for the wallet (#1327)
  • Added generic derived JSON instances for other users of consensus as a library
  • Improved io-sim-classes support for monad stacks (#1539)

Resolved issues

Known issues

  • Inconsistency in transaction validity (fees) between old and new Byron ledger rules (#703)
  • Node topography impacts sync time (#589)

Documentation

Platforms

  • Linux 64-bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.5.0

Published by tatyanavych over 4 years ago

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

  • Implemented consensus support for local state query protocol (#1366 #1507)

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 ✔️
cardano-node - Cardano Node 1.3.0

Published by tatyanavych over 4 years ago

This Cardano Node release includes consensus, ledger, monitoring and logging changes with significant performance improvements in serving headers and blocks. See its ChangeLog for details.

Deployed to mainnet 14 January 2020.

Improvements

  • Significant performance improvements in serving headers and blocks
  • Snapshot ledger state on shutdown to avoid long restart times
  • Chain selection is now based only on the latest header in each chain (rather than last k headers)
  • Initial support for multiple slot lengths (for hard forks)

Resolved issues

Known issues

  • Cardano node memory leak #460
  • Syncing with the testnet chain stops (the old and new nodes disagree about the validity of a specific update proposal on the testnet) #461

Documentation

Platforms

  • Linux 64-bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.2.0

Published by tatyanavych almost 5 years ago

This Cardano Node release includes consensus, network, ledger, monitoring and logging changes with cleaner refactored code, configuration and logging, improved chain sync performance, maintenance and documentation. See ChangeLog for details.

Improvements

  • Added initial peer-to-peer governor
  • Improved chain sync serving performance by binary streaming of headers
  • Enhanced code with more reliable detection of disk corruption in epoch files
  • Limited the size of forged blocks
  • Changed mempool capacity from number of transactions to size in bytes
  • Prevented logging about block forging for nodes that do not forge
  • Used file locks for the chain DB
  • Obtained the slot length from the genesis file
  • Stopped message counter messages from appearing in log files
  • Allowed to start node before genesis start time by waiting and logging
  • Refactored CLI and config parser code

Resolved issues

Maintenance

  • Added more monitoring counters and statistics, including Prometheus output
  • Improved README file
  • Hid tracing options from default --help command
  • Set node's default mempool capacity to two times of the mainnet block size

Documentation

Platforms

  • Linux 64-bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.1.0

Published by tatyanavych almost 5 years ago

This Cardano Node release includes consensus, network, monitoring and logging changes with improved CLI, maintenance and run-time behaviour. See its ChangeLog for details.

Improvements

  • Added finish feature to support accepting blocks from the near future, once the local time catches up
  • Enhanced code with tracing the reason for a known block being invalid when rejecting a header
  • Added --validate-db flag to re-validate all on-disk database files
  • Added script to connect to mainnet using deployed mainnet relays
  • Improved CLI and config file handling
  • Adjusted log severity levels for many trace messages
  • Improved default RTS flags
  • Updated README instructions
  • Blocks served as binary blobs without de-serialising for improved performance
  • Added checksums verification when reading blocks to detect disk corruption
  • Simplified API to network layer used by consensus and node clients

Resolved issues

Documentation

Platforms

  • Linux 64-bit

Sign off

Role Approval
Technical Lead ✔️
QA Engineer ✔️
Ops ✔️
Release Manager ✔️
cardano-node - Cardano Node 1.0.0

Published by cleverca22 almost 5 years ago

Overview

The first release of new implementation of the Cardano node

  • Represents complete rewrite compared to cardano-sl

  • Has new modular design. The cardano-node is the top level for the node and aggregates the other components from other packages: consensus, ledger and networking, with configuration, CLI, logging and monitoring

  • Compatible with the Byron mainnet. It can validate blocks from Ouroboros Classic and create blocks after the BFT hard fork

  • The node no longer incorporates wallet or explorer functionality. The wallet backend and explorer backend are separate components; these run in separate external processes that communicate with the node via local IPC

Platforms

  • Linux 64-bit

Documentation

Cardano CLI

Sign off

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