Cardano Node 8.0.0
Node 8.0.0 is a major release of the Cardano node that adds initial, experimental, support for the Conway ledger era (Protocol Version 9.0).
It includes some additional CLI commands, bug fixes, and network configuration options. SPOs are recommended to deploy this version on all their nodes. This version of the Cardano node:
- Introduces the Conway era (Voltaire) as a developmental hard fork. Note: the node does not have any Voltaire features yet, this just prepares the way by creating the transaction formats and providing the ability to hard fork into the era.
- Adds a governance action for SPO polls (
cardano-cli governance poll
) that the Cardano Foundation will use to conduct an SPO survey - Introduces a fairness improvement into the mempool logic
- Adds query commands to inspect metrics and data in mempool
- Allows the network to be defined via
CARDANO_NODE_NETWORK_ID
instead of needing to be passed in every CLI query - Adds more detailed output in the
query tip
CLI command - Allows modification via configuration file of connection limits
- Provides versioned serialization formats for ledger
- Provides a ledger API
- Changes the tracking of deposits
It also includes some bug fixes and performance improvements.
IMPORTANT: On mainnet, P2P networking is only intended to be ran on a single relay at this time. Please continue to run any other relays with P2P disabled using the legacy topology.
Please note that this version contains breaking changes
- Needs newer libsodium-vrf revision
dbb48cce5429cb6585c9034f002568964f1ce567
Known Issues
- Please see list of 8.0.0 issues
Technical Specification
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)
- 24GB of RAM
- 150GB of free storage (250GB recommended for future growth)
Platforms
- Linux 64-bit (Ubuntu 18.04 LTS, 20.04 LTS; Mint 19.3, 20; Debian 10.3)
- Windows 64-bit (8.1, 10, 11)
- MacOS 10.13, 10.14, 10.15, 11
GHC/Cabal supported versions
- GHC 8.10.7/Cabal 3.8.1.0
Supported roles
Platform | Block Production | Relay | Client (Desktop) |
---|---|---|---|
Linux | ✔️ | ✔️ | ✔️ |
Windows | ❌ | ❌ | ✔️ |
MacOS | ❌ | ❌ | ✔️ |
Downloads
- Docker image
- Static binaries:
- Configuration files
NOTE: Linux is showing a git revision of 0000000000000000000000000000000000000000
in --version
because of a corruption issue in set-git-rev that only affects static musl built binaries. This is expected, and if it concerns you, please build from source.
Documentation
- Cardano Node documentation
- Cardano CLI
- Internal API docs for ledger, consensus and network
- Compatibility matrix
Changelogs
Node
NONE
Consensus
- The transactions in the mempool are now guaranteed to be processed irrespective of their sizes. This change also caused
tryAddTxs
to be removed in favour of a newaddTx
function.
Ledger
- The provenance for the reward calculation has been removed. The type signature to the API function
getRewardProvenance
has not changed, it just returns an empty provenance value. - We have created a Ledger API, with the aim of providing a user-friendly interface to the ledger libraries. See here.
- The initial funds and staking in the Shelley genesis type (used only for testing) now use
ListMap
instead ofMap
. - There is a new
calculatePoolDistr'
function which is similar tocalculatePoolDistr
but has a new filter argument to only include the stake pool ids (stake pool key hashes) that are needed. - The ledger events are not guaranteed to appear in any given order within a block. For this reason, motivated by the use case in db-sync, the
TotalDeposits
event now includes a transaction ID and emits the change in deposits instead of the value. - We changed the way deposits are tracked. See here for the details.
- We changed the API function Cardano.Ledger.Shelley.API.Wallet(
evaluateTransactionBalance
) to takeDPState
as input. This can no longer be computed without theDPState
- Some noticeable changes have been made which will only become apparent starting at major protocol version 9:
- There is a new ledger era, namely
conway
. - We now have the ability to more easily change serializations when the major protocol version changes. Though this change is not immediately visible to the node, it enables visible changes in the future. See CIP-80 For the deprecation cycle.
- Pointer addresses will no longer accrue rewards starting with version 9.
- We fixed the incorrect conversion of the validity interval's upper bound in
transVITime
. - Starting in version 9, duplicate keys in CBOR maps and sets are no longer allowed.
- Starting in version 9,
CostModel
s can now be deserialized from any map of Word8 values to lists of integers. Only valid cost models are actually converted to evaluation contexts that can be used. Errors and unrecognized language versions are stored in theCostModel
type so that:- They can accept cost models that they do not yet understand.
- Upon deserializing after a software update, new cost models are available from the prior serialization.
- There is a new ledger era, namely
Network
- Fixed interoperability bug in the legacy (non-p2p) networking stack exposed by p2p nodes (IntersectMBO/ouroboros-network#4467).
- Fixed an issue with local root peers when using more than one DNS name (IntersectMBO/ouroboros-network#4491).
- Added experimental peer sharing feature (it is unsafe until
ouroboros-genesis
is implemented) .
Cardano-cli
cardano-cli
providesping
command, which previous was available as a standalonecardano-ping
executable.- Rename TestEnableDevelopmentHardForkEras to ExperimentalHardForksEnabled and TestEnableDevelopmentNetworkProtocols to ExperimentalProtocolsEnabled
- Auto-balance multi asset transactions
- Default to the ledger's CDDL format for transaction body creation by removing flags --cddl-format and --cli-format from build and build-raw
- Update create-staked with the ability to specify relays for all created stake pools
Cardano-api
- Append, not prepend change output when balancing a transaction
- Preserve ScriptData bytes with HashableScriptData
- Remove distinction between multisig and timelock scripts
Submit-api
NONE
Sign off
Role | Approval |
---|---|
Cardano Head of Engineering | ✔️ |
Cardano Head of Product | ✔️ |
Test Engineer | ✔️ |
Site Reliability Engineer | ✔️ |
Release Engineer | ✔️ |