Headline: Brings time for pruning.py down to ~4 minutes on my VM when run without other tests in parallel.
A couple of modifications to make pruning.py much faster:
- pruning.py doesn't care what kind of transactions make up the big blocks that are pruned in the test. Instead of making blocks with several large, expensive to construct and validate transactions, instead make the large blocks contain a single coinbase transaction with a huge OP_RETURN txout.
- avoid stop-starting nodes where possible.
Builds on top of #10555 and #10556
My VM has slow disk i/o. This would possibly be faster with faster disk i/o. Unfortunately, pruning.py still isn't able to run on Travis. It appears that disk access is very slow for in the Travis environment, and this test still times out/fails. Unfortunately, it's not possible to run this test without very heavy disk access - the whole point of pruning is to remove block files when disk usage goes over a certain threshold.
I'd be interested to know how this affects runtime for others. @sdaftuar