Skip to main content

Test results for hydra-cluster

Test.OfflineChain

  • does derive head id from node id
  • does start on slot 0 with no genesis
  • does not start on slot 0 with real genesis file

Test.HydraExplorer

  • can observe hydra transactions created by multiple hydra-nodes
  • can query for all hydra heads observed
  • can query for latest point in time observed on chain

Test.Hydra.Cluster.Mithril

downloadLatestSnapshotTo

  • invokes mithril-client correctly (Preview)
  • invokes mithril-client correctly (Preproduction)
  • invokes mithril-client correctly (Mainnet)
  • invokes mithril-client correctly (Sanchonet)

Test.Hydra.Cluster.Faucet

returnFundsToFaucet

  • does nothing if nothing to return

  • seedFromFaucet and returnFundsToFaucet should work together

    Details
    +++ OK, passed 10 tests.

seedFromFaucet

  • should work concurrently when called multiple times with the same amount of lovelace

Test.Hydra.Cluster.CardanoCli

cardano-cli

  • cardano-cli can accept a draft commit tx in text-envelope format
  • has expected cardano-cli version available
  • query protocol-parameters is compatible with our FromJSON instance
  • query protocol-parameters matches our schema

Test.Generator

JSON encoding of Dataset

  • allows to encode values with aeson and read them back

    Details
    +++ OK, passed 100 tests.
  • generates a Dataset that keeps UTXO constant

    Details
    +++ OK, passed 100 tests.

Test.EndToEnd

  • End-to-end offline mode

End-to-end on Cardano devnet

hydra-node executable

  • logs its command line arguments
  • logs to a logfile

Monitoring

  • Node exposes Prometheus metrics on port 6001

two hydra heads scenario

  • two heads on the same network do not conflict
  • alice inits a Head with incorrect keys preventing bob from observing InitTx
  • bob cannot abort alice's head

restarting nodes

  • can abort head after restart
  • can observe a commit tx after a restart, even when a tx happened while down
  • prevent resuming a head after reconfiguring a peer
  • can start chain from the past and replay on-chain events
  • close of an initial snapshot from re-initialized node is contested

three hydra nodes scenario

  • does not error when all nodes open the head concurrently
  • inits a Head, processes a single Cardano transaction and closes it again
  • inits a Head and closes it immediately

single party hydra head

  • full head life-cycle
  • can close with long deadline
  • can submit a timed tx
  • commits from external with utxo
  • can submit a signed user transaction
  • commits from external with tx blueprint
  • can decommit utxo
  • can incrementally commit
  • can recover deposit
  • can see pending deposits
  • incrementally commit script using blueprint tx

Test.DirectChain

  • can init and abort a head given nothing has been committed
  • can init and abort a 2-parties head after one party has committed
  • cannot abort a non-participating head
  • can commit using external wallet
  • can commit using internal hydra-node wallet
  • can commit empty UTxO
  • can commit with multiple required signatures
  • can open, close & fanout a Head
  • can restart head to point in the past and replay on-chain events
  • cannot restart head to an unknown point
  • can publish and query reference scripts in a timely manner
  • can only contest once

Test.ChainObserver

  • can observe hydra transactions created by hydra-nodes

Test.CardanoNode

  • has expected cardano-node version available
  • withCardanoNodeDevnet does start a block-producing devnet within 5 seconds

findRunningCardanoNode

  • returns Nothing on non-matching network

  • returns Just running node on matching network

  • withCardanoNodeOnKnownNetwork starts synchronizing within 10 seconds (Preview)

  • withCardanoNodeOnKnownNetwork starts synchronizing within 10 seconds (Preproduction)

  • withCardanoNodeOnKnownNetwork starts synchronizing within 10 seconds (Mainnet)

  • withCardanoNodeOnKnownNetwork starts synchronizing within 10 seconds (Sanchonet)

Test.CardanoClient

  • queryGenesisParameters works as expected