-
Notifications
You must be signed in to change notification settings - Fork 100
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
feature: support orphan transactions in the mempool #8777
Comments
It looks like shielded inputs must already be mined, so allowing spends from utxos in the mempool when verifying mempool transactions will be enough, though that may still be tricky, the
It'll complicate it a bit for mempool transactions that depend on other mempool transactions, but it should still be implementable. Update: We need to track transaction dependencies to ensure that Zebra produces valid block templates anyway, so, the block verifier could send all of a block's ordered transactions' ids to the mempool in a single request to see which ones have been verified and are still valid if some of them were verified with a dependency. |
Motivation
We don't allow orphan txs in the mempool. However, supporting them can be useful, in particular for the tex address support which creates two transactions, one z->t and another t->t and submits them sequentially. Currently the second one is rejected in zebrad because of the unknown input since the first one wasn't mined yet.
Specifications
No spec for the mempool 🥲
Complex Code or Requirements
We need to consider that this changes the mempool criteria from "any txs that could be mined on their own" to "a collection of txs that possibly need to be mined together" and check if this has unintended consequences. (In particular I think this will stop #5674 from being implementable)
Testing
Probably trying to submit two txs where the second spends something from the first
Related Work
See discussion in https://discord.com/channels/809218587167293450/809251029673312267/1275193366740602993
The text was updated successfully, but these errors were encountered: