-
Notifications
You must be signed in to change notification settings - Fork 87
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
Support larger # of UTXO via split-fanout #190
Comments
Changed to 🟡 because we this is quite complex in terms of plutus contracts. We are quite sure we have everything we need, but it's not clear whether it "fits" and the changes are likely also quite involved. |
Having #370 makes this not pressing as we will not have unclosable Heads. Also, we have ideas in how to improve fanout performance (not decoding |
Unfortunately we have identified a theoretical case which could require this. #370 would only come into effect after opening the head. But it's possible that a |
Instead of "only" organizing UTxO in a "hierarchical manner allowing for deterministic splits of known sizes", we aim of full flexibility of what to realize on the L1 with #1468. In case that approach is too expensive or otherwise unrealistic, we might want to revisit this item. |
What & Why
The first naiive, but correct implementation (see #145) of the Hydra Head plutus script validators is limiting to the number of UTXOs supported in a Hydra Head.
This is because we need to make sure all the UTXOs can be distributed back in the single, complete fanout transaction and we are bound by Plutus script execution budgets.
In order to close a head containing a large number of UTXO which do not fit in a single transaction, the fanout step needs to be done in two steps where the UTXO is first split into smaller subsets which will be independently fanned out.
Functional Requirements
Technical details
The functional requirements can be met by organizing the UTXO into a modified merkle-tree where each leaf is a transaction output and each node also contains the total size (in bytes) of the children.
And recent experiments #161 showed that this is feasible to be used.
The text was updated successfully, but these errors were encountered: