Skip to content
Feb 17, 2020
Merge #569
569: Update to latest version of ouroboros-network and other deps r=deepfire a=dcoutts

Most code changes due to ouroboros-network and cardano-ledger

Closes #566 

Co-authored-by: Duncan Coutts <duncan@well-typed.com>
Co-authored-by: Luke Nadur <19835357+intricate@users.noreply.github.com>
Co-authored-by: Samuel Leathers <samuel.leathers@iohk.io>
Co-authored-by: Jordan Millar <jordan.millar@iohk.io>
Co-authored-by: Marcin Szamotulski <profunctor@pm.me>
Co-authored-by: Kosyrev Serge <serge.kosyrev@iohk.io>
  • 1.5.0
  • 23c0855
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.5.0
  • 23c0855
  • Compare
    Choose a tag to compare
    Search for a tag

@tatyanavych tatyanavych released this Feb 12, 2020 · 100 commits to master since this release

This is another incremental 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 ✔️
Assets 2
Jan 17, 2020
Merge #481
481: release 1.4.0 r=erikd a=dcoutts

checklist
- [X] deps in sync
- [X] version bumped
- [x] nix files updated
- [x] changelog updated

Co-authored-by: Duncan Coutts <duncan@well-typed.com>
Pre-release
  • 1.3.0
  • d6010bf
  • Compare
    Choose a tag to compare
    Search for a tag
Pre-release
  • 1.3.0
  • d6010bf
  • Compare
    Choose a tag to compare
    Search for a tag

@tatyanavych tatyanavych released this Jan 23, 2020 · 224 commits to master since this release

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 ✔️
Assets 2
Pre-release
  • 1.2.0
  • 15de948
  • Compare
    Choose a tag to compare
    Search for a tag
Pre-release
  • 1.2.0
  • 15de948
  • Compare
    Choose a tag to compare
    Search for a tag

@tatyanavych tatyanavych released this Jan 20, 2020 · 240 commits to master since this release

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 ✔️
Assets 2
Pre-release
Pre-release

@tatyanavych tatyanavych released this Jan 18, 2020 · 339 commits to master since this release

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 ✔️
Assets 2
Pre-release
Pre-release

@cleverca22 cleverca22 released this Jan 17, 2020 · 450 commits to master since this release

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 ✔️
Assets 2
You can’t perform that action at this time.