As of 13 March the latest pytest breaks the twisted tests.
As a result the version is pinned until that can be fixed.
Additionally, at the same time, the bitcoin ppa has been
removed and so cannot be used in our travis testing setup.
Hence we install bitcoin directly (for tests only, of course)
from bitcoin.org,
copying bitcoind and bitcoin-cli to `/usr/local/lib`.
updated xenial and stretch dockerfiles since they bundle old versions of libsodium
refacatoring to make BlockchainInterface and BitcoinCoreNoHistoryInterface python2 compatible
add the -acceptnonstdtxn flag when invoking bitcoind for versions >= 0.19.0
refactor the use of nonlocal to make it compatible with python2
document the get_bitcoind_version method
Makes travis run docker tests only if at least one of the following is true :
* This is a cron job
* This is a tag push (e.g. release)
* The commit message specifies the string TRAVIS_RUN_DOCKERS
(also removed `except:` from `.travis.yml` as it's obsolete now)
Make RPC connection persistent to improve high throughput RPC
access where necessary; uses keep alive and recreates connection
when it drops.
Restrict listtransaction calls to the required account, plus only
looks back 100 txs (assuming concurrent txs less than this), thus
greatly reducing the number of gettransaction calls over RPC.
Fixes bug in choose_sweep_orders (was not filtering out non-sw
orders).
Removes tickchainthread from tests, so no longer any threads used
even in tests; replaces with reactor task loop.
Temporarily removes test_wallets and test_segwit from build tests,
since they used blocking which only worked in threaded tests; these
tests must be rebuilt.