Node 10.2.1
is a pre-release of the Cardano node at this time. It provides support for the new tracing system and an initial integration of Ouroboros Genesis, a new feature which enables nodes to bootstrap from the network. It also provides a number of bug fixes and enhancements, including fixes and improvements to a number of CLI commands.
Benchmarking reports relevant to the 10.2.x
release series can be found in this post on Cardano Updates.
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)
- Or, for MacOS, an Apple Silicon (M1, M2, M3 or M4) processor
- 24GB of RAM
- 200GB of free storage (250GB recommended for future growth)
Platforms
- Linux 64-bit (Ubuntu 18.04 LTS, 20.04 LTS, 22.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/9.6/9.10
- Cabal 3.8/3.12
Supported roles
Platform | Block Production | Relay | Client (Desktop) |
---|---|---|---|
Linux | 🟢 | 🟢 | 🟢 |
Windows | 🟥 | 🟥 | 🟢 |
MacOS | 🟥 | 🟥 | 🟢 |
Downloads
Documentation
- Cardano Node documentation
- Cardano CLI
- Internal API docs for ledger, consensus and network
- Compatibility matrix
Sign-off
Role | Approval |
---|---|
Cardano Head of Engineering | 🟢 |
Cardano Head of Product | 🟢 |
Test Engineer | 🟢 |
Performance Engineer | 🟢 |
Site Reliability Engineer | 🟢 |
Release Engineer | 🟢 |
Legend
- 🟢 - signed / agreed / supported
- 🟥 - not agreed / unsupported
Changelogs
Node
cardano-node
-
Ledger peer snapshot path entry added to topology JSON parser,
which a new decoder functionreadPeerSnapshotFile
processes
at startup and SIGHUP. Data is available to the diffusion layer
via TVar. -
Configuration changes:
- Add
ConsensusMode
andMinBigLedgerPeersForTrustedState
- Add Genesis config
- Add
diffusionMode
to local root peers group configuration - Add
DoDiskSnapshotChecksum
- Add
-
Use new tracing system by default. To continue using the current system, explicitly set
"UseTraceDispatcher": false
in the config. -
Change fallback node name for trace forwarding from
host:port
tohost_port
-
Replace
snap-server
based web stack inside the Node withwarp / wai
-
Tracing updates:
- Add support for
ChainSelStarvationEvent
,ExtValidationError
- Add support for
KeepAlive
protocol - Add support for
LocalStateQuery
protocol - Add support for
UsingBigLedgerPeerSnapshot
,VerifyPeerSnapshot
- Add support for
ConnectionError
- Add support for
AddNewNodeIdMapping
- Add support for
PeerFetch
andPeerStarvedUs
- Add support for
SnapshotMissingChecksum
- Add support for stateful messages
- Add
maximumKesEvolutions
toInvalidKesSignatureOCERT
event - Rename kind field of all
MuxXxx
trace messages to beMux.Xxx
- Rename fields in
RotatedDynamo
event tooldPeer
,newPeer
- Rename
ConnectTo
toConnect
- Change format of
GenesisPoint
,LabelPeer
,DecisionEvent
- Change format of
ConnectionManagerState
- Change format of
AddedToCurrentChain
- Drop support for
ClientAgency
,ServerAgency
- Drop support for
FetchDecision declined
,FetchDecision results
- Drop support for
StakeKeyInRewardsDELEG
- Drop support for
ChainSelectionForFutureBlock
,BlockInTheFuture
,
CandidateContainsFutureBlocks
,CandidateContainsFutureBlocksExceedingClockSkew
,
InvalidBlockReason
- Add support for
-
Drop NodeToClient versions 9 through 15, and add 19
-
Increase minor protocol version to
10.3
Consensus
- Snapshots are now CRC-checksum checked (link).
- Drop NodeToClient versions < 16 (link).
- Remove
cdbFutureBlocks
as headers now will be delayed until they are no
longer "from the future" (link). - Implement new bulk sync logic for BlockFetch for Genesis (link).
- Update to
typed-protocols-0.3.0.0
API and addKeepAlive
tracer (link). - Fixed a bug where a valid tx with less than 4 bytes less than the max tx size
would be incorrectly rejected by the mempool (link). TestXxxHardForkAtVersion
was removed in favor ofCardanoHardForkTriggers
(link).
Ledger
- Add registered DRep stake distribution query
Network
- Genesis support, see cardano developer portal.
- New bulk sync algorithm for Genesis mode: PR4919
- Diffusion mode for local root peers: PR5020, see cardano developer portal.
- Improvements to connection handshake which enable enforcement of running only agreed upon miniprotocols: PR5061
- Changes in error handling for IOErrors.
cardano-cli
Release Notes for cardano-cli (10.2.0.0 to 10.4.0.0)
Main changes
-
Added
cardano-cli latest query ledger-peer-snapshot
for a snapshot of big ledger peers used when syncing in Genesis
(feature)
PR 727A new query subcommand
ledger-peer-snapshot
was introduced to serialize a snapshot of big ledger peers. These relays will be relied on by network layer when a node is syncing up in Genesis consensus mode, since a node may not have any or up to date information from its own ledger which are the big ledger peer relays. -
Added the
debug check-node-configuration --node-configuration-file node-config.json
command
that readsnode-config.json
and checks that the hashes of genesis files are correct.
(feature)
PR 923 based on ADR 5 -
Added anchor data hash checks to
transaction build
(feature)
PR 951This version adds a built-in check that allows
cardano-cli
to verify anchor data linked by a transaction at the time it is being built if using the commandtransaction build
. Thecardano-cli
will automatically try to download the referenced anchor data, hash it, and check the obtained hash against the one in the transaction, letting the user know if there is a mismatch.
Other features
-
Added
cardano-cli conway query future-pparams
(feature, compatible)
PR 1038 -
Added the ratify-state query
(feature, compatible)
PR 1036 -
Added certificates to CLI interface in
compatible transaction-sign
(feature, compatible)
PR 972 -
DRep ID: support key hash as input
(compatible)
PR 1009 -
transaction id: added
--output-[json,text]
flag to control format of the output
(feature, compatible)
PR 1005 -
Added datums and scripts to
friendlyTxImpl
, which translates into them being showed bytransaction view
.
(feature)
PR 977 -
Implemented the
query proposals
command
(feature, compatible)
PR 984 -
Modified anchor-data checking to allow HTTP schema for testing purposes
(feature)
PR 979 -
transaction build
now checks and fails if stake addresses used for deposit return or treasury withdrawals in proposals are NOT registered on-chain.
(feature)
PR 963 -
Added option
--committee-keys
tocreate-testnet-data
to create the cold and hot credential for constitutional committee members
(compatible)
PR 961
Breaking changes
-
Added governance action deposits to the output of
query stake-address-info
. This also renames the field stakeDeposit to stakeRegistrationDeposit in the JSON output.
(feature, breaking)
PR 1032 -
Integrated
plutus
,cardano-ledger
,ouroboros-network
,ouroboros-consensus
,cardano-api-10.6.0.0
(breaking, feature)
PR 986 -
DRep ID: have
--output-bech32
and--output-hex
instead of--output-format STRING
(breaking)
PR 1017 -
Disambiguated DRep being a key or a script in certificate descriptions
(breaking)
PR 1007 -
Moved
genesis hash
command tohash genesis-file
(breaking)
PR 982 -
Augmented
query spo-stake-distribution
to include the DRep delegation choices of the Pool's rewards accounts
(breaking)
PR 990 -
More fine grained controls of eras for create-testnet-data. Forbid creating DReps and CC in babbage. And remove the
create-testnet-data
altogether in eras earlier than Babbage
(breaking)
PR 968 -
create-testnet-data
: create byron genesis
(breaking, test)
PR 974 -
Transaction submit: print transaction hash, like this:
Transaction successfully submitted. Transaction hash is: {"txhash":"456c614d5d547b7fe197a4d18fbb86e086cb9080594dabf9059adf08b00cf2bd"}
Previously it was:
Transaction successfully submitted.
(feature, breaking)
PR 925
Bugfixes
- Fix costs calculation for transaction with more than one certificates with the same stake credential and script witness.
(bugfix)
PR 1028
cardano-api
10.8.0.0
-
Add QueryFuturePParams
(feature, compatible)
PR 739 -
Re-export
getBlockTxs
(compatible, bugfix)
PR 738 -
Change a representation of witnesses in transaction's certificates to an ordered map where a certificate is the key.
(breaking, bugfix)
PR 734 -
Add support for the ratify-state query
(feature, compatible)
PR 737
10.7.0.0
-
Deprecate patterns, to lower entry bar knowledge to this codebase
(breaking, refactoring)
PR 733 -
Introduce new type
PlutusScriptInEra
and fix the double cbor encoding plutus script bug
Resolves: IntersectMBO/cardano-api#685
(bugfix)
PR 720 -
Shelley: export {to,from}AlonzoLanguage (Plutus script language conversions)
(compatible)
PR 731 -
Expose GovActionState from Ledger
(feature, compatible)
PR 730 -
Deprecate some patterns, remove deprecated ones. See the deprecation stanzas for migration guidance.
(compatible, refactoring)
PR 728
10.6.0.0
-
Downgrade plutus version to 1.37
(bugfix)
PR 727 -
Added schema checking functionality for DRep registration, DRep update, and GovAction metadata, based on CIP-0100, CIP-0108, and CIP-0119. Also add functionality to check whether a certificate is for DRep registration or updating.
(feature, compatible, test)
PR 713 -
Added
GetBigLedgerPeerSnapshot
block query
(breaking)
PR 521 -
Add certificates support in
createCompatibleSignedTx
.
(feature, breaking)
PR 691 -
Integrate
typed-protocols
,ouroboros-network
,cardano-ledger
andouroboros-consensus
(breaking, feature)
PR 687 -
Export genTxOutByron
(compatible)
PR 703
10.5.0.0
-
Don't export the ledger's
coerceKeyRole
function anymore, export RewardAccount
(breaking)
PR 708 -
Adds
modTxTotalCollateral
,modTxReturnCollateral
,modTxFee
,modTxValidityLowerBound
,modTxValidityUpperBound
,modTxMetadata
,modTxAuxScripts
,modTxWithdrawals
,modTxCertificates
,modTxUpdateProposal
,modTxScriptValidity
,modTxMintValue
functions for modifyingTxBodyContent
. AddsaddTxMintValue
andsubtractTxMintValue
.
(compatible)
PR 706 -
Add TxBodyModifier functions:
addTxIns
,modTxInsCollateral
,addTxInsCollateral
,addTxInCollateral
,modTxInsReference
,addTxInsReference
,addTxInReference
,addTxOuts
,modTxExtraKeyWits
,addTxExtraKeyWits
.
(compatible)
PR 704
10.4.0.0
-
Integrate queryProposals (GetProposals)
(feature)
PR 684 -
Export HasKeyRole's coerceKeyRole function
(compatible)
PR 699 -
Exposed
Language
,Plutus
,Script
,getNativeScript
,languageToText
,plutusBinary
,plutusScriptLanguage
,serializeAsHexText
,showTimelock
inCardano.Api.Ledger
, andAlonzoEraOnwardsConstraints
inCardano.Api
(feature)
PR 689 -
Export the Convert class
(compatible)
PR 696 -
fromProposalProcedure: return StakeCredential
(breaking)
PR 692 -
Export GovActionIx from the ledger
(compatible)
PR 688 -
We introduce the
Convert
type class as an alternative to cardano-ledger'sInject
typeclass.
WhileInject
is more general,Convert
is specifically designed for transformations between era-indexed types,
making the intent clearer at call sites where we're converting between eons.
(feature)
PR 690
10.3.0.0
-
Add
sbeToSimpleScriptLanguageInEra
,getScriptWitnessScript
,getScriptWitnessReferenceInput
,getScriptWitnessReferenceInputOrScript
function
RefactorTxMintValue
to better represent minting state
PropagateIsPlutusLanguage
constraint toScriptLanguage lang
,AnyPlutusScriptVersion
,Script lang
andScriptWitness witctx era
types.
RemoveMaybe ScriptHash
fromPReferenceScript
andSReferenceScript
.
(breaking, refactoring)
PR 663 -
Improve plutus script failure error
(feature)
PR 683 -
Remove experimental code exposure in
Cardano.Api
non-experimental modules
(breaking)
PR 681 -
Deprecate eons conversion functions like
conwayEraOnwardsToBabbageEraOnwards
. AddInject
instances for eon conversions. See the PR description for migration aid.
(compatible, refactoring)
PR 636
10.2.0.0
-
ValueParser: rename publicly exposed function names to indicate they are parsers
To adapt: prefix old function name by
parse
and everything should compile again.
(breaking)
PR 674 -
Parameterize Value parser on role of the Value being parsed: transaction output or minting policy
(breaking)
PR 666 -
Add function to extract anchor data from a certificate
(feature)
PR 664 -
Export the Committee record from the ledger, for use in the CLI
(compatible)
PR 669 -
Exposed functions and types from
ouroboros-*
required bycardano-cli
.
(compatible)
PR 667 -
Rename
TxOutDatumInTx
datum toTxOutSupplementalDatum
(breaking)
PR 662 -
Exposed
GovAction
andConstitution
types and constructors required by hash check intransaction build
incardano-cli
(feature)
PR 661
Submit-api
- No changes
Plutus
Detailed Changelogs
Individual packages' changelogs
Package | Version | Changelog |
---|---|---|
Win32-network | 0.2.0.1 | ChangeLog.md |
base-deriving-via | 0.1.0.2 | CHANGELOG.md |
byron-spec-chain | 1.0.1.0 | CHANGELOG.md |
byron-spec-ledger | 1.0.1.0 | CHANGELOG.md |
cardano-api | 10.8.0.0 | CHANGELOG.md |
cardano-binary | 1.7.1.0 | CHANGELOG.md |
cardano-cli | 10.4.0.0 | CHANGELOG.md |
cardano-crypto | 1.1.2 | |
cardano-crypto-class | 2.1.5.0 | CHANGELOG.md |
cardano-crypto-praos | 2.2.0.0 | CHANGELOG.md |
cardano-crypto-test | 1.5.0.2 | |
cardano-crypto-tests | 2.1.2.0 | CHANGELOG.md |
cardano-crypto-wrapper | 1.5.1.3 | CHANGELOG.md |
cardano-data | 1.2.3.1 | CHANGELOG.md |
cardano-git-rev | 0.2.2.0 | |
cardano-ledger-allegra | 1.6.1.0 | CHANGELOG.md |
cardano-ledger-alonzo | 1.12.0.0 | CHANGELOG.md |
cardano-ledger-alonzo-test | 1.3.0.1 | CHANGELOG.md |
cardano-ledger-api | 1.10.0.0 | CHANGELOG.md |
cardano-ledger-babbage | 1.10.1.0 | CHANGELOG.md |
cardano-ledger-babbage-test | 1.3.0.0 | CHANGELOG.md |
cardano-ledger-binary | 1.5.0.0 | CHANGELOG.md |
cardano-ledger-byron | 1.0.2.0 | CHANGELOG.md |
cardano-ledger-byron-test | 1.5.2.0 | CHANGELOG.md |
cardano-ledger-conway | 1.18.1.0 | CHANGELOG.md |
cardano-ledger-conway-test | 1.3.0.0 | CHANGELOG.md |
cardano-ledger-core | 1.16.0.0 | CHANGELOG.md |
cardano-ledger-mary | 1.7.1.0 | CHANGELOG.md |
cardano-ledger-shelley | 1.15.0.0 | CHANGELOG.md |
cardano-ledger-shelley-ma-test | 1.2.2.5 | CHANGELOG.md |
cardano-ledger-shelley-test | 1.5.1.0 | CHANGELOG.md |
cardano-ping | 0.7.0.0 | CHANGELOG.md |
cardano-prelude | 0.2.1.0 | ChangeLog.md |
cardano-prelude-test | 0.1.0.5 | |
cardano-protocol-tpraos | 1.3.0.0 | CHANGELOG.md |
cardano-slotting | 0.2.0.0 | CHANGELOG.md |
cardano-strict-containers | 0.1.3.0 | CHANGELOG.md |
contra-tracer | 0.1.0.2 | |
cuddle | 0.3.2.1 | CHANGELOG.md |
ekg-forward | 0.8.1 | CHANGELOG.md |
ekg-wai | 0.1.1.0.0.0.0.1 | |
heapwords | 0.1.0.2 | CHANGELOG.md |
iohk-monitoring | 0.2.0.0 | |
libsystemd-journal | 1.4.5.0.0.0.0.1 | Changelog.md |
lobemo-backend-aggregation | 0.1.0.0 | |
lobemo-backend-ekg | 0.2.0.0 | |
lobemo-backend-monitoring | 0.1.0.0 | |
lobemo-backend-trace-forwarder | 0.1.0.0 | |
lobemo-scribe-systemd | 0.1.0.0 | |
measures | 0.1.0.2 | CHANGELOG.md |
monoidal-synchronisation | 0.1.0.6 | CHANGELOG.md |
network-mux | 0.6 | CHANGELOG.md |
non-integral | 1.0.0.0 | CHANGELOG.md |
optparse-applicative-fork | 0.18.1.0 | CHANGELOG.md |
ouroboros-consensus | 0.22.0.0 | CHANGELOG.md |
ouroboros-consensus-cardano | 0.21.0.1 | CHANGELOG.md |
ouroboros-consensus-diffusion | 0.20.0.0 | CHANGELOG.md |
ouroboros-consensus-protocol | 0.10.0.0 | CHANGELOG.md |
ouroboros-network | 0.19.0.3 | CHANGELOG.md |
ouroboros-network-api | 0.12.0.0 | CHANGELOG.md |
ouroboros-network-framework | 0.16.0.0 | CHANGELOG.md |
ouroboros-network-mock | 0.1.1.2 | CHANGELOG.md |
ouroboros-network-protocols | 0.13.0.0 | CHANGELOG.md |
ouroboros-network-testing | 0.8.0.0 | CHANGELOG.md |
plutus-core | 1.37.0.0 | CHANGELOG.md |
plutus-ledger-api | 1.37.0.0 | CHANGELOG.md |
plutus-tx | 1.37.0.0 | CHANGELOG.md |
prettyprinter-configurable | 1.36.0.0 | |
quickcheck-monoids | 0.1.0.1 | CHANGELOG.md |
set-algebra | 1.1.0.3 | CHANGELOG.md |
small-steps | 1.1.0.1 | CHANGELOG.md |
sop-extras | 0.2.1.0 | CHANGELOG.md |
strict-checked-vars | 0.2.0.0 | CHANGELOG.md |
strict-sop-core | 0.1.2.0 | CHANGELOG.md |
tracer-transformers | 0.1.0.4 | |
typed-protocols | 0.3.0.0 | CHANGELOG.md |
typed-protocols-cborg | 0.3.0.0 | CHANGELOG.md |
typed-protocols-examples | 0.5.0.0 | |
typed-protocols-stateful | 0.3.0.0 | |
typed-protocols-stateful-cborg | 0.3.0.0 | ChangeLog.md |
validation-selective | 0.2.0.0.0.0.0.0.1 | CHANGELOG.md |
vector-map | 1.1.0.0 | CHANGELOG.md |