NOTE: THIS RELEASE IS ONLY RECOMMENDED FOR USE ON THE SANCHONET AND PUBLIC TEST ENVIRONMENTS (E.G. PREVIEW) AT THIS TIME. IT IS NOT RECOMMENDED FOR USE ON MAINNET.
Node 8.12.0-pre
includes essential changes and fixes that are needed for the Chang hard fork. It provides an implementation of CIP-69 for Plutus v3 (only). Existing Plutus v3 scripts will therefore need to be changed. No changes are needed for Plutus v1 or v2 scripts. The node also includes a number of bug fixes and performance improvements, as well as enhancements to Peer-to-Peer networking and the CLI including a new debug log-epoch-state
command.
This version of the node is recommended for use on Preview and SanchoNet only, but users are advised to test carefully against it since it comprises a release candidate for the Chang hard fork (node version 9.x). Note that node 8.12
includes breaking changes against node version 8.11
or earlier when running in the Conway era (but not Babbage).
Known Issues
Haskell Security Advisory
Haskell Security Advisory is a repository of security advisories filed against packages published via Hackage.
cabal-audit output:
Found advisories:
dependency "base" at version 4.14.3.0 is vulnerable for:
HSEC-2023-0007 "readFloat: memory exhaustion with large exponent"
published: 2024-06-13 08:04:41 +0200
https://haskell.github.io/security-advisories/advisory/HSEC-2023-0007
No fix version available
toml, parser, dos
dependency "process" at version 1.6.13.2 is vulnerable for:
HSEC-2024-0003 "process: command injection via argument list on Windows"
published: 2024-06-13 08:04:41 +0200
https://haskell.github.io/security-advisories/advisory/HSEC-2024-0003
Fix available since version 1.6.19.0
windows
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 or M3) processor
- 24GB of RAM
- 200GB 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 or later
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
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 | N/A for pre-release |
Performance Engineer | N/A for pre-release |
Site Reliability Engineer | N/A for pre-release |
Release Engineer | 🟢 |
Changelogs
Node
- New metric
cardano_build_info
, using label syntax ({x="a", y="b", ...}
) to provide detailed build info about the Node binary. - New metric
forging_enabled
, indicating whether the Node's protocol has been instantiated with forger credentials or not.
Consensus
- Changed
GetStakeDistribution
andGetPoolDistr
queries to return a
Consensus-vendored version ofPoolDistr
(instead of using the one from
Ledger, as it changed in a backwards-incompatible manner).
Ledger
- Implemented CIP-0069, which improves
PlutusV3
functionality by making spending datums optional and enforcing all scripts to have exactly one argument. - Ensure that
CommitteeMinSize
protocol parameter is ignored during bootstrap phase. - Restrict types for some protocol parameters and fixup CDDL specification to reflect actual deserializers.
- Create pool stake distribution query for voting.
- Included rewards accounts in stake pool distribution calculation for voting.
- Bug fixes:
- Fixes to
DRep
expiry logic and the choice of correct threshold for the committee voting. - Script execution for certificates with the same plutus script did not execute correctly.
- Prevent delegation to a non-existent pool.
- Fixes to
Network
- Don't include peers that are failing in peershare responses.
- Bump
io-sim
andio-classes
- Refactor testnet
- Added
ShowProxy SlotNo
instance
Cardano-cli
- New
debug log-epoch-state
command (feature, compatible, refactoring) PR 775 transaction view
: show proposals and votes
This adds two new fields to the JSON output oftransaction view
:governance actions
andvoters
.
Please see [this](IntersectMBO/cardano-cli#774 (comment) for example outputs) issue.
When those fields are irrelevant, they are present but there value isnull
.
(compatible)
PR 774query protocol-parameters
: use ledger JSON encoding, not API one (breaking) PR 758- Make
--fee
mandatory intransaction build-raw
. RemoveTxCmdTxFeeValidationError
type. (breaking, bugfix) PR 768 - Remove
UnwitnessedCliFormattedTxBody
constructor (improvement) PR 707 - Make
--prev-governance-action-tx-id
and--prev-governance-action-tx-id
optional forcreate-no-confidence
command
Cardano-api
- Deserialize ouroboros-consensus's PoolDistr instead of cardano-ledger's PoolDist to maintain backwards compatibility with the PoolDistr query. This is needed because cardano-ledger's PoolDistr datatype has changed. (compatible) IntersectMBO/cardano-api#562
- Updated dependencies:
cardano-ledger
ouroboros-consensus
ouroboros-network
plutus
- Replaced Cardano.Api.Fees.TransactionValidityError.TransactionValidityTranslationError with Cardano.Api.Fees.ScriptExecutionError.ScriptErrorTranslationError
- Concretized toShelleyMultiSig and fromShelleyMultiSig to ShelleyEra. (feature, breaking) IntersectMBO/cardano-api#552
- evaluateTransactionExecutionUnitsShelley: return logs that are useful for debugging (breaking) IntersectMBO/cardano-api#555
- Export Target type from ouroboros-network, to be more convenient to users (compatible) IntersectMBO/cardano-api#448
- Add MuxError handling in
FoldBlocksError
. RenameLedgerStateCondition
toConditionResult
. - Prepare deprecation of ProtocolParameters
- TxBodyContent: support treasury donations
- Added deprecation warning to function
serialiseTxLedgerCddl
Plutus
- Added a new `Value` type backed by `Data`. This is currently experimental and not yet used in the ledger API.-
Exported the following from
PlutusLedgerApi.Common
in #6178:ExCPU (..)
ExMemory (..)
SatInt (unSatInt)
fromSatInt
toOpaque
,fromOpaque
BuiltinData (..)
ToData (..)
FromData (..)
UnsafeFromData (..)
toData
fromData
unsafeFromData
dataToBuiltinData
builtinDataToData
-
Removed semantically incorrect
Eq
instances forAssocMap
. -
V3
scripts has new type signature as described in the CIP-69V3
scripts returnBuiltinUnit
instead of()
.PlutusTx.check
used to have type:: Bool -> ()
and is changed now to:: Bool -> BuiltinUnit
.
(This breaks compilation of existing V1/V2 scripts, however any scripts compiled with an older compiler will still continue to work)
Individual packages' changelogs
Package | Version | Changelog |
---|---|---|
Win32-network | 0.2.0.0 | 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 | 8.48.0.1 | CHANGELOG.md |
cardano-binary | 1.7.1.0 | CHANGELOG.md |
cardano-cli | 8.24.0.0 | CHANGELOG.md |
cardano-crypto | 1.1.2 | |
cardano-crypto-class | 2.1.5.0 | CHANGELOG.md |
cardano-crypto-praos | 2.1.2.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.2 | CHANGELOG.md |
cardano-data | 1.2.2.0 | CHANGELOG.md |
cardano-git-rev | 0.2.2.0 | |
cardano-ledger-allegra | 1.5.0.0 | CHANGELOG.md |
cardano-ledger-alonzo | 1.9.0.0 | CHANGELOG.md |
cardano-ledger-alonzo-test | 1.2.1.2 | CHANGELOG.md |
cardano-ledger-api | 1.9.2.0 | CHANGELOG.md |
cardano-ledger-babbage | 1.8.1.0 | CHANGELOG.md |
cardano-ledger-babbage-test | 1.2.0.3 | CHANGELOG.md |
cardano-ledger-binary | 1.3.3.0 | CHANGELOG.md |
cardano-ledger-byron | 1.0.1.0 | CHANGELOG.md |
cardano-ledger-byron-test | 1.5.1.1 | CHANGELOG.md |
cardano-ledger-conway | 1.15.0.0 | CHANGELOG.md |
cardano-ledger-conway-test | 1.2.1.6 | CHANGELOG.md |
cardano-ledger-core | 1.13.0.0 | CHANGELOG.md |
cardano-ledger-mary | 1.6.1.0 | CHANGELOG.md |
cardano-ledger-shelley | 1.12.0.0 | CHANGELOG.md |
cardano-ledger-shelley-ma-test | 1.2.2.2 | CHANGELOG.md |
cardano-ledger-shelley-test | 1.4.0.2 | CHANGELOG.md |
cardano-ping | 0.2.0.14 | CHANGELOG.md |
cardano-prelude | 0.2.0.0 | ChangeLog.md |
cardano-prelude-test | 0.1.0.3 | |
cardano-protocol-tpraos | 1.2.0.1 | 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 | |
ekg | 0.4.0.15.0.0.0.0.2 | CHANGELOG.md |
ekg-core | 0.1.1.7.0.0.0.0.1 | CHANGELOG.md |
ekg-forward | 0.5 | CHANGELOG.md |
ekg-json | 0.1.0.7.0.0.0.0.2 | CHANGELOG.md |
fs-api | 0.2.0.1 | CHANGELOG.md |
fs-sim | 0.2.1.1 | CHANGELOG.md |
heapwords | 0.1.0.2 | CHANGELOG.md |
iohk-monitoring | 0.1.11.4 | |
libsystemd-journal | 1.4.5.0.0.0.0.1 | Changelog.md |
lobemo-backend-aggregation | 0.1.0.0 | |
lobemo-backend-ekg | 0.1.1.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.5 | CHANGELOG.md |
network-mux | 0.4.5.2 | CHANGELOG.md |
non-integral | 1.0.0.0 | CHANGELOG.md |
optparse-applicative-fork | 0.18.1.0 | CHANGELOG.md |
ouroboros-consensus | 0.19.0.0 | CHANGELOG.md |
ouroboros-consensus-cardano | 0.17.0.0 | CHANGELOG.md |
ouroboros-consensus-diffusion | 0.17.0.0 | CHANGELOG.md |
ouroboros-consensus-protocol | 0.9.0.1 | CHANGELOG.md |
ouroboros-network | 0.16.1.0 | CHANGELOG.md |
ouroboros-network-api | 0.7.3.0 | CHANGELOG.md |
ouroboros-network-framework | 0.13.2.0 | CHANGELOG.md |
ouroboros-network-mock | 0.1.1.1 | CHANGELOG.md |
ouroboros-network-protocols | 0.9.0.0 | CHANGELOG.md |
ouroboros-network-testing | 0.6.2.0 | CHANGELOG.md |
plutus-core | 1.30.0.0 | CHANGELOG.md |
plutus-ledger-api | 1.30.0.0 | CHANGELOG.md |
plutus-tx | 1.30.0.0 | CHANGELOG.md |
prettyprinter-configurable | 1.30.0.0 | |
quickcheck-monoids | 0.1.0.0 | CHANGELOG.md |
set-algebra | 1.1.0.3 | CHANGELOG.md |
small-steps | 1.1.0.0 | CHANGELOG.md |
sop-extras | 0.2.0.0 | CHANGELOG.md |
strict-checked-vars | 0.2.0.0 | CHANGELOG.md |
strict-sop-core | 0.1.1.0 | CHANGELOG.md |
tracer-transformers | 0.1.0.4 | |
typed-protocols | 0.1.1.0 | CHANGELOG.md |
typed-protocols-cborg | 0.1.0.4 | CHANGELOG.md |
typed-protocols-examples | 0.2.0.2 | |
validation-selective | 0.2.0.0.0.0.0.0.1 | CHANGELOG.md |
vector-map | 1.1.0.0 | CHANGELOG.md |
Legend
-
🟢 - signed / agreed / supported
-
🟥 - not agreed / unsupported