There are no issues filed on cardano-node
about this, so I’m polling the SPO community which I think is most likely to spot changes to the cardano-cli
behaviour or syntax, rather than posting on GitHub yet.
Our pool recently took the node upgrade to 8.12.2
which we know removes the Conway genesis & many relevant parameters for the Conway era from the configuration, in anticipation of adding them back in 9.x
.
In our only recent use of cardano-cli
since the upgrade (actual CLI version = 8.24.0.0
), cardano-cli transaction calculate-min-fee
has been returning astonishingly lower values: thousands of lovelace lower than needed to accept Tx’s on the chain. (We’ve gotten through this today by estimating fees according to what they were before the upgrade & adding a margin.)
I immediately double-checked that the protocol.json
file passed as a parameter was the correct one downloaded for this epoch (the current epoch at the time of this posting).
I did see that some arguments have been dropped from calculate-min-fee
— including --tx-in-count
and --tx-out-count
, which we had always used before — although the results are the same whether or not these deprecated arguments are used.
We’ve had this problem today with 2 types of Tx’s: a transaction that combines some UTxO’s at the same address into a single UTxO while withdrawing stake rewards, and a pool re-registration: both calculating fees too low by thousands of lovelace.
Here’s the command sequence for the first example, giving us (consistently) the unusually & unusably low estimated fee (of 174653 lovelace compared to at least 180K even for 3 inputs without the rewards withdrawal):
cardano-cli transaction build-raw \
--tx-in UTxO1 \
--tx-in UTxO2 \
--tx-in UTxO3 \
--withdrawal $(cat low/stake.addr)+0 \
--tx-out $(cat low/payment.addr)+0 \
--fee 0 \
--out-file balance.test
cardano-cli transaction calculate-min-fee \
--tx-body-file balance.test \
--witness-count 2 \
--protocol-params-file protocol.json
174653 # output (generally our fees in the 180K to 183K range)
I’ve been following developer & SPO threads through this release and all the node lead said was that “tooling could be affected on 8.12.x”… but by “tooling” I assumed things like pool installation scripts & not the CLI itself. I know if the fee calculations had changed then it would temporarily break things like the SPO scripts: but shouldn’t the raw CLI work the way it always has?
It is not enough for us to wait for node 9.x
since most assurances are that we will have almost the same code. Any recommendation to use cardano-cli transaction build
cannot be part of this answer because we need to know what has changed about the fee calculation both for our operational standards and a related tooling / documentation project in the works.