0.10.0
Pre-releaseFirst release of hydra-node and hydra-plutus scripts which can be used on mainnet. Includes the technical changes required and must-have issues we want to see fixed before using a Hydra Head with real ADA, as well as documentation how to run hydra on mainnet.
Built artifacts
Hydra Scripts
Transaction IDs to be used as --hydra-scripts-tx-id
when running hydra-node
on the following networks:
-
preview
:d237926e174a2ca386174a5810d30f0ca6db352219dd7eacdc7d5969ae75d58f
checked in smoke test #111 -
preprod
:31b833c943fc267ee532c772be032183d5842b69492afaf5daa360171168c238
checked in smoke test #112 -
mainnet
:af1a00e23a9b5c3a811d5c265dd25edfc81fd43f0fbf94229c4c0a5ab18aa5de
checked in smoke test #113 🎉
This release contains several breaking changes and you'll need to apply the following procedure to upgrade all the nodes running a head:
- Close the head
- Stop
hydra-node
- Remove persistent files stored in
--persistence-dir
, in particular
server-output
andstate
- Upgrade
hydra-node
version - Start new
hydra-node
version
Only when this procedure has been applied to all Hydra nodes can you open a new head again.
-
Make
hydra-node
compatible to mainnet #713-
BREAKING Change to command line options: Replaced
--network-id
with--mainnet
or--testnet-magic
. -
Hard-coded temporary limit of 100 ADA for commits to a head on mainnet. This will be incraeased or be made configurable in future versions.
-
-
BREAKING Change in internal handling of rollbacks. Now, the
hydra-node
does only rollback it's low level state and not report when a rollback happened, under the optimistic assumption that the Hydra protocol transactions are still applicable and the Head is unaffected by the rollback. This was needed to avoid #784 and will be further improved in #185. This removesRolledBack
server output from the API and also changes the log format of the internalRollback
event. -
Reject commits of
UTxO
containingReferenceScript
to avoid a head not being finalizable by thehydra-node
. The layer 1 scripts still accept these outputs, but we would not be able to automatically finalize a head which was opened from commits with reference scripts. Reference scripts on the layer 2 ledger (e.g. included in transactions viaNewTx
) are non-problematic. #766 -
All participants try to collect once seeing the last
commitTx
. #786 This may lead to misleading errors on the logs about not being able to post collect transactions (see also #839). -
The
hydra-node
detects misconfiguration and mismatch of command line options with persisted state. #764 -
Fixed a bug where the
hydra-node
would crash sometimes when thecardano-node
switches onto a fork, which is a common event on mainnet. [#560][560] -
BREAKING Hydra scripts changed, need to use new
--hydra-scripts-tx-id
-
Check contract continuity of state machine, i.e. that the output with the state datum and ST is actually owned by vHead. #777
-
Collect the right value in
collect
transactions (had been dropped for cost reasons, but found a constant cost way to do it). -
The right
headId
is enforced incommit
transactions. -
Updated
plutus-tx
tool-chain. This also resulted in changed return type ofvalidatorScript
functions of script modules toSerialisedScript
. #826 -
Use of a custom script context for
vInitial
andvCommit
validators to reduce cost of transactions again. #825 -
The hydra scripts are persisted in
hydra-plutus/scripts
and golden tests ensure they are not changed accidentally. #772
-
-
BREAKING Changes to
hydra-node
API-
Configurable API using query parameters. #380 Clients can decide to:
- Skip observing history of events before they connected
- View the transactions in the server output encoded as CBOR
- Prevent utxo display in
SnapshotConfirmed
server outputs #808
-
Greetings
message is now only sent last (after replaying history) on connection and added additional information #813:headStatus
- representing current hydra head statussnapshotUtxo
- containing UTxOs and updating on eachSnapshotConfirmed
message
-
Updated
hydra-tui
to handleGreetings
message accordingly. Make sure to use the same version. -
Reference scripts in the
hydra-node
API (e.g. onNewTx
) are not decodable when usingSimpleScriptV2
envelope anymore (just useSimpleScript
).
-
-
Versioned the documentation website, now the last released, stable is the default available at https://hydra.family/head-protocol, while the bleeding-edge from
master
branch is available at https://hydra.family/head-protocol/unstable. #803 #805 #783 -
Add the specification to the repository and website. #693
-
Disabled
aarch64-darwin
support, until acardano-node
for this platform is also available. -
Use the server-provided
timestamp
of messages in thehydra-tui
. #837 -
BREAKING Changes to
hydra-cardano-api
#826:- Removed
HasPlutusScriptVersion
andplutusScriptVersion
with upstream version fromcardano-api
. - Renamed
getScriptData
totxOutScriptData
to not conflict with the new function incardano-api
. - Changed
toScriptData
,toLedgerData
,fromLedgerData
,txOutScriptData
andlookupScriptData
to return or require aHashableScriptData
instead. - Added
fromScriptData
generic conversion function. - Changed signature of
totalExecutionCost
to be more clearlyBabbage
era specific. - Changed
fromPlutusScript
to take newSerialisedScript
type (it's just an alias now). - Added
genTxIn
andarbitrary
instance forTxIn
. - Added
getChainPoint
.
- Removed
Full Changelog: 0.9.0...0.10.0
New Contributors:
- @matiwinnetou made their first contribution in #779
Contributors to this release: @ch1bo @pgrange @v0d1ch @ffakenz @matiwinnetou @abailly-iohk