Mempool improvements, branch ID awareness
Whenever the local chain tip is updated, transactions in the mempool which commit to an
unmineable branch ID (for example, just before a network upgrade activates, where the
next block will have a different branch ID) will be removed.
Includes commits cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6654
- Only the mempool index change.
- bitcoin/bitcoin#6776
- bitcoin/bitcoin#7020
- bitcoin/bitcoin#6915
Part of #2074.
Strictly speaking this is not a true deduplication; the test output will be
slightly different (due to inconsistent print statements) but I think this is
close enough.
Track net value entering and exiting the Sprout circuit
Delta values will be stored for new blocks; old blocks can be filled in by
re-indexing. The net value currently in the Sprout circuit is only calculated
when delta values for all previous blocks are present.
Part of #2351.
The mempool was not synced so a block could be generated and not
clear out the mempool. This would then cause subsequent code
which expected the mempool of all nodes to be empty to hang.
The new parameter is to satisfy the principle of least astonishment
by providing a sensible default for the maximum number of transparent
inputs to shield. If users do not configure -mempooltxinputlimit
it is possible for them to create transactions with hundreds of
inputs which suffer from mining delay, due to the current state of
the network where some miners have configured -mempooltxinputlimit
as a way to deal with the problem of quadratic hashing.
Fix bug where performance-measurements.sh fails hards when given no args
Better than "$1: unbound variable", we ran into this when testing this script in the Hush repo, so we are pushing this fix upstream.
[Test] New merge test suite driver script
Running the script with no arguments will run all test stages in succession.
Passing one or more stages as arguments will run just those stages.
Closes#429.
Not moved, because upstream makes improvements to this script, and the need to
set environment variables makes it simpler to just use the given script.
Migrate MiniNode to Zcash
This enables various RPC tests that use it (most of them in the extended test suite) to properly test Zcash code.
The PR also fixes bugs in the BIP65 and BIP66 tests that were both masking and masked by the un-migrated MiniNode.
The Python module `pyblake2` is now a requirement for the RPC tests.
Part of #2530.
If a bytearray is passed in as part of an iterable, the CScript constructor
fails because b''.join() cannot be used to join a bytearray to a bytes or str in
Python 2.