Skip to content

0.15.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ch1bo ch1bo released this 18 Jan 18:02
· 652 commits to master since this release
0.15.0
1bbac9c

Run a hydra-node in offline mode, improved errors when connecting to an incompatible chain and support for upcoming Conway era (heads survive the hard-fork, but the L2 ledger still is only Babbage)

⚠️ Warning
There are still several known issues, which are explained in the documentation.

Build artifacts

Hydra Scripts

Transaction IDs to be used as --hydra-scripts-tx-id when running hydra-node on common networks are now also stored in the repository:

  • preview: c21b70a719112f76d318abcfee95499a27556ef4a18b1c62bc38e4b9c07ae3a6
  • preprod: 8ce483e2d4b81f9254392afda1f85d1e123165665593228c39064691903f431a
  • mainnet: 7d998b617526d827dd69a495f5d5dc2c5e293b86a62ad61cb2fb5f2503cd87f0

Compatible / tested with

  • cardano-node: 8.7.3
  • cardano-cli: 8.17.0.0
  • kupo: 2.7

Upgrade instructions

This release contains breaking changes of the persisted data and on-chain scripts. This means that you'll need to apply the following procedure to upgrade all the nodes currently running a head:

  1. Close and fanout the head
  2. Stop hydra-node
  3. Remove persistent files stored in --persistence-dir, in particular server-output and state
  4. Upgrade hydra-node to this version
  5. Upgrade cardano-node to compatible version (above)
  6. Start new hydra-node version with new --hydra-scripts-tx-id (above)
  7. Open a new head

Changelog

  • BREAKING Remove head state from hydra-node chain layer 1196:

    • Not maintain head state in the chain layer anymore and all decision making (whether it's "our" head) is now fully contained in the logic layer.
    • This is a breaking change on the persisted state file, which now only stores so-called spendableUTxO. This raises a PersistenceException if an incompatible state file is loaded.
    • Heads need to be closed before upgrade to this version, as wiping state in the --persistence-dir is needed.
    • This also changes the NodeOptions log output because of internal restructuring of chain layer configuration.
  • New offline sub-command for hydra-node #1118, #1222:

    • Initializes a head with given --initial-utxo parameter, and does not connect to the Cardano network.
    • Transactions submitted on the L2 are validated as usual, where the offline chain simulates time passing in slots.
    • The --ledger-genesis option allows to give a shelley genesis file to configure start time and slot length of the simulated chain time.
  • Prepare hydra-node for the upcoming Conway hard-fork #1177:

    • Interactions with cardano-node are updated to work in both, Babbage and Conway era.
    • Unsupported eras are reported as error when starting.
  • Add a default for hydra-node --node-id ("hydra-node-1") to simplify configuration.

  • Fix hydra-node API reference & schema for /protocol-parameters #1241. This now matches the JSON returned by cardano-cli query protocol-parameters, expected at hydra-node --ledger-protocol-parameters and produced by the API endpoint.

  • The hydra-cluster binary can bootstrap cardano-nodes running on public networks using mithril-client.

  • BREAKING Internal changes to hydra-cardano-api:

    • Renamed HasMultiAsset type class to IsMaryEraOnwards. Use maryEraOnwards to produce witnesses for features from mary onwards.
    • Renamed HasScriptData type class to IsAlonzoEraOnwards. Use alonzoEraOnwards to produce witnesses for features from alonzo onwards.
    • Renamed HasInlineDatums type class to IsBabbageEraOnwards. Use babbageEraOnwards to produce witnesses for features from babbage onwards.

Full Changelog: 0.14.0...0.15.0

Contributors

Contributors to this release: @cardenaso11 @v0d1ch @abailly-iohk @locallycompact @ffakenz @ch1bo