-
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
Head in Head #1612
Labels
💭 idea
An idea or feature request
Comments
4 tasks
github-merge-queue bot
pushed a commit
that referenced
this issue
Oct 9, 2024
Updates `SnapshotConfirmed` server output to contain full transactions (instead of only transaction ids). This also updates TxValid to only include the transaction id, such that transactions are only submitted once per client still. Hence, this will not change the overall bandwidth requirement on websocket clients, but will make their implementation significantly easier. Before, if clients wanted to act on transactions this was a lot easier to do upon seing `TxValid`. However, this was only confirming local ledger application and not consensus / enforcability of this transaction onto the L1. The new API suggests to do the right thing by making it straight-forward to act upon seeing a transaction in a `SnapshotConfirmed`. **TBD:** Changed `ServerOutput` field name `snapshotNumber` -> `number` to be consistent with `version` (and the internal Haskell data type names). Does anyone like `version` -> `snapshotVersion` better as an alternative? **TBD:** The field holding the transaction id in `TxValid` is called `transactionId` now. The transaction (envelop) itself though contains `txId`. This feels a bit inconsistent, which of the two should be renamed? This will also make #1612 easier (is mentioned as a sub-task there). --- * [x] CHANGELOG updated * [x] Documentation updated * [x] Haddocks updated * [x] No new TODOs introduced
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Why
When a Hydra head is opened, a part of the underlying ledger state gets locked up and made available off-chain to a small group of participants. While this is already quite a "small world" to process transactions, we encountered use cases where it would make sense to even open further heads with different/even smaller groups of participants on parts of the L2 state into L3 heads. Hydra doom is one of those use cases where fragmentation of ledger state is not a problem as the Head ledger is merely used to off-chain check transactions of game sessions.
There are still some liveness caveats about opening a Head in another head, but this would not be scope of this feature.
What
This is a follow-up to a previous spike #1590
hydra-node
can be pointed to anotherhydra-node
API endpoint instead of--node-socket
of a directly connectedcardano-node
SnapshotConfirmed
server outputs of the underlying nodehydra-tui
can commit into such a head by using thehydra-node
API of the underlying node.How
Tick
server output to inform clients of time evolutionSnapshotConfirmed
contains fullconfirmed
transactions, whileTxValid
only contains atxId
API: Full transaction in SnapshotConfirmed #1685hydra-client
package that allows for/protocol-parameters
,/snapshot/utxo
using Haskell typesClientInput
messages, receive and subscribe to someServerOutput
messagesHydra.Chain.Direct
(see early commits of Spike / Not merge: Inception chain component #1603)Hydra.Chain.Inception
component that useshydra-client
prepareTxToPost
re-usable by generalizing concepts likeChainContext
,ScriptRegistry
andTimeHandle
to work for both,Direct
andInception
(cardano) chain backendsIsChainTx
(or so) which is instantiated usinghydra-tx
tx construction for CardanoTx
Hydra.Options
to be able to re-use--hydra-scripts-tx-id
,--cardano-signing-key
etc. betweenDirect
andInception
chain backendsTBD
Tick
server output at some point - what happened?SnapshotConfirmed
fine? We moved away from it when we also did ReqSn only sends transaction ids #728NewTx
, we could create a synchronous tx submission API.hydra-doom
/POST/cardano-transactions
endpoint on an inception node? (i.e. if it can't send a tx to L1 at all)The text was updated successfully, but these errors were encountered: