Skip to content

Tpool batching

David Vorick requested to merge tpool-batching into master

The transaction pool now takes much less memory, which was the original goal of this PR. In the process of doing that, I threw out the existing subscription model and replaced it with something much easier to understand and harder to screw up.

The most important change is that the transaction pool now accepts sets of transactions instead of single transactions. A 'set' must have all the required parents, and none of the transactions in the set can already be in the transaction pool. Transaction sets cannot depend on eachother, but instead should be combined into a larger set.

There are plans to eventually add a way to extend existing sets with new transactions, but that will not be implemented until there's a clear need for it.

There are some new pitfalls, it's not very well documented at the moment. (perhaps I should do that this PR)

Then the transaction builder in the wallet got a complete facelift to match the 'transaction set' way of doing things. I also think that overall it's just cleaner and structured better now.

I believe those are the only changes, they just touched massive parts of the codebase.

Merge request reports