Skip to content

0.12.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@locallycompact locallycompact released this 18 Aug 14:27
· 2682 commits to master since this release
0.12.0
9e4e961

Release focusing on changes to the L2 protocol, ensuring authenticated messages and removing redundancy of submitted transactions. Performance improvements on persistence and communicated network messages are expected in this release. Adds several endpoints to the API and removes the internal commit via websockets feature. Last, but not least, this release contains several security fixes.

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


Built artifacts

  • 📦 Static x86_64-linux binaries: here (also attached)

  • 🐳 Docker image: here

Hydra Scripts

Transaction IDs to be used as --hydra-scripts-tx-id when running hydra-node on the following networks:

  • preview: 4793d318ec98741c0eebff7c62af6389a860c6e51c4fa1961cc5b7eab5a46f58 checked in smoke test #126
  • preprod: 02aa4c107cab6b541d6f12cda9604b1164a3d5b14dd96c3b6057bcf6c2ab2ccd checked in smoke test #127
  • mainnet: eb4c5f213ffb646046cf1d3543ae240ac922deccdc99826edd9af8ad52ddb877 checked in smoke test #128

This release contains breaking changes of the persistence and on-chain scripts
and you'll need to apply the following procedure to upgrade all the nodes
running a head:

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

  • BREAKING Support new cardano-node version 8.1.2 #1015

    • Updated chain client and internal (layer 2) ledger versions to support the
      new cardano-node versions. No direct impact on hydra clients expected.

    • The JSON encoding of transaction as used at the hydra-node API changed
      slightly. Verification key witnesses (keys field witnesses) are not
      double wrapped cbor arrays anymore. Do not rely on this serialization as we
      will change this again into a more "cardanonical" form. Alternative: Use
      cbor=true query parameter to receive full CBOR encoded transactions.

    • The last stable cardano-node version 1.35.7 is not compatible anymore.

  • BREAKING Remove the DEPRECATED Commit websocket command to commit
    funds held by the hydra-node internal wallet. Use the external commit feature
    instead. Also rename the ErrNoFuelUTxOFound to ErrNoUTxOFound. #1018

  • BREAKING Changes to Hydra scripts due to upgrading our plutus version and
    toolchain to GHC 9.2.8. #1005

  • BREAKING Change persisted state to be a sequence of events instead #999. This
    increases the performance of the hydra-node as less data needs to be written
    and prepares internal architecture for more event-sourced improvements.

  • BREAKING Introduce authenticated network messages #965:

    • Peers will sign messages before broadcasting them to other peers,
      and verify signature of received messages is from a known party
      and of course valid.
  • BREAKING Layer 2 protocol change:

    • Wait for all transactions requested in a snapshot to be seen before
      acknowledging it, and only send transaction ids in snapshot requests #904.
  • Enhanced hydra-node api.

    • New HTTP endpoint (POST /cardano-transaction) to submit a transaction on L1 #1001.

    • Greetings message now contains also the hydra-node version #985.

    • New HTTP endpoint (GET /protocol-parameters) which provides the current protocol parameters #989.

  • Fixed a bug in hydra-node (on-chain protocol not affected) where
    multisignature verification would silently ignore certain keys in case the
    list of verification keys is not of same length as the list of signatures.

  • Fixed a bug in the hydra-tui dialogs where recipient and UTxO to spend where
    not correctly selected #1025.

  • BREAKING Changes to hydra-cardano-api #1015:

    • Drop UsingRawBytesHex as it is available upstream in cardano-api now.
    • Remove totalExecutionCost as cardano-ledger provides getMinFeeTx now.
    • Add BundledProtocolParameters pattern for latest Era to Hydra.Cardano.Api.
    • Add ledgerEraVersion for the latest Era en-/decoder version.
    • Change minUTxOValue to take BundledProtocolParameters.
    • Add fromLedgerMultiAsset helper as transactions only mint MultiAsset.
  • Created hydra-plutus-extras package to re-use some utilities better between
    packages #1016.

    Full Changelog: 0.11.0...0.12.0


New Contributors

  • @locallycompact made their first contribution by cutting this release
  • @james-iohk made their first contribution in #992
  • @nebojsa-io made their first contribution in #964

Other contributors to this release: @abailly-iohk @ch1bo @v0d1ch @ffakenz @pgrange