-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
React to protocol parameter changes #195
Comments
From Shelley onward, the wire format for transactions has been backward compatible. We would have to have a very strong reason to abandon this commitment.
absolutely! let me know how/when I can help. |
Answering this open question was what I meant, but appreciate it. Thanks! |
Discussed this in one of our Weekly Hydra Engineering meetings: https://github.com/input-output-hk/hydra-poc/wiki/Logbook#2022-11-02-engineering-weekly Should take these notes into consideration on our next grooming session. |
Grooming session:
|
Idea (leaving HFs aside for a moment):
Rule) When inside the threshold time range, if the current [signed] snapshot is not valid in the proposed protocol parameters, close the head (as in non-collaborative peer). Rule) When inside or after the threshold (but before lower-bound of new protocol parameters come to effect) snapshots and txs are validated against both current and proposed protocol parameters Rational)
|
I like your proposal @ltouro. However, validating snapshots against some protocol parameters is not as simple as it sounds. While we could keep the last n snapshots around to validate the transactions contained in them, it would only discover incompatibilities on "transaction-level", but not if some remaining UTxO will become unspendable with given protocol parameters. For example, if the UTxO are script outputs, we would not know the script which needs to validate before someone actually tries to spend these outputs. |
I agree that validating transitions for each transaction does not makes alot sense, since the Close/FanOut TX won't be doing that anyway. What about validating [what would be] the Close Tx in the context of the L1 ledger for a given snapshot for proposed PPs? Is this too much overhead? I assume this is already done for current PP. Something like: Case 1: New snapshot created in Head
Case 2: New PPs received from L1:
Is that the case that Close TX does not make all validations that would be performed in FanOut TX? |
@ltouro The cases you describe would make total sense to approach this. I'm just saying that
and
Will only work to check incompatibility of UTxOs (the state we will put back on L1). For example, if the See also the last question in our FAQ |
We discussed the hard-fork part of this in today's grooming (and likely will incorporate it into this item):
|
Why
On cardano parameters can change any epoch. That is, the underlying costs for executing plutus scripts could change. As user of Hydra heads we want to be able to close/finalize heads (or other features) to not be impacted by these changes unnoticed.
What
The
hydra-node
does detect protocol update proposals on the layer 1 and informs users about them.The
hydra-node
does inform users when layer 1 protocol parameters are different than the configured--ledger-protocol-parameters
Hydra node operators can acknowledge changes by reconfiguring their
hydra-node
with new--ledger-protocol-parameters
(coordinatedly).Out of scope: Interpreting parameter updates is not in scope! So no decision making based on the new parameters. This needs to be done by operators.
To be discussed
What changes to the mainnet could affect currently open Hydra Heads? What parameter updates are problematic?
change that will make off-chain UTxOs not accepted by the ledger. e.g.
minUTxOValue
ormaxTxExecutionUnits
(seehttps://hydra.family/head-protocol/docs/faqs/)
transactions to spend some UTxO become too expensive
How realistic are restrictive changes (e.g. higher prices, lower budgets, smaller tx size)?
The text was updated successfully, but these errors were encountered: