10.2.1
Node 10.2.1
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.
Limitations
Note that lightweight checkpoints are not integrated into node 10.2.1
, so it is recommended to only use Ouroboros Genesis for testing purposes (on e.g. Preview or PreProd) and not on Mainnet.
Known Issues
There is a known bug with the experimental Ouroboros Genesis feature that is not yet recommended for mainnet use.
ChainSync Jumping (CSJ) is not disabled once a node is caught up. This should not affect normal operation of the syncing node, but does risk a DoS attack for the caught-up node. It will be corrected in a future release (Issue IntersectMBO/ouroboros-consensus#1490).
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
- 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 |
---|---|
Technical Steering Committee (Intersect) | 🟢 |
Product Committee (Intersect) | 🟢 |
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 |