Skip to content

0.16.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@v0d1ch v0d1ch released this 03 Apr 15:27
· 81 commits to master since this release
0.16.0
4e1e1ed

Major changes to the transaction representation in the API, more preparations for Conway era and EventSource/EventSink abstractions for streaming plugins.

⚠️ 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: 1f34e4ee2404a5e4fc8ef970b7b8717af34c1a5a22107b82cde79c5d11da93b9
  • preprod: 6264cee4d5eab3fb58ab67f3899ecbcc0d7e72732a2d9c1c5d638115db6ca711
  • mainnet: 2d52e5787b198daeb280f9de63e5dec126b1843b050e85b1642ff8e47cb6de73

Compatible / tested with

  • cardano-node: 8.9.0
  • cardano-cli: 8.20.3.0
  • mithril: 2412.0

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, acks 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 Hydra scripts changed due to updates in the plutus toolchain:

    • Overall slight increase in script size.
    • 50% less memory usage in close and contest transactions.
    • Slightly less memory usage in abort and may be possible with 6 parties now.
  • BREAKING Transaction serialization on hydra-node API and persisted data changed:

    • All transactions are now only serialized as CBOR-encoded envelopes.
    • This was needed to avoid accidentally changing transaction ids between Cardano era transaction formats.
    • See API reference for more details on the format.
  • BREAKING Change to the hydra-node logs, monitoring and removal of log-filter executable:

    • Renamed the Event data types to Input and consequently log items like BeginEvent to BeginInput.
    • Changed structure of LogicOutcome entries.
    • Added node-level log entry when an input was DroppedFromQueue.
    • In course of this, the log-filter executable was removed as nobody is actively using it and other off-the-shelf utilities to manipulate structured JSON logs (jq is already quite powerful) are recommended.
    • Renamed prometheus metric hydra_head_events -> hydra_head_inputs.
  • Introduce EventSource and EventSink interfaces in hydra-node:

    • These handles can now be used as "extension points" to make the hydra-node store and load its state differently or expose StateEvents to other, external services.
    • Internal refactoring of persistence mechanism as event source and sink in a backward-compatible way.
    • More details can be found in ADR21
  • Add metadata to identify Hydra protocol transactions created by hydra-node.

  • Provide more details about why a command failed. Added the state of the head logic at the point of failure.

  • Fix a bug where the hydra-node would not correctly observe a contest transaction and fail to fanout a head #1260.

  • Add contestationDeadline to the HeadIsContested output on the hydra-node API.

  • Add --sanchonet option to hydra-cluster binary.

  • Enhance hydra-cluster --devnet mode to produce a constant stream of snaphsots by re-spending the sandbox UTxO.

  • Reduce cost of transactions submitted by hydra-node by better estimating fees in internal wallet #1315.

  • Fix conversion of Conway blocks in hydra-node and hydra-chain-observer. This also includes tests that verify hydra-node working on Conway networks like sanchonet and the hydra-explorer observing heads on sanchonet.

  • Fix a bug in the contest observation where contesters were extracted from the
    input instead of the output datum.
    #1266

New Contributors

Contributors

Contributors: @v0d1ch @abailly-iohk @locallycompact @ffakenz @ch1bo

Full Changelog: 0.15.0...0.16.0