Node 10.3.1
primarily improves on performance: it improves execution speed, reduces memory usage and gives faster synchronisation times. In addition, it provides several enhancements to the new tracing system. It also provides support for light-weight checkpointing that is needed to enable ouroboros-genesis
. Finally, it includes bug-fixes for a number of CLI commands. The docker images for node
and submit-api
have also received improvements to streamline operations.
System testing results for the 10.3.1
release can be found on the corresponding tag testing page.
This version of the node is released as a pre-release, pending community testing. It is not recommended for production use at this point in time.
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 9.6
- Cabal 3.8/3.12
Supported roles
Platform | Block Production | Relay | Client (Desktop) |
---|---|---|---|
Linux | 🟢 | 🟢 | 🟢 |
Windows | 🟥 | 🟥 | 🟢 |
MacOS | 🟥 | 🟥 | 🟢 |
Downloads
Documentation
- Cardano Node documentation
- For details about changes to configuration for
ouroboros-genesis
please refer to the Cardano Book - The getting started guide may also be helpful for general queries.
- Networking options and related changes are listed on the P2P section
- For details about changes to configuration for
- 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 | N/A |
Release Engineer | 🟢 |
Legend
- 🟢 - signed / agreed / supported
- 🟥 - not agreed / unsupported
Changelogs
Node
-
Update the default compiler version from
8.10.x
to9.6.x
. -
Add
ForkPolicy
to the configuration (this is an experimental option for network behaviour) -
Optionally support light-weight check-pointing for
ouroboros-genesis
. -
Tracing
- New
PrometheusSimple
backend which runs a simple TCP server for direct exposition of metrics, without forwarding, under the URL/metrics
. - New
maxReconnectDelay
config option inTraceOptionForwarder
: Specifies maximum delay (seconds) between (re-)connection attempts of a forwarder (default: 60s). - Fix: change semantics of several
Forge.*
metrics to counters - to match semantics of legacy tracing. - Fix: correct
blockdelay_cdf*
metric - Fix: correct
blockReplayProgress
metric - Optimizations to trace + metrics forwarding, aimed at reducing CPU usage when under low / idle load.
- New
-
Docker
- Add baseline network configuration references for the node image
- Add a new
merge
mode for the node image - Reduce default path inconsistencies within and between the node and submit-api images
- Improve documentation
- Implemented in PR#6110 where breaking changes are also noted
Consensus
- Queries and mini-protocols
- Removed legacy
{HardForkSpecific,Shelley,Cardano}NodeToClientVersions
and related code. - Export new function
querySupportedVersions
. For this, add methodblockQueryIsSupportedOnVersion
toBlockSupportsLedgerQuery
. - Use
NodeToClientV_20
.- Expose new query QueryStakePoolDefaultVote.
- Query
GetProposedPParamsUpdates
has been deprecated and is not supported inShelleyNodeToClientV12
(NodeToClientV_20
).
- Removed legacy
- Tracers
- Added a new CSJ tracer to ChainSync client interface.
- Renamed the existing tracer in
Ouroboros.Consensus.Node.Tracers.Tracers
. - Added peer sharing tracer to NTN tracers.
- Renaming and relocation
- Move
Ouroboros.Consensus.Cardano.ByronHFC
toOuroboros.Consensus.Byron.ByronHFC
.
- Move
- Expose blockchain time as
getBlockchainTime :: BlockchainTime m
in the NodeKernel - Deprecate the
StandardX
type aliases for eras.
Ledger
- Removed crypto-parametrization from ledger eras, which finally allowed us to avoid regression in
ghc-9
and stop usingghc-8.10.7
for buildingcardano-node
releases. - Improve performance of ledger snapshot creation by changing how we serialize
UTxO
in the ledger state. This should sove an issue with missed leadership checks due to snapshot creation problemouroboros-consensus#868
- Add cli to
plutus-debug
executable and provide ability for overridding different parts used for script execution. - Much cleanup, re-organization of the code and various minor performance optimizations
Network
keep-alive
mini-protocol receiver is always (re)started, when we receive traffic on any othernode-to-node
mini-protocol- experimental option which binds mini-protocol threads to lower capabilities, leaving two capabilities free for other threads
CLI
-
Bump cardano-api to include bug fixes for:
- Silently dropping simple scripts in transaction construction
- Not selecting the highest protocol version in a given era. This resulted in erroneous plutus script decoding failures.
(compatible, bugfix)
PR 1127 -
Bump to cardano-api-10.13.0.0 - Fix bug in the construction of the redeemer pointer map
(bugfix)
PR 1124 -
Delete top level
babbage
command group
(breaking)
PR 1117 -
Source import of the
vary
package
(feature)
PR 1121 -
Bumped ledger and dependencies for node 10.3 release.
- Removed use of parameterised crypto (
EraCrypto c
, this enables many other data types to become mono-morphic overStandardCrypto
) - Added
query stake-pool-default-vote
- Ensured security parameter is non-zero
(breaking, feature)
PR 1075
- Removed use of parameterised crypto (
-
Add a new query for stake-pool default vote
(feature, release)
PR 1081 -
Delete top-level
shelley
command group and delete associated tests
(breaking)
PR 1111 -
Parallelised help golden test generation and validation
(optimisation)
PR 1103 -
Added support for mnemonic sentence generation and extended key derivation from mnemonic sentences.
(feature)
PR 975 -
Remove minting capabilities in eras prior to Mary.
Change minted assets representation toL.MultiAsset
instead ofValue
.
(compatible)
PR 1085 -
Update cardano-api-10.10.0.0
Fix signing of a transaction incompatible shelley transaction signed-transaction
command. Previously two different transaction bodies were used for the resulting transaction and the signature - now it's used the same for both purposes.
(bugfix)
PR 1057 -
Add stake address registration and delegation certificate and stake pool delegation certificate to compatible commands
(compatible)
PR 1070 -
Default to hex for binary query utxo output
(feature, breaking)
PR 1066 -
Add command to calculate plutus script costs from an already constructed transaction.
(feature)
PR 1031 -
Add binary output option for query utxo command
(feature)
PR 1000 -
Add
cardano-cli conway query future-pparams
(feature, compatible)
PR 1038 -
Add 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 -
Add the ratify-state query
(feature, compatible)
PR 1036 -
Fix costs calculation for transaction with more than one certificates with the same stake credential and script witness.
(bugfix)
PR 1028 -
Add certificates to CLI interface in
compatible transaction-sign
(feature, compatible)
PR 972
API
-
Fix
toAnyWitness
to not ignore simple scripts
UpdategetVersion
to retrieve the highest protocol version given an era
(compatible, bugfix)
PR 805 -
Sort transaction fields in CBOR representation
(feature, compatible)
PR 785 -
Fix bug in the construction of the redeemer pointer map.
(breaking, bugfix)
PR 800 -
Removed
createPreviousGovernanceActionId
. UseGovPurposeId . createGovernanceActionId
instead.
ExportGovPurposeId
throughCardano.Api.Ledger
.
(breaking, refactoring)
PR 797 -
Remove unused ledger types' wrappers:
GovernanceActionId
andVoter
. UseGovActionId
andVoter
from ledger instead.
(breaking, refactoring)
PR 796 -
Delegate decision on supported versions for queries to Consensus.
(feature)
PR 790 -
Adding missing
fromCtxUTxOTxOut
export
(compatible)
PR 794 -
Bumped ledger and dependencies for node 10.3 release.
(breaking)
PR 758- Removed
queryProtocolParametersUpdate
and the use of parameterised crypto (EraCrypto c
, this enables many other data types to become mono-morphic overStandardCrypto
) - Added
queryStakePoolDefaultVote
andqueryLedgerConfig
- Removed
-
New witness api
(feature, compatible, refactoring)
PR 763 -
Fix inputSet to be parameterized on the era
(breaking, bugfix)
PR 788 -
Remove the ProtocolParameters type, that has been deprecated for a while
(breaking)
PR 729 -
Add missing
CastVerificationKeyRole StakePoolExtendedKey StakePoolKey
instance
(compatible)
PR 782 -
Added support for generating mnemonics and for deriving payment and stake keys from mnemonics.
(feature)
PR 678 -
Add
fromCtxUTxOTxOut
, inverse oftoCtxUTxOTxOut
(compatible)
PR 770 -
Make 1-1 relationship of witness and policy ID in TxMintValue instead of 1-*
Remove exports:parseValue
,ParserValueRole
Add new typePolicyAssets
representing minted assets within a single PolicyId
AddmkTxMintValue
helper function
(breaking, refactoring)
PR 776 -
Add Key instance for StakePoolExtendedKey
(feature, compatible)
PR 777 -
Add missing certificates in compatible transaction building in eras after Shelley and prior to Alonzo
(bugfix)
PR 775 -
Added
HasTextEnvelope
instance forEraHistory
(feature, compatible)
PR 771 -
Define
fromList
andtoList
inCardano.Api.UTxO
module.
(compatible)
PR 767 -
Include deserialisation of stake keys in deserialiseAnyVerificationKeyTextEnvelope
(feature, compatible)
PR 757 -
Fixed a bug that caused balancing algorithm to drop unwitnessed government actions
(bugfix)
PR 765 -
Modify
estimateTransactionKeyWitnessCount
to estimate simple scripts too
(bugfix)
PR 755 -
Split compatible transaction building into separate building and signing functions.
RenameCardano.Api.Internal.Tx.Compatible
toCardano.Api.Internal.Compatible.Tx
.
(breaking)
PR 750 -
Re-export
DebugPlutusFailure
andrenderDebugPlutusFailure
.
(compatible)
PR 715 -
Add
Cardano.Api.Tx.UTxO
module for common UTxO operations.
(feature, compatible)
PR 710 -
Removed
serialiseTxLedgerCddl
anddeserialiseTxLedgerCddl
, and updatedwriteTxFileTextEnvelopeCddl
to use new format.
(breaking)
PR 746 -
Upgrade ouroboros-consensus-diffusion to >=0.19 && <0.21
(compatible)
PR 751 -
Update TxProposalProcedures type to make invalid states irrepresentable.
(breaking, refactoring)
PR 726 -
Add function
collectPlutusScriptHashes
to collect script hashes needed to validate a given transaction
(feature)
PR 735 -
Fix transaction autobalancing when deregistering a credential
(bugfix)
PR 718
Submit API
- No changes
Plutus
- The
verifyEd25519Signature
primitive now uses thecrypton
library for Plutus V1 and V2, instead ofcryptonite
(for V3, it has already beencrypton
). Thecryptonite
dependency has been removed.
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.1.0.0 | CHANGELOG.md |
cardano-api | 10.13.1.0 | CHANGELOG.md |
cardano-binary | 1.7.1.0 | CHANGELOG.md |
cardano-cli | 10.7.0.0 | CHANGELOG.md |
cardano-crypto-class | 2.2.1.0 | CHANGELOG.md |
cardano-crypto-praos | 2.2.0.0 | CHANGELOG.md |
cardano-crypto-test | 1.6.0.0 | CHANGELOG.md |
cardano-crypto-tests | 2.2.0.0 | CHANGELOG.md |
cardano-crypto-wrapper | 1.6.0.0 | CHANGELOG.md |
cardano-data | 1.2.4.0 | CHANGELOG.md |
cardano-git-rev | 0.2.2.0 | |
cardano-ledger-allegra | 1.7.0.0 | CHANGELOG.md |
cardano-ledger-alonzo | 1.13.0.0 | CHANGELOG.md |
cardano-ledger-alonzo-test | 1.3.1.0 | CHANGELOG.md |
cardano-ledger-api | 1.11.0.0 | CHANGELOG.md |
cardano-ledger-babbage | 1.11.0.0 | CHANGELOG.md |
cardano-ledger-babbage-test | 1.3.1.0 | CHANGELOG.md |
cardano-ledger-binary | 1.6.0.0 | CHANGELOG.md |
cardano-ledger-byron | 1.1.0.0 | CHANGELOG.md |
cardano-ledger-byron-test | 1.5.2.1 | CHANGELOG.md |
cardano-ledger-conway | 1.19.0.0 | CHANGELOG.md |
cardano-ledger-conway-test | 1.3.1.0 | CHANGELOG.md |
cardano-ledger-core | 1.17.0.0 | CHANGELOG.md |
cardano-ledger-mary | 1.8.0.0 | CHANGELOG.md |
cardano-ledger-shelley | 1.16.0.0 | CHANGELOG.md |
cardano-ledger-shelley-ma-test | 1.3.0.0 | CHANGELOG.md |
cardano-ledger-shelley-test | 1.6.0.0 | CHANGELOG.md |
cardano-ping | 0.8.0.0 | CHANGELOG.md |
cardano-prelude | 0.2.1.0 | ChangeLog.md |
cardano-prelude-test | 0.1.0.5 | |
cardano-protocol-tpraos | 1.4.0.0 | CHANGELOG.md |
cardano-slotting | 0.2.0.0 | CHANGELOG.md |
cardano-strict-containers | 0.1.4.0 | CHANGELOG.md |
contra-tracer | 0.1.0.1 | |
cuddle | 0.3.2.1 | CHANGELOG.md |
ekg-forward | 0.9 | CHANGELOG.md |
heapwords | 0.1.0.2 | CHANGELOG.md |
iohk-monitoring | 0.2.1.0 | |
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.7 | CHANGELOG.md |
non-integral | 1.0.0.0 | CHANGELOG.md |
optparse-applicative-fork | 0.18.1.0 | CHANGELOG.md |
ouroboros-consensus | 0.24.0.0 | CHANGELOG.md |
ouroboros-consensus-cardano | 0.23.0.0 | CHANGELOG.md |
ouroboros-consensus-diffusion | 0.21.0.1 | CHANGELOG.md |
ouroboros-consensus-protocol | 0.11.0.0 | CHANGELOG.md |
ouroboros-network | 0.20.1.0 | CHANGELOG.md |
ouroboros-network-api | 0.13.0.0 | CHANGELOG.md |
ouroboros-network-framework | 0.17.0.0 | CHANGELOG.md |
ouroboros-network-mock | 0.1.1.2 | CHANGELOG.md |
ouroboros-network-protocols | 0.14.0.0 | CHANGELOG.md |
ouroboros-network-testing | 0.8.1.0 | CHANGELOG.md |
plutus-core | 1.43.1.0 | CHANGELOG.md |
plutus-ledger-api | 1.43.1.0 | CHANGELOG.md |
plutus-tx | 1.43.1.0 | CHANGELOG.md |
plutus-tx-plugin | 1.43.1.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.1.0 | CHANGELOG.md |
sop-extras | 0.3.0.0 | CHANGELOG.md |
strict-checked-vars | 0.2.0.0 | CHANGELOG.md |
strict-sop-core | 0.1.3.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 |