-
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
ReqSn only sends transaction ids #728
Comments
We need to run benchmark with/without this improvement and compare performances to ensure it makes a difference. |
Marked as an idea again as it
|
After having found a reason to wanting a more "complete" set of requested transactions with #904, we decided to continue on this item. |
Ran a couple benchmarks on 0.11.0 baseline and branch from #904 and the results are similar so there is no apparent improvement to be expected now with this change. |
An improvement is only expected on networked setups. Our benchmarks usually run local nodes, where there is not really a limited network bandwidth. But it's good that there is no regression. |
Sure, but we could have expected some slight speedup due to less work being done in serialisation. |
Why
Users expect high throughput of transactions in the Hydra Head.
Transactions are communicated between Hydra participants through the layer two network. Currently the transactions are submitted twice, once in a
ReqTx
message and gain in theReqSn
message.The protocol is defined with both kinds of network messages precisely to increase concurrency with minimal increase in bandwidth demands - which is lost if we submit the transactions twice.
What
Not send transactions with
ReqSn
, but only the transaction ids (hashes of transaction bodies).This requires additional book-keeping in the Head protocol:
TxId -> Tx
and extend it on everyReqTx
ReqSn
should only include a[TxId]
TxId -> Tx
before checking their applicability on receivingReqSn
Update specification with new behavior Make the spec consistent with #904 #974
Do benchmarks of the off-chain performance before and after this change with a discussion / conclusion on this issue or the respective PR. We have a benchmark on a local cluster of hydra-nodes in
hydra-cluster
.Test with Hydraw which currently leads to deadlocks when it conflicts
Create a documentation page about the L2 consensus and how it behaves in prose (core concepts section). This should touch on topics like liveness, fairness, front-running, etc.Add a FAQ entry about:And reference the specification section 6.4.2 (currently) for details. Could also use the motivation of the PR Proposed snapshot should contain only seen transactions #904 (comment) as input.
How
Likely requires not only aseenTxs
, but aallTxs :: Map TxId Tx
analogous to what is in the specWe want to only use theseenTxs
to resolve transactions, noallTxs
as this would be an ever growing set (we might explore having this all txs set separately)allTxs :: Map TxId Tx
analogous to what is in the spec otherwise the head is very easily stuck in case of conflicting transactionsallTxs
The text was updated successfully, but these errors were encountered: