Cardano Node 1.34.0
Node version 1.34 brings a number of important new features that will benefit stake pool operators and other users, including
- a new tracing mechanism
- a new command to query the local mempool
- a new command to provide stake pool operators with their leadership schedule
- a new command to check the validity of stake pool operational certificates (including verifying the KES period)
- support for CBOR encoding in transaction build commands,
- an option to output transaction bodies in ledger-compliant CDDL format,
- an option to calculate the cost of executing a Plutus script,
- incremental transaction signing.
It also includes a number of stability improvements, plus improvements to the performance of Plutus scripts.
Known Issues
To avoid increased synchronisation times, we recommended that Windows users DO NOT upgrade to node version 1.34.0. We recommend instead that they continue to run node 1.33.0. Future releases will address this issue which is specific to 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)
- 12GB of RAM
- 50GB of free storage
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, 10.14, 10.15, 11
Supported roles
Platform | Block Production | Relay | Client (Desktop) |
---|---|---|---|
Linux | ✔️ | ✔️ | ✔️ |
Windows | ❌ | ❌ | ✔️ |
MacOS | ❌ | ❌ | ✔️ |
Downloads
- Docker image
- Hydra binaries
⚠️ Please note that due to an issue with syncing, Windows users should not upgrade to this release - Configuration files
Documentation
- Cardano Node documentation
- Cardano CLI
- Internal API docs for ledger, consensus and network
- Compatibility matrix
Changelogs
Node
- Separate the logic for shutdown via IPC and shutdown on reaching a specified slot. (#3320, #3508)
- Tests for certifying and withdrawing Plutus scripts. (#3318)
- Various documentation updates. (#2875, #2884, #2839, #2904, #3476, #3482, #3486, #3500, #3502, #3542, #3553, #3573, #3603)
- Integrate the new tracing system in
cardano-node
. (#3450, #3496, #3497, #3498, #3570) - The stake credential history tool now additionally displays the protocol version. (#3409)
Consensus
Ledger
Network
- Add a new mini-protocol to query the local mempool. (#3404)
- Stop the MUX in case of miniprotocol timeout. This can happen if a peer is demoted to cold, and could result in lingering miniprotocols in an unknown state if the peer is again promoted. (#3575, #3580)
- Avoid ordering peers based upon peerid in block fetch. Ordering based on peerid would often result in all nodes choosing the same second, third choice peers etc. These are now based on a node-local random ordering. (#3535)
Cardano-cli
- Add a prettier rendering of update proposals. (#3208)
- Add support for CBOR-encoded blobs in the
transaction build
andtransaction build-raw
commands. (#3483) - Implement a
leadership-schedule
command. This can calculate a stake pool's leadership schedule for the current and following epoch. It requires access to the VRF signing key for that stake pool. (#3464, #3494)> cardano-cli query leadership-schedule \ --testnet-magic 42 \ --genesis example/shelley/genesis.json \ --stake-pool-id pool12t0y7agkqct89pf00eeytkvfjlquv76tjy27duannan9w63ckxv \ --vrf-signing-key-file example/node-pool1/shelley/vrf.skey --current SlotNo UTC Time -------------------------------------------------------- 4073 2021-12-29 17:26:54.998001755 UTC 4126 2021-12-29 17:27:00.298001755 UTC 4206 2021-12-29 17:27:08.298001755 UTC 4256 2021-12-29 17:27:13.298001755 UTC 4309 2021-12-29 17:27:18.598001755 UTC 4376 2021-12-29 17:27:25.298001755 UTC 4423 2021-12-29 17:27:29.998001755 UTC 4433 2021-12-29 17:27:30.998001755 UTC
- The CLI now supports outputting transaction bodies in ledger-compliant CDDL in the
transaction build
andtransaction build-raw
commands. This is specified by using the--cddl-format
flag. (#3505) - Implement a
kes-period-info
command in the CLI. This checks that your operational certificate is correct. It checks:- The counters match what is in the node's protocol state
- The KES period in the operational certificate is correct (based on the current slot). (#3459, #3572, #3599)
> cardano-cli query kes-period-info --testnet-magic 42 \ --op-cert-file example/node-pool1/shelley/node.cert ✓ The operational certificate counter agrees with the node protocol state counter ✓ Operational certificate's kes period is within the correct KES period interval { "qKesNodeStateOperationalCertificateNumber": 6, "qKesCurrentKesPeriod": 404, "qKesOnDiskOperationalCertificateNumber": 6, "qKesRemainingSlotsInKesPeriod": 3760228, "qKesMaxKESEvolutions": 62, "qKesKesKeyExpiry": "2022-03-20T21:44:51Z", "qKesEndKesInterval": 434, "qKesStartKesInterval": 372, "qKesSlotsPerKesPeriod": 129600 }
- The CLI now displays collateral inputs in a nicer fashion. (#3463)
- The
transaction sign
command now allows for incremental signing by providing an already signed transaction via--tx-file
. This allows more easily adding multiple signatures to a transaction. (#3549) - The
transaction build
command now supports an option (--calculate-plutus-script-cost
) to compute the cost for included scripts. (#3589)cardano-cli transaction build \ --alonzo-era \ --cardano-mode \ --testnet-magic "$TESTNET_MAGIC" \ --change-address "$utxoaddr" \ --tx-in "$plutusutxotxin" \ --tx-in-collateral "$txinCollateral" \ --tx-out "$dummyaddress+10000000" \ --tx-in-script-file "$plutusscriptinuse" \ --tx-in-datum-file "$datumfilepath" \ --protocol-params-file "$WORK/pparams.json" \ --tx-in-redeemer-file "$redeemerfilepath" \ --calculate-plutus-script-cost "$WORK/create-datum-output.scriptcost" > cat $WORK/create-datum-output.scriptcost [ { "executionUnits": { "memory": 1700, "steps": 476468 }, "lovelaceCost": 133, "scriptHash": "67f33146617a5e61936081db3b2117cbf59bd2123748f58ac9678656" } ]
Cardano-api
- Expose
lovelaceToTxOutValue
. (#3381) - Implement two functions:
currentEpochEligibleLeadershipSlots
andnextEpochEligibleLeadershipSlots
to get the leadership slots for the current/next epoch respectively. (#3464, #3494) - Add a
capi
library to support using the cardano node as a C library in other software. (#3501) fromShelleyAddr
now takes an explicitShelleyBasedEra
parameter to determine the era. The previous behaviour (with an implicitIsShelleyBasedEra
constraint) can be obtained withfromShelleyAddrIsSbe
. (#2253, #3606)
Plutus
- Plutus script performance improvements
Deprecated features
Fixed issues
Sign off
Role | Approval |
---|---|
Technical Lead | ✔️ |
QA Engineer | ✔️ |
Ops | ✔️ |
Release Manager | ✔️ |