Deprecate intra-block chained transactions
Opened this issue · 0 comments
castarco commented
I open this issue to openly discuss this idea, I know it might be controversial, hence the "brainstorming" tag.
Is your feature request related to a problem? Please describe
Allowing intra-block chained transactions has some problems:
- Makes it difficult to parallelize the validation of transactions in a block.
- The validation logic itself is much more complex than it should, because we can't just rely on what's in the UTXOs set to know which prevouts are valid or not.
- The main reason why they exist is that Bitcoin's blocks are created every 10 minutes, in our case we create blocks every 8 seconds.
Describe the solution you'd like
Stop allowing intra-block chained transactions, remove all the code supporting them, simplifying production & testing code.
Describe alternatives you've considered
No alternatives considered.
Additional context
- Removing intra-block chained transactions would also help to implement things like the "compact transactions" proposed in #474 .
- It will be harder to merge changes from Bitcoin into Unit-e if we follow this path.