mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-06 04:59:20 +01:00
This commit does not change the serialization format. Its purpose is making a few changes already in order to reduce the diff size of the later commit that introduces support for holes in DepGraph. The previous approach was to immediately construct a transaction as soon as its feerate was known in a preliminary position, and then undo that, and place it in the correct position once the position information is known (such that a deserialization error in between would not result in an inconsistent state). The new approach is to delay the actual transaction creation until all its information is known, avoiding the need to undo and redo. This requires a different means of determining whether dependencies are redundant, but that has the advantage that a later commit can apply all dependencies at once, reducing the complexity of deserialization.
Test library
This contains files for the test library, which is used by the test binaries (unit tests, benchmarks, fuzzers, gui tests).
Generally, the files in this folder should be well-separated modules. New code should be added to existing modules or (when in doubt) a new module should be created.
The utilities in here are compiled into a library, which does not hold any state. However, the main file setup_common
defines the common test setup for all test binaries. The test binaries will handle the global state when they
instantiate the BasicTestingSetup (or one of its derived classes).