Skip to content

v6.5.0

Compare
Choose a tag to compare
@KtorZ KtorZ released this 12 Jul 11:28
· 80 commits to master since this release
v6.5.0
63a9e9d

Photo: ?

Added

  • Integrated with cardano-node==9.0.0.

  • New ledger-state query: queryLedgerState/treasuryAndReserves to retrieve the current Ada values of the treasury and reserves.

  • New protocol parameters in Conway:

    • maximumReferenceScriptsSize which indicates the maximum total number of bytes of scripts referenced by a transaction.
    • minFeeReferenceScripts with three sub fields: range, base and multiplier that now intervenes in the minimum fee calculation. See the annex at the end of the release notes for details about the new transaction min fee calculation.
  • New transaction submission / evaluation errors:

    • ReferenceScriptsTooLarge (code=3166) now raised when trying to submit a transaction that contains reference scripts whose total size is above 200KB (will become a protocol parameter in the next era).
    • UnknownVoters (code=3167) returned when submitting votes from unregistered pools or credentials.

Changed

  • Roll back down to GHC-9.4.8 in an attempt to fix #399 possibly caused by a bug in GHC runtime system (possibly patched on 9.4.x).

  • Fixed transaction evaluation internal client not being properly terminated and cleaned up after use; resulting in active connections piling up over time. See #403.

  • Fixed the reported activeStakeInEpoch on the queryLedgerState/rewardsProvenance, which was mistakenly reporting the totalStakeInEpoch. A new value totalStakeInEpoch also now correctly reports that information.

Removed

  • N/A

Tested with

  • cardano-node == 9.0.0 (Mainnet, Preprod, Preview)

Docker image(s)

Standalone

With cardano-node

Details

v6.4.0...v6.5.0

Annex - Conway minimum transaction fee calculation

Starting in the Conway era, the min fee calculation is given by the following formula:

$$ minFee = A + B + C $$

$$ \begin{array}{lll} A & = & sizeOf(transaction) \times minFeeCoefficient \\ B & = & minFeeConstant \\ C & = & referenceScriptsTierPrice \\ \end{array} $$

Where $referenceScriptsTierPrice$ is a tier-price depending on the total size of the serialized reference scripts. The total size (in bytes) of reference scripts is priced according to a different, growing tier, given by the following table:

Size range Cost
$[ 0; range[$ $\rfloor sizeOf(referenceScripts) \times base\lfloor$
$[range; 2 \times range[$ $\rfloor sizeOf(referenceScripts) \times multiplier \times base\lfloor$
$[2 \times range; 3 \times range[$ $\rfloor sizeOf(referenceScripts) \times {multiplier}^2 \times base\lfloor$
$[3 \times range; 4 \times range[$ $\rfloor sizeOf(referenceScripts) \times {multiplier}^3 \times base\lfloor$
... ...
$[n \times range; (n + 1) \times range [$ $\rfloor sizeOf(referenceScripts) \times {multiplier}^n \times base\lfloor$

Considering $range = 25600$, $multiplier = 1.2$ and $base = 44$ (which seems to be the foreseen default parameters), we get:

Size range Lovelace per byte Plot
$[ 0; 25600[$ $44.000$ See online calculator
$[25600; 51200[$ $52.800$
$[51200; 76800[$ $63.360$
$[76800; 102400[$ $76.032$
... ...
$[179200; 204800[$ $157.6599552$

Note

In Conway, the maximum size of reference scripts is limited to 200KiB.

So for example, a transaction that carries reference scripts adding up to 80KiB of data would be priced -- in addition to the usual fees coming from the transaction size:

$$ referenceScriptTierPrice_{80KiB} = 25600 \times (44 + 52.8 + 63.36) + 5120 \times 76.032 = 4489379 $$