Skip to content

Cardano Node 8.12.0-pre

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 21 Jun 09:00
· 353 commits to master since this release
ae8bc93

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

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 and GetPoolDistr queries to return a
    Consensus-vendored version of PoolDistr (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.
Network
  • Don't include peers that are failing in peershare responses.
  • Bump io-sim and io-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 of transaction view: governance actions and voters.
    Please see [this](IntersectMBO/cardano-cli#774 (comment) for example outputs) issue.
    When those fields are irrelevant, they are present but there value is null.
    (compatible)
    PR 774
  • query protocol-parameters: use ledger JSON encoding, not API one (breaking) PR 758
  • Make --fee mandatory in transaction build-raw. Remove TxCmdTxFeeValidationError type. (breaking, bugfix) PR 768
  • Remove UnwitnessedCliFormattedTxBody constructor (improvement) PR 707
  • Make --prev-governance-action-tx-id and --prev-governance-action-tx-id optional for create-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. Rename LedgerStateCondition to ConditionResult.
  • 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 for AssocMap.

  • V3 scripts has new type signature as described in the CIP-69

    • V3 scripts return BuiltinUnit 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