Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[wallet] Remove Wallet dependencies from init.cpp #10762

Merged
merged 4 commits into from Mar 29, 2018

Conversation

jnewbery
Copy link
Contributor

@jnewbery jnewbery commented Jul 7, 2017

This continues the work of #7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

@promag
Copy link
Member

promag commented Jul 7, 2017

Will take a look.

@jnewbery
Copy link
Contributor Author

jnewbery commented Jul 7, 2017

Thanks @promag - this is very rough-and-ready at the moment. It builds and passes tests, but is not ready for code review. I'd be very happy to get feedback about general concept though.

@jnewbery
Copy link
Contributor Author

jnewbery commented Jul 7, 2017

I see that @theuni has opened #10756 to replace CNodeSignals with an interface class. Would that be a better approach here?

@ryanofsky
Copy link
Contributor

I see that @theuni has opened #10756 to replace CNodeSignals with an interface class. Would that be a better approach here?

Yeah I was just about to make this suggestion. You could delete the WalletInitSignals struct and replace the WalletInitSignals global variable with a std::unique_ptr<WalletInitInterface> global. This would get rid of all the boost signals code and make the control flow simpler.

Also you should prefix global variables with g_. And I think this PR would be less error prone and simpler to review if you just left the init code in wallet.cpp for now and moved the relevant functions to walletinit.cpp in followup MOVEONLY PR.

@jnewbery
Copy link
Contributor Author

jnewbery commented Jul 7, 2017

I think this PR would be less error prone and simpler to review if you just left the init code in wallet.cpp for now and moved the relevant functions to walletinit.cpp in followup MOVEONLY PR.

Thanks @ryanofsky, you've convinced me - I'll split this PR into two. But I think I'll do it the other way round - first move the wallet initialization/destruction functions into their own walletinit translation unit, and then introduce the interface class in a second PR. The reason is that #10740 is built on walletinit.cpp so this PR and #10740 will no longer be interdependent.

@jnewbery jnewbery changed the title [WIP] Remove Wallet dependencies from init.cpp [WIP] [wallet] Remove Wallet dependencies from init.cpp Jul 11, 2017
maflcko pushed a commit that referenced this pull request Sep 7, 2017
…terface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both #10740 and #10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
@jnewbery
Copy link
Contributor Author

jnewbery commented Sep 29, 2017

Rebased on master. I haven't swapped out the boost signals for an interface class yet. Still looking for high-level feedback on this approach.

The first three commits in this PR are shared with #10740

@jonasschnelli
Copy link
Contributor

Concept ACK on the general direction, though unsure about the implementation (haven't checked the code in detail).

I was following a similar approach in #6008 (relatively old closed PR) (check commit: fa6a5b2).

Maybe, init/the-core only knows about modules. Some signal/hooks would allow initialising, shutdown of such modules. The wallet could be one, the miner another one, etc.
It would also allow to run with multiple wallet implementations (my idea was once to replace BDB with an append only file-format and removing all legacy code,... put this in a second wallet implementation and label it experimental).

If possible, I would prefer a more generic approach (a module interface rather then a wallet interface).

@TheBlueMatt
Copy link
Contributor

Concept ACK, generally. Agree that I'd really prefer no boost::signals (especially in the header!).

@maflcko
Copy link
Member

maflcko commented Jan 14, 2018

Needs rebase

@PierreRochard
Copy link
Contributor

Concept ACK

@jnewbery
Copy link
Contributor Author

Rebased. Feedback not yet addressed.

@jnewbery
Copy link
Contributor Author

I've reimplemented this as an interface class. Should be ready for review.

@jnewbery jnewbery changed the title [WIP] [wallet] Remove Wallet dependencies from init.cpp [wallet] Remove Wallet dependencies from init.cpp Feb 22, 2018
Copy link
Contributor

@ryanofsky ryanofsky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, conditional utACK 89d1d6ca293f602b88bf47fc2c3da37ddf6d4650 if you address the WalletInit::StopWallets comment below and also update the PR description to no longer refer to boost signals.

for (CWalletRef pwallet : vpwallets) {
pwallet->Flush(false);
}
}

void StopWallets() {
void WalletInit::StopWallets() {
if (gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET)) return;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In commit "[wallet] Move wallet init functions into WalletInit class."

Is adding this line here intentional? It doesn't seem to fit in with other changes in this commit, and seems unnecessary. Should add a comment describing rationale if it is useful to keep.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, removed. This is a vestige of a previous branch.

class CScheduler;
class CRPCTable;

class WalletInitInterface {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In commit "[wallet] Create wallet init interface."

Just FYI, this PR is very similar to 6626e2f from #10973 and the WalletInitInterface added here is basically identical to the Chain::Client interface added there:

//! Interface to let node manage chain clients (wallets, or maybe tools for
//! monitoring and analysis in the future).
class Client
{
public:
virtual ~Client() {}
//! Register rpcs.
virtual void registerRpcs() = 0;
//! Prepare for execution, loading any needed state.
virtual bool prepare() = 0;
//! Start client execution and provide a scheduler. (Scheduler is
//! ignored if client is out-of-process).
virtual void start(CScheduler& scheduler) = 0;
//! Stop client execution and prepare for shutdown.
virtual void stop() = 0;
//! Shut down client.
virtual void shutdown() = 0;
};

Probably would replace this interface with that more generic one if this is merged first.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the heads up!

@@ -5,6 +5,8 @@
#ifndef WALLETINITINTERFACE_H
#define WALLETINITINTERFACE_H

#include <string>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In commit "[wallet] Use global g_wallet_init_interface to init/destroy the wallet."

This change would make a little more sense in the previous commit adding the file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. Fixed

class WalletInitInterface {
public:
/** Get wallet help string */
virtual std::string GetWalletHelpString(bool showDebug) {return (std::string)"";}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style-nit: Instead of casting a literal, you could directly return an empty std::string{};

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better. Thanks!

HashUnlimited added a commit to chaincoin/chaincoin that referenced this pull request Sep 5, 2018
added logging line back that was accidentally removed with bitcoin#10762
markblundeberg pushed a commit to markblundeberg/bitcoin-abc that referenced this pull request Jun 7, 2019
Summary:
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin/bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on #12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

Backport of Core PR12843
bitcoin/bitcoin#12843

Completes T569

Test Plan:
  test_runner.py should also run the feature_help.py test and pass
  test_runner.py feature_help should run and pass

Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D3234
jtoomim pushed a commit to jtoomim/bitcoin-abc that referenced this pull request Jun 29, 2019
Summary:
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin/bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on #12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

Backport of Core PR12843
bitcoin/bitcoin#12843

Completes T569

Test Plan:
  test_runner.py should also run the feature_help.py test and pass
  test_runner.py feature_help should run and pass

Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D3234
jonspock pushed a commit to jonspock/devault that referenced this pull request Jul 4, 2019
Summary:
63048ec73d [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin/bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on #12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

Backport of Core PR12843
bitcoin/bitcoin#12843

Completes T569

Test Plan:
  test_runner.py should also run the feature_help.py test and pass
  test_runner.py feature_help should run and pass

Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D3234
jonspock added a commit to jonspock/devault that referenced this pull request Jul 4, 2019
commit 7560248b5470457420b6d082dd942b84683132f0
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 09:00:50 2019 -0700

    Add include <codecvt> for windows

commit 2c05ed281a2120dbee461d214a81b418dbae2e22
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 08:29:43 2019 -0700

    update abc logs

commit 7d11ee25dc3be0b8040b6d48cf8915d87cc3a838
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:37:24 2018 -0500

    Calculate and store the number of bytes required to spend an input

    Summary: This is extracted from Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/12ec29d3bb0d46c61712210fe9bb96a0d543204a

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3243

commit 3fc1f3c92e8e50b51d91cd28da58db84294c3a9d
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Fri Mar 9 17:21:27 2018 -0500

    Move output eligibility to a separate function

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/ce7435cf1ef36109595be9a3a3955afdff1d63e4

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3245

commit fe2aaa1179f8c597d772a7a1a251f248651e28fb
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:39:48 2018 -0500

    Add a GetMinimumFeeRate function which is wrapped by GetMinimumFee

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/fab04887c22cf71a4b15ac0b0a127e150229d686

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3251

commit 4b69922cf921dfcc40982e2a958927129a9245b4
Author: Alex Morcos <morcos@chaincode.com>
Date:   Tue Dec 13 16:38:43 2016 -0500

    Don't create change at the dust limit, even if it means paying more than expected

    Summary: This is a backport of Core PR9343

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3296

commit af8bc4c366ad00d92e2d69e44f5632abb2cb3cc0
Author: Alex Morcos <morcos@chaincode.com>
Date:   Thu Jul 27 17:01:39 2017 -0400

    Eliminate fee overpaying edge case when subtracting fee from recipients

    Summary: This is a backport of Core PR10942

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3297

commit fbeaa82c80054320fba93727912a9dd4d1eb180d
Author: fanquake <fanquake@gmail.com>
Date:   Mon Nov 6 22:25:22 2017 +0800

    Fix make distcheck

    Summary:
    This adds the `compat/setenv.h` file to the autotools build headers, and
    a fix backported from core PR11621.

    Backport of core PR11621
    https://github.com/bitcoin/bitcoin/pull/11621/files

    Test Plan:
      make distcheck

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, deadalnix, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3256

commit b1389eaf680ee277f56bd711c75e461f551cec53
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 16 12:12:58 2017 +0200

    Merge #10404: doc: Add logging to FinalizeNode()

    Summary:
    1530bfc Add logging to FinalizeNode() (Suhas Daftuar)

    Tree-SHA512: 34bd950eb7830f378d069229c24122e97db68435b313f0de2c8772c2feefdc6db5f4d1f43eeade237ffe91cdef0f1cfe3232e1a37c561a65767f4527b2e2e370

    Backport of Core PR10404

    https://github.com/bitcoin/bitcoin/pull/10404/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3284

commit b09831e69100dbc2ee19db7cca5586facf99b738
Author: John Newbery <john@johnnewbery.com>
Date:   Wed Feb 7 09:57:27 2018 -0500

    [tests] Better stderr testing

    Summary:
    ```
    This PR tightens our checking of stderr and will cause tests to fail if
    there is any unexpected message in stderr:

      - commit Write stdout/stderr to datadir instead of temp file writes
    stderr to a file in the datadir instead of a temporary file. This helps
    with debugging in the case of failure.
      - commit Use LIBC_FATAL_STDERR=1 in tests ensures that libc failures
    are logged to stderr instead of the terminal.
    ```

    Backport of core PR12755
    https://github.com/bitcoin/bitcoin/pull/12755/files

    Depends on D3273
    Fixes T540

    Test Plan:
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Maniphest Tasks: T540

    Differential Revision: https://reviews.bitcoinabc.org/D3274

commit 464b271d8708b8bfc6591d723fa26d845b0dfbb2
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Thu Apr 19 08:38:59 2018 -0400

    qa: Normalize executable location

    Summary:
    ```
    This removes the need to override the executable locations by just
    reading them from the config file. Beside making the code easier to
    read, running individual test on Windows is now possible by default
    (without providing further command line arguments).

    Note: Of course, it is still possible to manually specify the location
    through the BITCOIND environment variable, e.g. bitcoin-qt
    ```

    Backport of core PR13051
    https://github.com/bitcoin/bitcoin/pull/13051/files

    Note to reviewers: the backport has some minor differences with the
    original PR due to changes from D2535 and D2696. Also core removed the
    comparison framework, but it is still widely used in our codebase
    especially in abc-* tests, so this diff adds changes to support the
    comparison framework as well.

    Test Plan:
    This should work from an out of tree build:
      ./test/functional/test_runner.py
      ../test/functional/rpc_uptime.py --configfile=test/config.ini
    Due to other issues from our `test_runner.py` file this diff is not
    enough to let you run functional tests under windows.

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3273

commit a06b3085a3232850aafd997dd68880f8f680b67b
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Fri Feb 23 08:10:42 2018 +0100

    Avoid unintentional unsigned integer wraparounds in tests

    Summary:
    Backport of core PR12516
    https://github.com/bitcoin/bitcoin/pull/12516/files

    Depends on D3275

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3276

commit 343fffe4e783179cf746e6920fa8d19b901584be
Author: Chun Kuan Lee <ken2812221@gmail.com>
Date:   Mon Aug 6 01:03:33 2018 +0000

    utils: run commands using utf-8 string on Windows

    Summary:
    ```
    Use unicode string to call commans
    ```

    Backport of core PR13886
    https://github.com/bitcoin/bitcoin/pull/13886/files

    Will fix gitian windows build issue introduced in D3241.

    Test Plan:
      make check
    Build for windows:
    ```
    mkdir buildcmake && cd buildcmake
    cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake \
    -DBUILD_BITCOIN_SEEDER=OFF
    ninja
    ```

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3272

commit 2ef5741ec4ac42a2e77d199d36066cabfa5c7381
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Jun 11 14:22:00 2017 +0200

    Merge #10560: Remove unused constants

    Summary:
    dce8239 Comment out unused constant REJECT_DUST (practicalswift)
    3289ef4 Remove unused constant MEMPOOL_GD_VERSION (practicalswift)

    Tree-SHA512: 8dd772c963037cd0a1db0d5bf5f7a5cce3f5cd8fb6fa983949f9f0c1c8312ffd251a62c1e5d32f3584d2bcc562d8c8a9bf7900609dee9a4f12898caa2be9c38f

    I actually went a head and deleted REJECT_DUST since it wasn't used anywhere and it made no sense to just leave it in even if it was uncommented.

    Backport of Core PR10560
    https://github.com/bitcoin/bitcoin/pull/10560/files

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3260

commit 773a1621326340f5602715f152ae78344798ba4b
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Jun 8 09:43:03 2017 +0200

    Merge #10524: [tests] Remove printf(...)

    Summary:
    0abc588 [tests] Remove printf(...) (practicalswift)

    Tree-SHA512: a56fa1edce050f5a44a53842223fc99e4e8ade413047e04f2064faeb5c4a418864a94471853d5c26a20608d1dcc18b9226d7fe15172f79a66cc5cf6e1443f7e9

    Backport of Core PR10524
    https://github.com/bitcoin/bitcoin/pull/10524

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3259

commit c3a74603f8b6aabe3be957b23831b89e3ed7977e
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Wed Mar 7 21:21:57 2018 -0500

    [qa] util: Remove unused sync_chain

    Summary:
    ```
    The util function sync_blocks already checks for equal chains, so we can
    remove the unused sync_chain.
    ```

    Backport of core PR12643
    https://github.com/bitcoin/bitcoin/pull/12643/files

    Test Plan:
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3257

commit 19dda0e31a8c29c824a3504f6148a965cf0c98e3
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Mon Jun 12 15:09:07 2017 -0700

    Merge #10568: Remove unnecessary forward class declarations in header files

    Summary:
    4087d9ea7 Remove unnecessary forward class declarations in header files (practicalswift)

    Tree-SHA512: 80a9b2cd339ba9c606c0dd93739ac80941b6050388fee2edd7976ae8b5e332fd0b4f1df1e89c1d6d28a77c23a36b1e874e72977985fb8f710c65c45c3a926f97

    Backport of Core PR10568
    https://github.com/bitcoin/bitcoin/pull/10568/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3261

commit 5728cd342f02706fdb15e906315ec379b4d2127c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue Jun 6 15:51:13 2017 +0200

    Merge #9909: tests: Add FindEarliestAtLeast test for edge cases

    Summary:
    cf66f04 Add FindEarliestAtLeast test for edge cases (Russell Yanofsky)

    Tree-SHA512: bed2e9b2eefe0014414f1be8f0ba236b1dcc6744a670ffa546100c62817dd06a117cc62cdff80c4988d2b374cae9a57f2bb135fc582ffb51ca2d34ab07bb3fe0

    Backport of Core PR9909
    https://github.com/bitcoin/bitcoin/pull/9909/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3244

commit 478accdbff3f8ec4852d06dacedc3c40e1abcc9c
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Jun 6 23:51:30 2017 +0200

    Merge #10522: [wallet] Remove unused variables

    Summary:
    a8c09af Remove unused variables (practicalswift)

    Tree-SHA512: 34807dc3a0471c83b086f430b66465602c8f6a3a158b54ace2ec8afb746f1f5907f7dfcde5a4bad4041df9721ec46b61681b2dbf89725c9c8c4c5ad0ca99f78f

    Backport of Core PR10522
    https://github.com/bitcoin/bitcoin/pull/10522/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3247

commit 85399a25bd85c5494de3fe504fd1d1b6a651a37a
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:54:05 2019 -0700

    Update abc logs

commit fc2b6469343d1889d2d28570c43b08182494a823
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:51:42 2019 -0700

    Merge #13877: utils: Make fs::path::string() always return utf-8 string on Windows

        Summary:
        2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee)

        Pull request description:

          Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`.

        Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118

        Backport of Core PR13877
        https://github.com/bitcoin/bitcoin/pull/13877/files

commit 1ee762d9a462f81822f345ec1a9bb9c5ec6c1574
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Apr 8 17:05:44 2018 +0200

    Merge #12904: [qa] Ensure bitcoind processes are cleaned up when tests end

    Summary:
    e36a0c0 [qa] Ensure bitcoind processes are cleaned up when tests end (Suhas Daftuar)

    Pull request description:

      When tests fail (such as due to a bug in the test, race condition, etc), it's possible that we could follow code paths that bypass our normal node shutdown that occurs in `TestNode.stop_node`.  Add a destructor to `TestNode` that cleans this up.

    Tree-SHA512: 72e04bc21462ebd0cb346fd1fe0540da454acfbad41923a0b06ea2317e9045b68e58f9adb02d8200891aca89a9d03a022eb72282aeb31a3b3afe7c6843a4b450

    Backport of Core PR12904
    https://github.com/bitcoin/bitcoin/pull/12904/

    Depends on D3234

    Completes T446

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3235

commit fb0a7a00f08e8346f9df58619c3f367500ecb90c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Jun 5 16:05:15 2017 +0200

    Merge #10514: Bugfix: missing == 0 after randrange

    Summary:
    9aa215b Bugfixes: missing == 0 after randrange (Pieter Wuille)

    Tree-SHA512: 160657ac09553f23ad7a3966c753a30ba938ce6f7ccfd34a4ef0d05d73d712362f7eef97e44a96e37a181b8347caa9d8e1584cc4485f69674ab2de3d8a247373

    Backport of Core PR10514
    https://github.com/bitcoin/bitcoin/pull/10514/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3240

commit a3407bfe7cbba24081d92eed369c6a335d974841
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Fri Jun 2 16:03:21 2017 -0700

    Merge #10500: Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings

    Summary:
    b9b814a38 Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (Russell Yanofsky)

    Tree-SHA512: 96a0612ca460ba1bfb3921f3aa348400fd3afa12c40f2ca1f3f04068b1574fe824d577e0123013d8898a4990084316dc1dfb541331849f0996ceff7f4eb25e6b

    Backport of Core PR10500
    https://github.com/bitcoin/bitcoin/pull/10500/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, Fabien, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3239

commit 4d99dd0c95c66cc5fc2f4e140d2d84b1bab1c589
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Thu Jun 6 14:30:07 2019 +0200

    Rework the wallet fees interface to make it closer to core's

    Summary: All of this was fubared for no good reason.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3233

commit 277cf8c6bd3ac94e7bb600d6bf0949c369eb96e0
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Mar 14 10:13:03 2017 +0100

    Merge #9977: QA: getblocktemplate_longpoll.py should always use >0 fee tx

    Summary:
    655df06 QA: getblocktemplate_longpoll.py should always use >0 fee tx (Suhas Daftuar)

    Tree-SHA512: 016647ba1408f8aaa3fc954835542354d54bf2391c4252c1c505101edbbe1cf8dd6a07060930109d0341f86360b9391dfef439999a93a5bae68fc901dace0b71

    Backport of Core PR9977
    https://github.com/bitcoin/bitcoin/pull/9977/files

    Test Plan:
    ```
    test_runner.py mining_getblocktemplate_longpoll
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3218

commit f35ce89a756b082ecd1872d11ba354cf7596f061
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:38:56 2019 -0700

    Update abc logs

commit b1ea011d9219b9541726dc11c8f18f99eb670245
Author: Mark Lundeberg <36528214+markblundeberg@users.noreply.github.com>
Date:   Thu Jun 6 13:18:28 2019 -0700

    remove four duplicate tests from script_tests.json

    Summary:
    These are identical to the preceding four test cases.
    For the curious: they were introduced like this in 2014 by Peter Todd:
    https://github.com/bitcoin/bitcoin/pull/3860

    Test Plan: `make check`

    Reviewers: jasonbcox, Fabien, #bitcoin_abc, deadalnix

    Reviewed By: jasonbcox, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3237

commit 39f5bc93581cef8fe48b8ee667c5e2d71b0d835e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Aug 23 12:14:20 2017 +0200

    Merge #10679: Document the non-DER-conformance of one test in tx_valid.json.

    Summary:
    ecb11f5 Document the non-strict-DER-conformance of one test in tx_valid.json. (Andreas Schildbach)

    Tree-SHA512: 4d5ba4645fbfe8fe3f1baaa5f1a1152cdd2cbf3d901f38d8e7fbd56b16caa6a8a17f2a48c74fb725ce454dd1c870b81b2238e89d0639fcd4eee858554726e996

    Backport of Core PR10679
    https://github.com/bitcoin/bitcoin/pull/10679/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3222

commit de24384d7317c683886dabbed3ca4a17f1a22ca4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 15:07:38 2017 +0200

    Merge #11435: build: Make "make clean" remove all files created when running "make check"

    Summary:
    f35d033 build: Make "make clean" remove all files created when running "make check" (practicalswift)

    Pull request description:

      Make `make clean` remove all files created when running `make check`. More specifically: remove also `obj/build.h` and `bench/data/block413567.raw.h` as part of `make clean`.

      Before this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      Only in bitcoin-after-make-and-make-clean/src/bench/data: block413567.raw.h
      Only in bitcoin-after-make-and-make-clean/src/obj: build.h
      $
      ```

      After this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      $
      ```

    Tree-SHA512: 953e8423485ffd415f0ade6abe0b4c407454f67c332140ef019d89db425bb4a831327b3f634b8d69b17325dcfc6e3ac72dc2ba1ce5462158eecc3c05645e93ba

    Backport of Core PR11435
    https://github.com/bitcoin/bitcoin/pull/11435/files

    Test Plan:
    ```
    # on master
    make
    make clean
    ls src/bench/data
    # block413567.raw.h
    ls src/obj
    # build.h

    # with this patch applied
    make
    make clean
    ls src/bench/data
    # <nothing>
    ls src/obj
    # <nothing>
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3223

commit 437e5efe1b45d313cd8f921006bbf2e3e399ed5f
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:31:18 2019 -0700

    Use devaultd in tor.md

commit 571ee65448ac5c9c12285afaded53a92b833a17a
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Nov 7 13:18:27 2017 -0500

    Merge #11620: [build] .gitignore: add background.tiff

    Summary:
    4a110a009 [build] .gitignore: add background.tiff (Sjors Provoost)

    Pull request description:

      On OSX, running `make deploy` results in three files that were not covered by `.gitignore`:

      	background.tiff
      	background.tiff.png
      	background.tiff@2x.png

    Tree-SHA512: cee7a6ebbc50f28bf588121902f6026ec08cf6516d9e56734dfc1b2d3f238e2db5bf87411f6a74b8bd06569f792789ac9f9046e6183f63fd675b953f24b060fc

    Backport of Core PR11620
    https://github.com/bitcoin/bitcoin/pull/11620/files

    Test Plan:
    I don't have a Mac to test `make deploy` on, but next best thing:
    ```
    touch background.tiff
    touch background.tiff.png
    git status
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3226

commit 4791a0c4ac8d275b152bef0000c44baa89295c0e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Sep 22 13:31:22 2017 +0200

    Merge #11380: Remove outdated share/certs/ directory

    Summary:
    6951a1c Remove extremely outdated share/certs dir (MeshCollider)

    Pull request description:

      The directory hasn't been touched for 5 years (other than a couple of typo fixes/renaming). The certificates are expired, the build process notes are out of date, especially with the gitian building and everything, Gavin no longer has anything to do with it, etc.

      The signing process is all documented (and scripted) elsewhere (e.g. doc/release-process.md and gitian-building.md, contrib/macdeploy and windeploy), this can just be removed

      @theuni can confirm if this is okay, we discussed it on IRC for a bit :)

    Tree-SHA512: e229785f7514a0f9988105f2ce68531a0a876032983ee5c77f41f1a976b9e732eb63cf2eb1f82841df8f7194940635c5ea5d4f8b30f95e69c763f74d4a3a28b1

    Backport of Core PR11380
    https://github.com/bitcoin/bitcoin/pull/11380/files

    Test Plan: N/A

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3227

commit b127610f8c53622f290c41f8a7eb6a33d70c58f9
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sun Apr 1 15:27:44 2018 -0400

    Merge #12843: [tests] Test starting bitcoind with -h and -version

    Summary:
    63048ec73d [tests] Test starting bitcoind with -h and -version (John Newbery)

    Pull request description:

      Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

      Prompted by https://github.com/bitcoin/bitcoin/pull/10762#commitcomment-28345993, which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

      On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

      ```
      BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
      2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
      Traceback (most recent call last):
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
          self.run_test()
        File "./feature_help.py", line 25, in run_test
          assert_equal(ret_code, 0)
        File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
          raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
      AssertionError: not(-11 == 0)
      2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
      Traceback (most recent call last):
        File "./feature_help.py", line 42, in <module>
          HelpTest().main()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
          self.stop_nodes()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
          node.stop_node()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
          self.stop()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
          assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
      AssertionError: Error: no RPC connection
      ```

      Passes for bitcoind and bitcoin-qt when run on #12836.

      Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

    Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

    Backport of Core PR12843
    https://github.com/bitcoin/bitcoin/pull/12843/

    Completes T569

    Test Plan:
      test_runner.py should also run the feature_help.py test and pass
      test_runner.py feature_help should run and pass

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3234

commit 6c1b9b08375cca5d5406cb499aa5b8f4cd53a6c5
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 17:16:23 2019 +0200

    Remove unused function for fees.h exposed interface

    Summary: As pe title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3214

commit 76429fc77f757129124df6b87d7eceea99dd1ef8
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 16:59:38 2017 +0100

    Merge #11884: Remove unused include in hash.cpp

    Summary:
    3f09e03 Remove unused include in hash.cpp (Karl-Johan Alm)

    Pull request description:

    Tree-SHA512: 543a72656460fba1c5498a0b85c49601d9b0399a4ecc49f4acf4715c258918da729df388e3be724c3161438e903ee16ad3c50626a71483aa6d85ffdbb827742d

    Backport Core PR11884
    https://github.com/bitcoin/bitcoin/pull/11884/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3208

commit 4a2eaa0a76a961943eb41794b4e09dba98687a01
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 1 16:42:55 2018 +0200

    Merge #12384: [Docs] Add version footnote to tor.md

    Summary:
    39d2911 [Docs] Add version footnote to tor.md (Damian Williamson)

    Pull request description:

      [Docs] Add version footnote to tor.md

      Added note to section 2, part -edits to `/etc/tor/torrc`- indicating this is only required for Tor version 0.2.7.0 and older, since section 3 states it is valid for Tor version 0.2.7.1 and newer. Added ref link from section 2 version footnote to section 3. Re-styled headings to work on GitHub -alternate heading style markup creation issue with numbered headings and thus headings and automatic heading links are broken-

      Ref: [Issue# 12376](https://github.com/bitcoin/bitcoin/issues/12376)

      Signed-off-by: Damian Williamson \<willtech@live.com.au\>

    Tree-SHA512: 439f4ccc3e196011af448b220adf26b0e653ac589bf4cfbbc276c1500c9d08f209c9d6101e4d232857779d9f25164cfb222ed30e3d63de116f9121e6ebde31c3

    Backport of Core PR12384
    https://github.com/bitcoin/bitcoin/pull/12384/files

    Test Plan: Read it and verify against the original PR.

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3200

commit 25128972154becfedcd7f0632bc5f3f2f375a99e
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Wed Jul 12 15:14:22 2017 -0700

    Merge #10714: Avoid printing incorrect block indexing time due to uninitialized variable

    Summary:
    959dd8781 Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)

    Tree-SHA512: a76e43c3ffa734ed5c7eadf363f345f268aa0e6ce775aba8f856fe3bbc82f240dc7c734c5ca3ac500a12eb41fae00623413e79f484d5acf809b6e400851d771d

    Backport of Core PR10714
    https://github.com/bitcoin/bitcoin/pull/10714/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3209

commit 969cab0c5cea86cef177ecccfea22db506abbf90
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 18:32:08 2019 +0200

    Replace childs => children in radix.h

    Summary: As per title.

    Test Plan:
      ./src/test/test_bitcoin -t radix_tests

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3215

commit 45a78cc93b133b6f6646d0cd06a15750a76b1b61
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 15:59:07 2019 +0200

    Replace c compatibility header with native c++ header

    Summary: This is the last case in the codebase.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3212

commit b0ca9469fc5e987fb94e46c055e43b6ddad1f94e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 14:35:15 2017 +0200

    Merge #11406: Add state message print to AcceptBlock failure message.

    Summary:
    6643b80 Add state message print to AcceptBlock failure message. (Matt Corallo)

    Pull request description:

      This should make it easier to debug issues where the CheckBlock at
      the top of ProcessNewBlock fails (which does not print, in contrast
      to AcceptBlock, which always prints).

      This was motivated by #11371 which appears to be exactly such a case, and is not debuggable from the information provided. Not sure how much this would have helped in that case, but it is kinda weird that we can reject a block without ever printing why.

    Tree-SHA512: 7a1c2c76080b810212da885c38e091609e409c62918cc326bb36a1096e09b2ae7e26fd4bdaefd79863d2894e2823e463005700a524940f177a59ef09f589b2f1

    Backport of Core PR11406
    https://github.com/bitcoin/bitcoin/pull/11406/files

    Test Plan:
    ```
    # on master
    test_runner.py --nocleanup

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED

    # with this patch
    make check
    test_runner.py

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED (Transaction order is invalid (01fc91cfedbea4a49c943158746de0467801cd24594139c8482ce976f3ed6101 < ce56a7306a2c9b1a6a7ecb8a31f17883023f3d224e1b09c2709ba8dca5dae53c))

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3211

commit 56655a06e8d3664ceab74ac0d366a2c625d802ef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 01:31:57 2019 +0200

    Remove useless priority calculation in wallet

    Summary: As far as i can tell, it does nothing.

    Test Plan:
      make check
      test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3210

commit 68b0e022a9ad845b15498a4bce7471278b8dadef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 17:25:01 2019 +0200

    Use constexpr in the RCU code

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3198

commit aef1e5fc1ae64cfc5eafd10152b782a6c774866f
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sat Nov 25 21:54:34 2017 -0500

    Merge #11683: tests: Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports.

    Summary:
    f522fb7c9 tests: Remove unused mininode functions deser_int_vector(f) and ser_int_vector(l) (practicalswift)

    Pull request description:

      * Remove unused mininode functions `deser_int_vector(f)` and `ser_int_vector(l)`. Last use removed in 3858aabbd084b2cc4534c40a178bbcc22fb82968. Friendly ping @jnewbery :-)
      * Remove unused imports.

    Tree-SHA512: 840c5623eae9f929561f6e86816883c5904ec1af82fc8d5e56dee1c0b1fe22e8600c10f7358ed8b556b3aec8c65c4910f6eee30e8015a573c4df8bef91124d3e

    Backport of Core PR11683
    https://github.com/bitcoin/bitcoin/pull/11683/commits/f522fb7c9c121641ce552774e3993942106ec336

    This PR actually had two commits, but the second commit (`0f3b752ec Remove unused imports (practicalswift)`) was blank after fixing merge conflicts.

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3205

commit bacd4127ed1c1eff727799c41912ed2a91047f70
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Nov 15 13:55:03 2017 +0100

    Merge #11655: net: Assert state.m_chain_sync.m_work_header in ConsiderEviction

    Summary:
    63c2d83 Explicitly state assumption that state.m_chain_sync.m_work_header != nullptr in ConsiderEviction (practicalswift)

    Pull request description:

      Explicitly state assumption that `state.m_chain_sync.m_work_header != nullptr` in `ConsiderEviction(…)`.

      Static analyzer (and humans!) will see the null-check in ...

      ```
      else if (state.m_chain_sync.m_timeout == 0 || (state.m_chain_sync.m_work_header != nullptr && ...
      ```

      ... and infer that `state.m_chain_sync.m_work_header` might be set to `nullptr` when reaching `else if (state.m_chain_sync.m_timeout > 0 && time_in_seconds > state.m_chain_sync.m_timeout)` and thus flag `state.m_chain_sync.m_work_header->GetBlockHash().ToString()` as a potential null pointer dereference.

      This commit makes the tacit assumption of `state.m_chain_sync.m_work_header != nullptr` explicit.

      Code introduced in 5a6d00c6defc587e22c93e63029fdd538ce8858d ("Permit disconnection of outbound peers on bad/slow chains") which was merged into master four days ago.

      Friendly ping @sdaftuar :-)

    Tree-SHA512: 32e5631025b7ba7556a02c89d040fbe339c482a03f28d0dbc9871c699e1f8ac867619b89c5fd41fdcfcf0dc4d7c859295b26ccd988572145cc244261aec18ce9

    Backport of Core PR11655
    https://github.com/bitcoin/bitcoin/pull/11655

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3199

commit 5d420bf2f6cd829073c2cd86859fe23c5c3b98e1
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 14:40:48 2019 +0200

    Remove implicit parameter from GetSerializeSize

    Summary:
    Both parameters are integer so we can't rely on the type checker to raise errors.

    One such error was present in `GetVirtualTransactionSize`

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3195

commit f708ae642393c62da8c1ca1b0f4eb978cd7a6ef5
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 10:35:58 2017 +0100

    Merge #11864: Make CWallet::FundTransaction atomic

    Summary:
    03a5dc9 [wallet] Make CWallet::FundTransaction atomic (João Barbosa)

    Pull request description:

      This PR fixes a race for `setLockedCoins` when `lockUnspents` is true. For instance, it should not be possible to use the same unspent in concurrent `fundrawtransaction` calls.

      Now the `cs_main` and `cs_wallet` locks are held during `CreateTransaction` and `LockCoin`(s). Also added some style nits around the change.

    Tree-SHA512: ccf383c0c5f6db775655a3e9ccd200c3bd831a83afae2b7c389564c74f7227f5bea86a4775727de2c3603b188f383f8a12d3f9d6d94f7887865c31c94ce95ef6

    Part 2 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Commit:
      Make CWallet::FundTransaction atomic
      03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Depends on D3192

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3196

commit 5ef670aabd8ee898f90c11c8bd01589bc50ae7ea
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Thu Dec 14 03:17:58 2017 +0000

    [wallet] Tidy up CWallet::FundTransaction

    Summary:
    Ended up being just a typo correction because of the linter.

    Part 1 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/95d4450a41e9b3f7a739eeefec322bf9366ce824

    Commit:
      [wallet] Tidy up CWallet::FundTransaction
      95d4450a41e9b3f7a739eeefec322bf9366ce824

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3192

commit 9a7d86766739ee22c949687937541051ff57ad24
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Dec 1 15:17:25 2017 +0100

    Merge #11337: Fix code constness in CBlockIndex::GetAncestor() overloads

    Summary:
    b4058ed Fix code constness in CBlockIndex::GetAncestor() overloads (Dan Raviv)

    Pull request description:

      Make the non-const overload of `CBlockIndex::GetAncestor()` reuse the const overload implementation instead of the other way around. This way, the constness of the const overload implementation is guaranteed. The other way around, it was possible to implement the non-const overload in a way which mutates the object, and since that implementation would be called even for const objects (due to the reuse), we would get undefined behavior.

    Tree-SHA512: 545a8639bc52502ea06dbd924e8fabec6274fa69b43e3b8966a7987ce4dae6fb2498f623730fde7ed0e47478941c7f8baa2e76a12018134ff7c14c0dfa25ba3a

    Backport of Core PR11337
    https://github.com/bitcoin/bitcoin/pull/11337

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3190

commit f3117ea1f0db3a10f5f636a55159f64ee0f96402
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 00:04:24 2019 +0200

    Move WalletRescanner to match Bitcoin Core codebase

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3191

commit fddfcd399ca2d86d9eb06834dd8c5733c2a40037
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 12:57:42 2019 +0200

    Remove billable size from CTransaction

    Summary:
    As pe title.

    Depends on D3188

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3189

commit 10d1e92ccc505cd9e592b0224822291d7abaf63e
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 17:23:31 2019 +0200

    Remove billable size from the mempool

    Summary:
    As per title. It is not used.

    Depends on D3184 and D3185

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3188

commit 2e574a1ebeb5879dde87a06dc1ff682cefbdbb9a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 16:56:00 2019 +0200

    Do not update billable size in descendents

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3185

commit 433a5bb179216794f06f3fdba4fb55705f94aa1d
Author: Jon Spock <jonspock@protonmail.com>
Date:   Wed Jul 3 18:50:38 2019 -0700

    update abc log

commit 81531f44a076194d20ab94141392a69ae677c64a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:44:56 2019 +0200

    Do not update billable size in ancestors

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3184

commit 6443eca7ae349d8fd2c163c6a841c914ce5d5e31
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:38:57 2019 +0200

    Remove billable size from mining

    Summary: As per title. It is not used at the moment, and goign with `GetVirtualTransactionSize` is definitiely a better option.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3183

commit bf34ab1705dd0a1044bcb5f16f9bb6ccdda6b7bf
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Sun Jun 4 22:45:22 2017 +0200

    Limit variable scope

    Summary:
    Limit variable scope

    Backport of Core PR10521
    https://github.com/bitcoin/bitcoin/pull/10521

    Test Plan:
      make check
      test_runner.py

      ../configure --enable-debug
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3146

commit df7f231b04e1d8e179bb80ecb167c2514ccef50c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Apr 3 13:24:09 2017 +0200

    Merge #9533: Allow non-power-of-2 signature cache sizes

    Summary:
    7482781 Allow non-power-of-2 signature cache sizes (Pieter Wuille)

    Tree-SHA512: 5731c22b46c5ae81cf6d52000c28e39b243a47d96d91079942a5b5a10db214449217f71aa2195e18f8a3917cb206b04c75dc13e4522eb700a1dbf1819013ba22

    Backport of Core PR9533
    https://github.com/bitcoin/bitcoin/pull/9533/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3175

commit 720de9989ef09305ffc188362495451758c58378
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Apr 26 09:34:08 2017 +0200

    Merge #10278: [test] Add Unit Test for GetListenPort

    Summary:
    1b14449 [test] Add Unit Test for GetListenPort (Jimmy Song)

    Tree-SHA512: aea5f60fb3699680cc5acac9d9c8d8712634db9d629bbfa1815a29e5cf46c22f783886c608664baaa91b3282c52ce8069c358850cf4f90acf731a9e6c1701caa

    Backport Core PR10278
    https://github.com/bitcoin/bitcoin/pull/10278/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3176

commit 27b439a04a0399c846b2da561790cc79b8936576
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:27:20 2019 +0200

    Reintroduce the concept of virtual size from core

    Summary: Bitcoin Core use the concept of virtual size to compute custom fees. We do not need to implement a ton of custom logic for our fee if we reuse that work.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3180

commit 34544049e5d3ffec91c0a3290dabfc48cecffdf4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Feb 8 19:44:52 2018 +0100

    Merge #12333: Make CWallet::ListCoins atomic

    Summary:
    1beea7a [wallet] Make CWallet::ListCoins atomic (João Barbosa)

    Pull request description:

      Fix a potencial race in `CWallet::ListCoins`.

      Replaces `cs_main` and `cs_wallet` locks by assertions in `CWallet::AvailableCoins`.

    Tree-SHA512: 09109f44a08b4b53f7605d950ab506d3f748490ab9aed474aa200e93f7b0b9f96f9bf60abe1c5f658240fd13d9e3267c0dd43fd3c1695d82384198ce1da8109f

    Backport of Core PR12333
    https://github.com/bitcoin/bitcoin/pull/12333/

    Note: 2f960b5 [wallet] Indent only change of CWallet::AvailableCoins (João Barbosa) was skipped because our linter made the changes unnecessary.  I also verified that cherry-picking this commit resulted in no change to the code.

    Test Plan:
      ../configure --enable-debug
      make check
      make check should not throw any locking errors.

    Reviewers: jasonbcox, deadalnix, Fabien, markblundeberg, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3049

commit 4345ad9655413db33fb3d7e5d2fde7952637d98b
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Wed Oct 4 23:29:34 2017 +0100

    Improve ZMQ functional test

    Summary:
    ```
    [...], this PR only improves:
      - test comments;
      - simplicity by removing duplicate tests;
      - also removes duplicate code.
    ```

    Backport of core PR11452
    https://github.com/bitcoin/bitcoin/pull/11452/files

    Test Plan:
      ./test/functional/test_runner.py interface_zmq

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3179

commit 7fdc5179451ac39b54478ab6f088f2c2512b5d2a
Author: Matt Corallo <git@bluematt.me>
Date:   Sun Oct 1 00:23:02 2017 -0400

    Remove redundant pwallet nullptr check

    Summary: This is the last part of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/89f03120a02690cff8399d77c979169355bf9cae

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3177

commit b065479349f8de1f01735030a129dcf6a352055d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Oct 8 15:50:09 2018 +0200

    Add missing locks and locking annotations for CAddrMan

    Summary: This is a backport of Core PR13115

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3178

commit 5533fadf9a6de2371be3bc4b833a000c02752d2f
Author: Shammah Chancellor <shammah.chancellor@gmail.com>
Date:   Thu May 30 20:12:00 2019 -0700

    [mining] Add a test for TestCBlockTemplateEntry

    Summary:
    Add the skeleton of a test to ensure that the constructor is setting the expected
    fields, and can be filled in later for more complicated logic which will be added.

    Test Plan:
      make check

    Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3162

commit ddd92fcda6d3dabf8bfad98079d0c3f73a0139f7
Author: Matt Corallo <git@bluematt.me>
Date:   Tue Jun 20 21:21:36 2017 -0400

    Fix wallet RPC race by waiting for callbacks in sendrawtransaction

    Summary:
    This is partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/cb06edf938302166030db19017c27889ea5b10b6

    This patch was merged with the following bug fix:

    Fix sendrawtransaction hang when sending a tx already in mempool

    This is a backport of Core PR11738 : https://github.com/bitcoin/bitcoin/pull/11738

    Test Plan:
      make check
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3165

commit 07b3272f185414bc71a7f6763a0c9e90e09e1eaf
Author: Matt Corallo <git@bluematt.me>
Date:   Thu Jun 8 11:08:53 2017 -0400

    Also call other wallet notify callbacks in scheduler thread

    Summary:
    This runs Block{Connected,Disconnected}, SetBestChain, Inventory,
    and TransactionAddedToMempool on the background scheduler thread.

    Of those, only BlockConnected is used outside of Wallet/ZMQ, and
    is used only for orphan transaction removal in net_processing,
    something which does not need to be synchronous with anything
    else.

    This partially reverts #9583, re-enabling some of the gains from
     #7946. This does not, however, re-enable the gains achieved by
    repeatedly releasing cs_main between each transaction processed.

    This is a partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/e545dedf72bff2bd41c93c93eb576929fce37112

    Depends on D3154

    Test Plan:
      make check
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3156

commit 1beb4a56d3fb676b4ece1b2b86cc061c6940f4ec
Author: Jesse Cohen <jc@jc.lol>
Date:   Tue Apr 17 17:05:08 2018 -0400

    Add tests to SingleThreadedSchedulerClient() and document the memory model

    Summary:
    This is a backport of Core PR13247

    Add Unit Test for SingleThreadedSchedulerClient

    Ensures ordering of callbacks within a SingleThreadedSchedulerClient
    with respect to each other

    Update documentation for SingleThreadedSchedulerClient() to specify the memory model

    Update ValidationInterface() documentation to explicitly specify threading and memory model

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3169

commit 4f04d64e046a1ef6e4df6cfe078f94525ea4f0bf
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 13:34:50 2019 +0200

    Various improvements to the scheduler

    Summary:
     - Use proper C++ function `(void)` is a C construct and we are not using C
     - Use std::bind instead of boost::bind
     - Relayout a few comments

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3167

commit 9b01970f10098204a6b17f5f068e9968c992ad9d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Apr 30 11:17:06 2018 +0200

    scheduler: Add Clang thread safety annotations for variables guarded by m_cs_callbacks_pending

    Summary: This is a backport of Core PR13125

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3168

commit 3ec38909f7cfe0a98ccd2752213018f84f346b82
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 15:14:06 2019 +0200

    unsigned char => uint8_t

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3170
proteanx pushed a commit to devaultcrypto/devault that referenced this pull request Jul 5, 2019
commit 7560248b5470457420b6d082dd942b84683132f0
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 09:00:50 2019 -0700

    Add include <codecvt> for windows

commit 2c05ed281a2120dbee461d214a81b418dbae2e22
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 08:29:43 2019 -0700

    update abc logs

commit 7d11ee25dc3be0b8040b6d48cf8915d87cc3a838
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:37:24 2018 -0500

    Calculate and store the number of bytes required to spend an input

    Summary: This is extracted from Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/12ec29d3bb0d46c61712210fe9bb96a0d543204a

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3243

commit 3fc1f3c92e8e50b51d91cd28da58db84294c3a9d
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Fri Mar 9 17:21:27 2018 -0500

    Move output eligibility to a separate function

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/ce7435cf1ef36109595be9a3a3955afdff1d63e4

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3245

commit fe2aaa1179f8c597d772a7a1a251f248651e28fb
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:39:48 2018 -0500

    Add a GetMinimumFeeRate function which is wrapped by GetMinimumFee

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/fab04887c22cf71a4b15ac0b0a127e150229d686

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3251

commit 4b69922cf921dfcc40982e2a958927129a9245b4
Author: Alex Morcos <morcos@chaincode.com>
Date:   Tue Dec 13 16:38:43 2016 -0500

    Don't create change at the dust limit, even if it means paying more than expected

    Summary: This is a backport of Core PR9343

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3296

commit af8bc4c366ad00d92e2d69e44f5632abb2cb3cc0
Author: Alex Morcos <morcos@chaincode.com>
Date:   Thu Jul 27 17:01:39 2017 -0400

    Eliminate fee overpaying edge case when subtracting fee from recipients

    Summary: This is a backport of Core PR10942

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3297

commit fbeaa82c80054320fba93727912a9dd4d1eb180d
Author: fanquake <fanquake@gmail.com>
Date:   Mon Nov 6 22:25:22 2017 +0800

    Fix make distcheck

    Summary:
    This adds the `compat/setenv.h` file to the autotools build headers, and
    a fix backported from core PR11621.

    Backport of core PR11621
    https://github.com/bitcoin/bitcoin/pull/11621/files

    Test Plan:
      make distcheck

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, deadalnix, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3256

commit b1389eaf680ee277f56bd711c75e461f551cec53
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 16 12:12:58 2017 +0200

    Merge #10404: doc: Add logging to FinalizeNode()

    Summary:
    1530bfc Add logging to FinalizeNode() (Suhas Daftuar)

    Tree-SHA512: 34bd950eb7830f378d069229c24122e97db68435b313f0de2c8772c2feefdc6db5f4d1f43eeade237ffe91cdef0f1cfe3232e1a37c561a65767f4527b2e2e370

    Backport of Core PR10404

    https://github.com/bitcoin/bitcoin/pull/10404/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3284

commit b09831e69100dbc2ee19db7cca5586facf99b738
Author: John Newbery <john@johnnewbery.com>
Date:   Wed Feb 7 09:57:27 2018 -0500

    [tests] Better stderr testing

    Summary:
    ```
    This PR tightens our checking of stderr and will cause tests to fail if
    there is any unexpected message in stderr:

      - commit Write stdout/stderr to datadir instead of temp file writes
    stderr to a file in the datadir instead of a temporary file. This helps
    with debugging in the case of failure.
      - commit Use LIBC_FATAL_STDERR=1 in tests ensures that libc failures
    are logged to stderr instead of the terminal.
    ```

    Backport of core PR12755
    https://github.com/bitcoin/bitcoin/pull/12755/files

    Depends on D3273
    Fixes T540

    Test Plan:
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Maniphest Tasks: T540

    Differential Revision: https://reviews.bitcoinabc.org/D3274

commit 464b271d8708b8bfc6591d723fa26d845b0dfbb2
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Thu Apr 19 08:38:59 2018 -0400

    qa: Normalize executable location

    Summary:
    ```
    This removes the need to override the executable locations by just
    reading them from the config file. Beside making the code easier to
    read, running individual test on Windows is now possible by default
    (without providing further command line arguments).

    Note: Of course, it is still possible to manually specify the location
    through the BITCOIND environment variable, e.g. bitcoin-qt
    ```

    Backport of core PR13051
    https://github.com/bitcoin/bitcoin/pull/13051/files

    Note to reviewers: the backport has some minor differences with the
    original PR due to changes from D2535 and D2696. Also core removed the
    comparison framework, but it is still widely used in our codebase
    especially in abc-* tests, so this diff adds changes to support the
    comparison framework as well.

    Test Plan:
    This should work from an out of tree build:
      ./test/functional/test_runner.py
      ../test/functional/rpc_uptime.py --configfile=test/config.ini
    Due to other issues from our `test_runner.py` file this diff is not
    enough to let you run functional tests under windows.

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3273

commit a06b3085a3232850aafd997dd68880f8f680b67b
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Fri Feb 23 08:10:42 2018 +0100

    Avoid unintentional unsigned integer wraparounds in tests

    Summary:
    Backport of core PR12516
    https://github.com/bitcoin/bitcoin/pull/12516/files

    Depends on D3275

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3276

commit 343fffe4e783179cf746e6920fa8d19b901584be
Author: Chun Kuan Lee <ken2812221@gmail.com>
Date:   Mon Aug 6 01:03:33 2018 +0000

    utils: run commands using utf-8 string on Windows

    Summary:
    ```
    Use unicode string to call commans
    ```

    Backport of core PR13886
    https://github.com/bitcoin/bitcoin/pull/13886/files

    Will fix gitian windows build issue introduced in D3241.

    Test Plan:
      make check
    Build for windows:
    ```
    mkdir buildcmake && cd buildcmake
    cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake \
    -DBUILD_BITCOIN_SEEDER=OFF
    ninja
    ```

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3272

commit 2ef5741ec4ac42a2e77d199d36066cabfa5c7381
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Jun 11 14:22:00 2017 +0200

    Merge #10560: Remove unused constants

    Summary:
    dce8239 Comment out unused constant REJECT_DUST (practicalswift)
    3289ef4 Remove unused constant MEMPOOL_GD_VERSION (practicalswift)

    Tree-SHA512: 8dd772c963037cd0a1db0d5bf5f7a5cce3f5cd8fb6fa983949f9f0c1c8312ffd251a62c1e5d32f3584d2bcc562d8c8a9bf7900609dee9a4f12898caa2be9c38f

    I actually went a head and deleted REJECT_DUST since it wasn't used anywhere and it made no sense to just leave it in even if it was uncommented.

    Backport of Core PR10560
    https://github.com/bitcoin/bitcoin/pull/10560/files

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3260

commit 773a1621326340f5602715f152ae78344798ba4b
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Jun 8 09:43:03 2017 +0200

    Merge #10524: [tests] Remove printf(...)

    Summary:
    0abc588 [tests] Remove printf(...) (practicalswift)

    Tree-SHA512: a56fa1edce050f5a44a53842223fc99e4e8ade413047e04f2064faeb5c4a418864a94471853d5c26a20608d1dcc18b9226d7fe15172f79a66cc5cf6e1443f7e9

    Backport of Core PR10524
    https://github.com/bitcoin/bitcoin/pull/10524

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3259

commit c3a74603f8b6aabe3be957b23831b89e3ed7977e
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Wed Mar 7 21:21:57 2018 -0500

    [qa] util: Remove unused sync_chain

    Summary:
    ```
    The util function sync_blocks already checks for equal chains, so we can
    remove the unused sync_chain.
    ```

    Backport of core PR12643
    https://github.com/bitcoin/bitcoin/pull/12643/files

    Test Plan:
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3257

commit 19dda0e31a8c29c824a3504f6148a965cf0c98e3
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Mon Jun 12 15:09:07 2017 -0700

    Merge #10568: Remove unnecessary forward class declarations in header files

    Summary:
    4087d9ea7 Remove unnecessary forward class declarations in header files (practicalswift)

    Tree-SHA512: 80a9b2cd339ba9c606c0dd93739ac80941b6050388fee2edd7976ae8b5e332fd0b4f1df1e89c1d6d28a77c23a36b1e874e72977985fb8f710c65c45c3a926f97

    Backport of Core PR10568
    https://github.com/bitcoin/bitcoin/pull/10568/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3261

commit 5728cd342f02706fdb15e906315ec379b4d2127c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue Jun 6 15:51:13 2017 +0200

    Merge #9909: tests: Add FindEarliestAtLeast test for edge cases

    Summary:
    cf66f04 Add FindEarliestAtLeast test for edge cases (Russell Yanofsky)

    Tree-SHA512: bed2e9b2eefe0014414f1be8f0ba236b1dcc6744a670ffa546100c62817dd06a117cc62cdff80c4988d2b374cae9a57f2bb135fc582ffb51ca2d34ab07bb3fe0

    Backport of Core PR9909
    https://github.com/bitcoin/bitcoin/pull/9909/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3244

commit 478accdbff3f8ec4852d06dacedc3c40e1abcc9c
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Jun 6 23:51:30 2017 +0200

    Merge #10522: [wallet] Remove unused variables

    Summary:
    a8c09af Remove unused variables (practicalswift)

    Tree-SHA512: 34807dc3a0471c83b086f430b66465602c8f6a3a158b54ace2ec8afb746f1f5907f7dfcde5a4bad4041df9721ec46b61681b2dbf89725c9c8c4c5ad0ca99f78f

    Backport of Core PR10522
    https://github.com/bitcoin/bitcoin/pull/10522/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3247

commit 85399a25bd85c5494de3fe504fd1d1b6a651a37a
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:54:05 2019 -0700

    Update abc logs

commit fc2b6469343d1889d2d28570c43b08182494a823
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:51:42 2019 -0700

    Merge #13877: utils: Make fs::path::string() always return utf-8 string on Windows

        Summary:
        2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee)

        Pull request description:

          Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`.

        Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118

        Backport of Core PR13877
        https://github.com/bitcoin/bitcoin/pull/13877/files

commit 1ee762d9a462f81822f345ec1a9bb9c5ec6c1574
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Apr 8 17:05:44 2018 +0200

    Merge #12904: [qa] Ensure bitcoind processes are cleaned up when tests end

    Summary:
    e36a0c0 [qa] Ensure bitcoind processes are cleaned up when tests end (Suhas Daftuar)

    Pull request description:

      When tests fail (such as due to a bug in the test, race condition, etc), it's possible that we could follow code paths that bypass our normal node shutdown that occurs in `TestNode.stop_node`.  Add a destructor to `TestNode` that cleans this up.

    Tree-SHA512: 72e04bc21462ebd0cb346fd1fe0540da454acfbad41923a0b06ea2317e9045b68e58f9adb02d8200891aca89a9d03a022eb72282aeb31a3b3afe7c6843a4b450

    Backport of Core PR12904
    https://github.com/bitcoin/bitcoin/pull/12904/

    Depends on D3234

    Completes T446

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3235

commit fb0a7a00f08e8346f9df58619c3f367500ecb90c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Jun 5 16:05:15 2017 +0200

    Merge #10514: Bugfix: missing == 0 after randrange

    Summary:
    9aa215b Bugfixes: missing == 0 after randrange (Pieter Wuille)

    Tree-SHA512: 160657ac09553f23ad7a3966c753a30ba938ce6f7ccfd34a4ef0d05d73d712362f7eef97e44a96e37a181b8347caa9d8e1584cc4485f69674ab2de3d8a247373

    Backport of Core PR10514
    https://github.com/bitcoin/bitcoin/pull/10514/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3240

commit a3407bfe7cbba24081d92eed369c6a335d974841
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Fri Jun 2 16:03:21 2017 -0700

    Merge #10500: Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings

    Summary:
    b9b814a38 Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (Russell Yanofsky)

    Tree-SHA512: 96a0612ca460ba1bfb3921f3aa348400fd3afa12c40f2ca1f3f04068b1574fe824d577e0123013d8898a4990084316dc1dfb541331849f0996ceff7f4eb25e6b

    Backport of Core PR10500
    https://github.com/bitcoin/bitcoin/pull/10500/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, Fabien, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3239

commit 4d99dd0c95c66cc5fc2f4e140d2d84b1bab1c589
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Thu Jun 6 14:30:07 2019 +0200

    Rework the wallet fees interface to make it closer to core's

    Summary: All of this was fubared for no good reason.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3233

commit 277cf8c6bd3ac94e7bb600d6bf0949c369eb96e0
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Mar 14 10:13:03 2017 +0100

    Merge #9977: QA: getblocktemplate_longpoll.py should always use >0 fee tx

    Summary:
    655df06 QA: getblocktemplate_longpoll.py should always use >0 fee tx (Suhas Daftuar)

    Tree-SHA512: 016647ba1408f8aaa3fc954835542354d54bf2391c4252c1c505101edbbe1cf8dd6a07060930109d0341f86360b9391dfef439999a93a5bae68fc901dace0b71

    Backport of Core PR9977
    https://github.com/bitcoin/bitcoin/pull/9977/files

    Test Plan:
    ```
    test_runner.py mining_getblocktemplate_longpoll
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3218

commit f35ce89a756b082ecd1872d11ba354cf7596f061
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:38:56 2019 -0700

    Update abc logs

commit b1ea011d9219b9541726dc11c8f18f99eb670245
Author: Mark Lundeberg <36528214+markblundeberg@users.noreply.github.com>
Date:   Thu Jun 6 13:18:28 2019 -0700

    remove four duplicate tests from script_tests.json

    Summary:
    These are identical to the preceding four test cases.
    For the curious: they were introduced like this in 2014 by Peter Todd:
    https://github.com/bitcoin/bitcoin/pull/3860

    Test Plan: `make check`

    Reviewers: jasonbcox, Fabien, #bitcoin_abc, deadalnix

    Reviewed By: jasonbcox, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3237

commit 39f5bc93581cef8fe48b8ee667c5e2d71b0d835e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Aug 23 12:14:20 2017 +0200

    Merge #10679: Document the non-DER-conformance of one test in tx_valid.json.

    Summary:
    ecb11f5 Document the non-strict-DER-conformance of one test in tx_valid.json. (Andreas Schildbach)

    Tree-SHA512: 4d5ba4645fbfe8fe3f1baaa5f1a1152cdd2cbf3d901f38d8e7fbd56b16caa6a8a17f2a48c74fb725ce454dd1c870b81b2238e89d0639fcd4eee858554726e996

    Backport of Core PR10679
    https://github.com/bitcoin/bitcoin/pull/10679/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3222

commit de24384d7317c683886dabbed3ca4a17f1a22ca4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 15:07:38 2017 +0200

    Merge #11435: build: Make "make clean" remove all files created when running "make check"

    Summary:
    f35d033 build: Make "make clean" remove all files created when running "make check" (practicalswift)

    Pull request description:

      Make `make clean` remove all files created when running `make check`. More specifically: remove also `obj/build.h` and `bench/data/block413567.raw.h` as part of `make clean`.

      Before this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      Only in bitcoin-after-make-and-make-clean/src/bench/data: block413567.raw.h
      Only in bitcoin-after-make-and-make-clean/src/obj: build.h
      $
      ```

      After this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      $
      ```

    Tree-SHA512: 953e8423485ffd415f0ade6abe0b4c407454f67c332140ef019d89db425bb4a831327b3f634b8d69b17325dcfc6e3ac72dc2ba1ce5462158eecc3c05645e93ba

    Backport of Core PR11435
    https://github.com/bitcoin/bitcoin/pull/11435/files

    Test Plan:
    ```
    # on master
    make
    make clean
    ls src/bench/data
    # block413567.raw.h
    ls src/obj
    # build.h

    # with this patch applied
    make
    make clean
    ls src/bench/data
    # <nothing>
    ls src/obj
    # <nothing>
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3223

commit 437e5efe1b45d313cd8f921006bbf2e3e399ed5f
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:31:18 2019 -0700

    Use devaultd in tor.md

commit 571ee65448ac5c9c12285afaded53a92b833a17a
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Nov 7 13:18:27 2017 -0500

    Merge #11620: [build] .gitignore: add background.tiff

    Summary:
    4a110a009 [build] .gitignore: add background.tiff (Sjors Provoost)

    Pull request description:

      On OSX, running `make deploy` results in three files that were not covered by `.gitignore`:

      	background.tiff
      	background.tiff.png
      	background.tiff@2x.png

    Tree-SHA512: cee7a6ebbc50f28bf588121902f6026ec08cf6516d9e56734dfc1b2d3f238e2db5bf87411f6a74b8bd06569f792789ac9f9046e6183f63fd675b953f24b060fc

    Backport of Core PR11620
    https://github.com/bitcoin/bitcoin/pull/11620/files

    Test Plan:
    I don't have a Mac to test `make deploy` on, but next best thing:
    ```
    touch background.tiff
    touch background.tiff.png
    git status
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3226

commit 4791a0c4ac8d275b152bef0000c44baa89295c0e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Sep 22 13:31:22 2017 +0200

    Merge #11380: Remove outdated share/certs/ directory

    Summary:
    6951a1c Remove extremely outdated share/certs dir (MeshCollider)

    Pull request description:

      The directory hasn't been touched for 5 years (other than a couple of typo fixes/renaming). The certificates are expired, the build process notes are out of date, especially with the gitian building and everything, Gavin no longer has anything to do with it, etc.

      The signing process is all documented (and scripted) elsewhere (e.g. doc/release-process.md and gitian-building.md, contrib/macdeploy and windeploy), this can just be removed

      @theuni can confirm if this is okay, we discussed it on IRC for a bit :)

    Tree-SHA512: e229785f7514a0f9988105f2ce68531a0a876032983ee5c77f41f1a976b9e732eb63cf2eb1f82841df8f7194940635c5ea5d4f8b30f95e69c763f74d4a3a28b1

    Backport of Core PR11380
    https://github.com/bitcoin/bitcoin/pull/11380/files

    Test Plan: N/A

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3227

commit b127610f8c53622f290c41f8a7eb6a33d70c58f9
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sun Apr 1 15:27:44 2018 -0400

    Merge #12843: [tests] Test starting bitcoind with -h and -version

    Summary:
    63048ec73d [tests] Test starting bitcoind with -h and -version (John Newbery)

    Pull request description:

      Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

      Prompted by https://github.com/bitcoin/bitcoin/pull/10762#commitcomment-28345993, which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

      On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

      ```
      BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
      2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
      Traceback (most recent call last):
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
          self.run_test()
        File "./feature_help.py", line 25, in run_test
          assert_equal(ret_code, 0)
        File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
          raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
      AssertionError: not(-11 == 0)
      2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
      Traceback (most recent call last):
        File "./feature_help.py", line 42, in <module>
          HelpTest().main()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
          self.stop_nodes()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
          node.stop_node()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
          self.stop()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
          assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
      AssertionError: Error: no RPC connection
      ```

      Passes for bitcoind and bitcoin-qt when run on #12836.

      Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

    Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

    Backport of Core PR12843
    https://github.com/bitcoin/bitcoin/pull/12843/

    Completes T569

    Test Plan:
      test_runner.py should also run the feature_help.py test and pass
      test_runner.py feature_help should run and pass

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3234

commit 6c1b9b08375cca5d5406cb499aa5b8f4cd53a6c5
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 17:16:23 2019 +0200

    Remove unused function for fees.h exposed interface

    Summary: As pe title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3214

commit 76429fc77f757129124df6b87d7eceea99dd1ef8
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 16:59:38 2017 +0100

    Merge #11884: Remove unused include in hash.cpp

    Summary:
    3f09e03 Remove unused include in hash.cpp (Karl-Johan Alm)

    Pull request description:

    Tree-SHA512: 543a72656460fba1c5498a0b85c49601d9b0399a4ecc49f4acf4715c258918da729df388e3be724c3161438e903ee16ad3c50626a71483aa6d85ffdbb827742d

    Backport Core PR11884
    https://github.com/bitcoin/bitcoin/pull/11884/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3208

commit 4a2eaa0a76a961943eb41794b4e09dba98687a01
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 1 16:42:55 2018 +0200

    Merge #12384: [Docs] Add version footnote to tor.md

    Summary:
    39d2911 [Docs] Add version footnote to tor.md (Damian Williamson)

    Pull request description:

      [Docs] Add version footnote to tor.md

      Added note to section 2, part -edits to `/etc/tor/torrc`- indicating this is only required for Tor version 0.2.7.0 and older, since section 3 states it is valid for Tor version 0.2.7.1 and newer. Added ref link from section 2 version footnote to section 3. Re-styled headings to work on GitHub -alternate heading style markup creation issue with numbered headings and thus headings and automatic heading links are broken-

      Ref: [Issue# 12376](https://github.com/bitcoin/bitcoin/issues/12376)

      Signed-off-by: Damian Williamson \<willtech@live.com.au\>

    Tree-SHA512: 439f4ccc3e196011af448b220adf26b0e653ac589bf4cfbbc276c1500c9d08f209c9d6101e4d232857779d9f25164cfb222ed30e3d63de116f9121e6ebde31c3

    Backport of Core PR12384
    https://github.com/bitcoin/bitcoin/pull/12384/files

    Test Plan: Read it and verify against the original PR.

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3200

commit 25128972154becfedcd7f0632bc5f3f2f375a99e
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Wed Jul 12 15:14:22 2017 -0700

    Merge #10714: Avoid printing incorrect block indexing time due to uninitialized variable

    Summary:
    959dd8781 Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)

    Tree-SHA512: a76e43c3ffa734ed5c7eadf363f345f268aa0e6ce775aba8f856fe3bbc82f240dc7c734c5ca3ac500a12eb41fae00623413e79f484d5acf809b6e400851d771d

    Backport of Core PR10714
    https://github.com/bitcoin/bitcoin/pull/10714/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3209

commit 969cab0c5cea86cef177ecccfea22db506abbf90
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 18:32:08 2019 +0200

    Replace childs => children in radix.h

    Summary: As per title.

    Test Plan:
      ./src/test/test_bitcoin -t radix_tests

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3215

commit 45a78cc93b133b6f6646d0cd06a15750a76b1b61
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 15:59:07 2019 +0200

    Replace c compatibility header with native c++ header

    Summary: This is the last case in the codebase.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3212

commit b0ca9469fc5e987fb94e46c055e43b6ddad1f94e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 14:35:15 2017 +0200

    Merge #11406: Add state message print to AcceptBlock failure message.

    Summary:
    6643b80 Add state message print to AcceptBlock failure message. (Matt Corallo)

    Pull request description:

      This should make it easier to debug issues where the CheckBlock at
      the top of ProcessNewBlock fails (which does not print, in contrast
      to AcceptBlock, which always prints).

      This was motivated by #11371 which appears to be exactly such a case, and is not debuggable from the information provided. Not sure how much this would have helped in that case, but it is kinda weird that we can reject a block without ever printing why.

    Tree-SHA512: 7a1c2c76080b810212da885c38e091609e409c62918cc326bb36a1096e09b2ae7e26fd4bdaefd79863d2894e2823e463005700a524940f177a59ef09f589b2f1

    Backport of Core PR11406
    https://github.com/bitcoin/bitcoin/pull/11406/files

    Test Plan:
    ```
    # on master
    test_runner.py --nocleanup

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED

    # with this patch
    make check
    test_runner.py

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED (Transaction order is invalid (01fc91cfedbea4a49c943158746de0467801cd24594139c8482ce976f3ed6101 < ce56a7306a2c9b1a6a7ecb8a31f17883023f3d224e1b09c2709ba8dca5dae53c))

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3211

commit 56655a06e8d3664ceab74ac0d366a2c625d802ef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 01:31:57 2019 +0200

    Remove useless priority calculation in wallet

    Summary: As far as i can tell, it does nothing.

    Test Plan:
      make check
      test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3210

commit 68b0e022a9ad845b15498a4bce7471278b8dadef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 17:25:01 2019 +0200

    Use constexpr in the RCU code

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3198

commit aef1e5fc1ae64cfc5eafd10152b782a6c774866f
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sat Nov 25 21:54:34 2017 -0500

    Merge #11683: tests: Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports.

    Summary:
    f522fb7c9 tests: Remove unused mininode functions deser_int_vector(f) and ser_int_vector(l) (practicalswift)

    Pull request description:

      * Remove unused mininode functions `deser_int_vector(f)` and `ser_int_vector(l)`. Last use removed in 3858aabbd084b2cc4534c40a178bbcc22fb82968. Friendly ping @jnewbery :-)
      * Remove unused imports.

    Tree-SHA512: 840c5623eae9f929561f6e86816883c5904ec1af82fc8d5e56dee1c0b1fe22e8600c10f7358ed8b556b3aec8c65c4910f6eee30e8015a573c4df8bef91124d3e

    Backport of Core PR11683
    https://github.com/bitcoin/bitcoin/pull/11683/commits/f522fb7c9c121641ce552774e3993942106ec336

    This PR actually had two commits, but the second commit (`0f3b752ec Remove unused imports (practicalswift)`) was blank after fixing merge conflicts.

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3205

commit bacd4127ed1c1eff727799c41912ed2a91047f70
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Nov 15 13:55:03 2017 +0100

    Merge #11655: net: Assert state.m_chain_sync.m_work_header in ConsiderEviction

    Summary:
    63c2d83 Explicitly state assumption that state.m_chain_sync.m_work_header != nullptr in ConsiderEviction (practicalswift)

    Pull request description:

      Explicitly state assumption that `state.m_chain_sync.m_work_header != nullptr` in `ConsiderEviction(…)`.

      Static analyzer (and humans!) will see the null-check in ...

      ```
      else if (state.m_chain_sync.m_timeout == 0 || (state.m_chain_sync.m_work_header != nullptr && ...
      ```

      ... and infer that `state.m_chain_sync.m_work_header` might be set to `nullptr` when reaching `else if (state.m_chain_sync.m_timeout > 0 && time_in_seconds > state.m_chain_sync.m_timeout)` and thus flag `state.m_chain_sync.m_work_header->GetBlockHash().ToString()` as a potential null pointer dereference.

      This commit makes the tacit assumption of `state.m_chain_sync.m_work_header != nullptr` explicit.

      Code introduced in 5a6d00c6defc587e22c93e63029fdd538ce8858d ("Permit disconnection of outbound peers on bad/slow chains") which was merged into master four days ago.

      Friendly ping @sdaftuar :-)

    Tree-SHA512: 32e5631025b7ba7556a02c89d040fbe339c482a03f28d0dbc9871c699e1f8ac867619b89c5fd41fdcfcf0dc4d7c859295b26ccd988572145cc244261aec18ce9

    Backport of Core PR11655
    https://github.com/bitcoin/bitcoin/pull/11655

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3199

commit 5d420bf2f6cd829073c2cd86859fe23c5c3b98e1
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 14:40:48 2019 +0200

    Remove implicit parameter from GetSerializeSize

    Summary:
    Both parameters are integer so we can't rely on the type checker to raise errors.

    One such error was present in `GetVirtualTransactionSize`

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3195

commit f708ae642393c62da8c1ca1b0f4eb978cd7a6ef5
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 10:35:58 2017 +0100

    Merge #11864: Make CWallet::FundTransaction atomic

    Summary:
    03a5dc9 [wallet] Make CWallet::FundTransaction atomic (João Barbosa)

    Pull request description:

      This PR fixes a race for `setLockedCoins` when `lockUnspents` is true. For instance, it should not be possible to use the same unspent in concurrent `fundrawtransaction` calls.

      Now the `cs_main` and `cs_wallet` locks are held during `CreateTransaction` and `LockCoin`(s). Also added some style nits around the change.

    Tree-SHA512: ccf383c0c5f6db775655a3e9ccd200c3bd831a83afae2b7c389564c74f7227f5bea86a4775727de2c3603b188f383f8a12d3f9d6d94f7887865c31c94ce95ef6

    Part 2 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Commit:
      Make CWallet::FundTransaction atomic
      03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Depends on D3192

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3196

commit 5ef670aabd8ee898f90c11c8bd01589bc50ae7ea
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Thu Dec 14 03:17:58 2017 +0000

    [wallet] Tidy up CWallet::FundTransaction

    Summary:
    Ended up being just a typo correction because of the linter.

    Part 1 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/95d4450a41e9b3f7a739eeefec322bf9366ce824

    Commit:
      [wallet] Tidy up CWallet::FundTransaction
      95d4450a41e9b3f7a739eeefec322bf9366ce824

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3192

commit 9a7d86766739ee22c949687937541051ff57ad24
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Dec 1 15:17:25 2017 +0100

    Merge #11337: Fix code constness in CBlockIndex::GetAncestor() overloads

    Summary:
    b4058ed Fix code constness in CBlockIndex::GetAncestor() overloads (Dan Raviv)

    Pull request description:

      Make the non-const overload of `CBlockIndex::GetAncestor()` reuse the const overload implementation instead of the other way around. This way, the constness of the const overload implementation is guaranteed. The other way around, it was possible to implement the non-const overload in a way which mutates the object, and since that implementation would be called even for const objects (due to the reuse), we would get undefined behavior.

    Tree-SHA512: 545a8639bc52502ea06dbd924e8fabec6274fa69b43e3b8966a7987ce4dae6fb2498f623730fde7ed0e47478941c7f8baa2e76a12018134ff7c14c0dfa25ba3a

    Backport of Core PR11337
    https://github.com/bitcoin/bitcoin/pull/11337

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3190

commit f3117ea1f0db3a10f5f636a55159f64ee0f96402
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 00:04:24 2019 +0200

    Move WalletRescanner to match Bitcoin Core codebase

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3191

commit fddfcd399ca2d86d9eb06834dd8c5733c2a40037
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 12:57:42 2019 +0200

    Remove billable size from CTransaction

    Summary:
    As pe title.

    Depends on D3188

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3189

commit 10d1e92ccc505cd9e592b0224822291d7abaf63e
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 17:23:31 2019 +0200

    Remove billable size from the mempool

    Summary:
    As per title. It is not used.

    Depends on D3184 and D3185

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3188

commit 2e574a1ebeb5879dde87a06dc1ff682cefbdbb9a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 16:56:00 2019 +0200

    Do not update billable size in descendents

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3185

commit 433a5bb179216794f06f3fdba4fb55705f94aa1d
Author: Jon Spock <jonspock@protonmail.com>
Date:   Wed Jul 3 18:50:38 2019 -0700

    update abc log

commit 81531f44a076194d20ab94141392a69ae677c64a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:44:56 2019 +0200

    Do not update billable size in ancestors

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3184

commit 6443eca7ae349d8fd2c163c6a841c914ce5d5e31
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:38:57 2019 +0200

    Remove billable size from mining

    Summary: As per title. It is not used at the moment, and goign with `GetVirtualTransactionSize` is definitiely a better option.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3183

commit bf34ab1705dd0a1044bcb5f16f9bb6ccdda6b7bf
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Sun Jun 4 22:45:22 2017 +0200

    Limit variable scope

    Summary:
    Limit variable scope

    Backport of Core PR10521
    https://github.com/bitcoin/bitcoin/pull/10521

    Test Plan:
      make check
      test_runner.py

      ../configure --enable-debug
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3146

commit df7f231b04e1d8e179bb80ecb167c2514ccef50c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Apr 3 13:24:09 2017 +0200

    Merge #9533: Allow non-power-of-2 signature cache sizes

    Summary:
    7482781 Allow non-power-of-2 signature cache sizes (Pieter Wuille)

    Tree-SHA512: 5731c22b46c5ae81cf6d52000c28e39b243a47d96d91079942a5b5a10db214449217f71aa2195e18f8a3917cb206b04c75dc13e4522eb700a1dbf1819013ba22

    Backport of Core PR9533
    https://github.com/bitcoin/bitcoin/pull/9533/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3175

commit 720de9989ef09305ffc188362495451758c58378
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Apr 26 09:34:08 2017 +0200

    Merge #10278: [test] Add Unit Test for GetListenPort

    Summary:
    1b14449 [test] Add Unit Test for GetListenPort (Jimmy Song)

    Tree-SHA512: aea5f60fb3699680cc5acac9d9c8d8712634db9d629bbfa1815a29e5cf46c22f783886c608664baaa91b3282c52ce8069c358850cf4f90acf731a9e6c1701caa

    Backport Core PR10278
    https://github.com/bitcoin/bitcoin/pull/10278/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3176

commit 27b439a04a0399c846b2da561790cc79b8936576
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:27:20 2019 +0200

    Reintroduce the concept of virtual size from core

    Summary: Bitcoin Core use the concept of virtual size to compute custom fees. We do not need to implement a ton of custom logic for our fee if we reuse that work.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3180

commit 34544049e5d3ffec91c0a3290dabfc48cecffdf4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Feb 8 19:44:52 2018 +0100

    Merge #12333: Make CWallet::ListCoins atomic

    Summary:
    1beea7a [wallet] Make CWallet::ListCoins atomic (João Barbosa)

    Pull request description:

      Fix a potencial race in `CWallet::ListCoins`.

      Replaces `cs_main` and `cs_wallet` locks by assertions in `CWallet::AvailableCoins`.

    Tree-SHA512: 09109f44a08b4b53f7605d950ab506d3f748490ab9aed474aa200e93f7b0b9f96f9bf60abe1c5f658240fd13d9e3267c0dd43fd3c1695d82384198ce1da8109f

    Backport of Core PR12333
    https://github.com/bitcoin/bitcoin/pull/12333/

    Note: 2f960b5 [wallet] Indent only change of CWallet::AvailableCoins (João Barbosa) was skipped because our linter made the changes unnecessary.  I also verified that cherry-picking this commit resulted in no change to the code.

    Test Plan:
      ../configure --enable-debug
      make check
      make check should not throw any locking errors.

    Reviewers: jasonbcox, deadalnix, Fabien, markblundeberg, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3049

commit 4345ad9655413db33fb3d7e5d2fde7952637d98b
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Wed Oct 4 23:29:34 2017 +0100

    Improve ZMQ functional test

    Summary:
    ```
    [...], this PR only improves:
      - test comments;
      - simplicity by removing duplicate tests;
      - also removes duplicate code.
    ```

    Backport of core PR11452
    https://github.com/bitcoin/bitcoin/pull/11452/files

    Test Plan:
      ./test/functional/test_runner.py interface_zmq

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3179

commit 7fdc5179451ac39b54478ab6f088f2c2512b5d2a
Author: Matt Corallo <git@bluematt.me>
Date:   Sun Oct 1 00:23:02 2017 -0400

    Remove redundant pwallet nullptr check

    Summary: This is the last part of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/89f03120a02690cff8399d77c979169355bf9cae

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3177

commit b065479349f8de1f01735030a129dcf6a352055d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Oct 8 15:50:09 2018 +0200

    Add missing locks and locking annotations for CAddrMan

    Summary: This is a backport of Core PR13115

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3178

commit 5533fadf9a6de2371be3bc4b833a000c02752d2f
Author: Shammah Chancellor <shammah.chancellor@gmail.com>
Date:   Thu May 30 20:12:00 2019 -0700

    [mining] Add a test for TestCBlockTemplateEntry

    Summary:
    Add the skeleton of a test to ensure that the constructor is setting the expected
    fields, and can be filled in later for more complicated logic which will be added.

    Test Plan:
      make check

    Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3162

commit ddd92fcda6d3dabf8bfad98079d0c3f73a0139f7
Author: Matt Corallo <git@bluematt.me>
Date:   Tue Jun 20 21:21:36 2017 -0400

    Fix wallet RPC race by waiting for callbacks in sendrawtransaction

    Summary:
    This is partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/cb06edf938302166030db19017c27889ea5b10b6

    This patch was merged with the following bug fix:

    Fix sendrawtransaction hang when sending a tx already in mempool

    This is a backport of Core PR11738 : https://github.com/bitcoin/bitcoin/pull/11738

    Test Plan:
      make check
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3165

commit 07b3272f185414bc71a7f6763a0c9e90e09e1eaf
Author: Matt Corallo <git@bluematt.me>
Date:   Thu Jun 8 11:08:53 2017 -0400

    Also call other wallet notify callbacks in scheduler thread

    Summary:
    This runs Block{Connected,Disconnected}, SetBestChain, Inventory,
    and TransactionAddedToMempool on the background scheduler thread.

    Of those, only BlockConnected is used outside of Wallet/ZMQ, and
    is used only for orphan transaction removal in net_processing,
    something which does not need to be synchronous with anything
    else.

    This partially reverts #9583, re-enabling some of the gains from
     #7946. This does not, however, re-enable the gains achieved by
    repeatedly releasing cs_main between each transaction processed.

    This is a partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/e545dedf72bff2bd41c93c93eb576929fce37112

    Depends on D3154

    Test Plan:
      make check
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3156

commit 1beb4a56d3fb676b4ece1b2b86cc061c6940f4ec
Author: Jesse Cohen <jc@jc.lol>
Date:   Tue Apr 17 17:05:08 2018 -0400

    Add tests to SingleThreadedSchedulerClient() and document the memory model

    Summary:
    This is a backport of Core PR13247

    Add Unit Test for SingleThreadedSchedulerClient

    Ensures ordering of callbacks within a SingleThreadedSchedulerClient
    with respect to each other

    Update documentation for SingleThreadedSchedulerClient() to specify the memory model

    Update ValidationInterface() documentation to explicitly specify threading and memory model

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3169

commit 4f04d64e046a1ef6e4df6cfe078f94525ea4f0bf
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 13:34:50 2019 +0200

    Various improvements to the scheduler

    Summary:
     - Use proper C++ function `(void)` is a C construct and we are not using C
     - Use std::bind instead of boost::bind
     - Relayout a few comments

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3167

commit 9b01970f10098204a6b17f5f068e9968c992ad9d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Apr 30 11:17:06 2018 +0200

    scheduler: Add Clang thread safety annotations for variables guarded by m_cs_callbacks_pending

    Summary: This is a backport of Core PR13125

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3168

commit 3ec38909f7cfe0a98ccd2752213018f84f346b82
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 15:14:06 2019 +0200

    unsigned char => uint8_t

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3170
jonspock added a commit to devaultcrypto/devault that referenced this pull request Jul 9, 2019
commit 7560248b5470457420b6d082dd942b84683132f0
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 09:00:50 2019 -0700

    Add include <codecvt> for windows

commit 2c05ed281a2120dbee461d214a81b418dbae2e22
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 08:29:43 2019 -0700

    update abc logs

commit 7d11ee25dc3be0b8040b6d48cf8915d87cc3a838
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:37:24 2018 -0500

    Calculate and store the number of bytes required to spend an input

    Summary: This is extracted from Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/12ec29d3bb0d46c61712210fe9bb96a0d543204a

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3243

commit 3fc1f3c92e8e50b51d91cd28da58db84294c3a9d
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Fri Mar 9 17:21:27 2018 -0500

    Move output eligibility to a separate function

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/ce7435cf1ef36109595be9a3a3955afdff1d63e4

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3245

commit fe2aaa1179f8c597d772a7a1a251f248651e28fb
Author: Andrew Chow <achow101-github@achow101.com>
Date:   Mon Mar 5 16:39:48 2018 -0500

    Add a GetMinimumFeeRate function which is wrapped by GetMinimumFee

    Summary: This is a partial backport of Core PR10637 : https://github.com/bitcoin/bitcoin/pull/10637/commits/fab04887c22cf71a4b15ac0b0a127e150229d686

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3251

commit 4b69922cf921dfcc40982e2a958927129a9245b4
Author: Alex Morcos <morcos@chaincode.com>
Date:   Tue Dec 13 16:38:43 2016 -0500

    Don't create change at the dust limit, even if it means paying more than expected

    Summary: This is a backport of Core PR9343

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3296

commit af8bc4c366ad00d92e2d69e44f5632abb2cb3cc0
Author: Alex Morcos <morcos@chaincode.com>
Date:   Thu Jul 27 17:01:39 2017 -0400

    Eliminate fee overpaying edge case when subtracting fee from recipients

    Summary: This is a backport of Core PR10942

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3297

commit fbeaa82c80054320fba93727912a9dd4d1eb180d
Author: fanquake <fanquake@gmail.com>
Date:   Mon Nov 6 22:25:22 2017 +0800

    Fix make distcheck

    Summary:
    This adds the `compat/setenv.h` file to the autotools build headers, and
    a fix backported from core PR11621.

    Backport of core PR11621
    https://github.com/bitcoin/bitcoin/pull/11621/files

    Test Plan:
      make distcheck

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, deadalnix, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3256

commit b1389eaf680ee277f56bd711c75e461f551cec53
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 16 12:12:58 2017 +0200

    Merge #10404: doc: Add logging to FinalizeNode()

    Summary:
    1530bfc Add logging to FinalizeNode() (Suhas Daftuar)

    Tree-SHA512: 34bd950eb7830f378d069229c24122e97db68435b313f0de2c8772c2feefdc6db5f4d1f43eeade237ffe91cdef0f1cfe3232e1a37c561a65767f4527b2e2e370

    Backport of Core PR10404

    https://github.com/bitcoin/bitcoin/pull/10404/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3284

commit b09831e69100dbc2ee19db7cca5586facf99b738
Author: John Newbery <john@johnnewbery.com>
Date:   Wed Feb 7 09:57:27 2018 -0500

    [tests] Better stderr testing

    Summary:
    ```
    This PR tightens our checking of stderr and will cause tests to fail if
    there is any unexpected message in stderr:

      - commit Write stdout/stderr to datadir instead of temp file writes
    stderr to a file in the datadir instead of a temporary file. This helps
    with debugging in the case of failure.
      - commit Use LIBC_FATAL_STDERR=1 in tests ensures that libc failures
    are logged to stderr instead of the terminal.
    ```

    Backport of core PR12755
    https://github.com/bitcoin/bitcoin/pull/12755/files

    Depends on D3273
    Fixes T540

    Test Plan:
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Maniphest Tasks: T540

    Differential Revision: https://reviews.bitcoinabc.org/D3274

commit 464b271d8708b8bfc6591d723fa26d845b0dfbb2
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Thu Apr 19 08:38:59 2018 -0400

    qa: Normalize executable location

    Summary:
    ```
    This removes the need to override the executable locations by just
    reading them from the config file. Beside making the code easier to
    read, running individual test on Windows is now possible by default
    (without providing further command line arguments).

    Note: Of course, it is still possible to manually specify the location
    through the BITCOIND environment variable, e.g. bitcoin-qt
    ```

    Backport of core PR13051
    https://github.com/bitcoin/bitcoin/pull/13051/files

    Note to reviewers: the backport has some minor differences with the
    original PR due to changes from D2535 and D2696. Also core removed the
    comparison framework, but it is still widely used in our codebase
    especially in abc-* tests, so this diff adds changes to support the
    comparison framework as well.

    Test Plan:
    This should work from an out of tree build:
      ./test/functional/test_runner.py
      ../test/functional/rpc_uptime.py --configfile=test/config.ini
    Due to other issues from our `test_runner.py` file this diff is not
    enough to let you run functional tests under windows.

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3273

commit a06b3085a3232850aafd997dd68880f8f680b67b
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Fri Feb 23 08:10:42 2018 +0100

    Avoid unintentional unsigned integer wraparounds in tests

    Summary:
    Backport of core PR12516
    https://github.com/bitcoin/bitcoin/pull/12516/files

    Depends on D3275

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3276

commit 343fffe4e783179cf746e6920fa8d19b901584be
Author: Chun Kuan Lee <ken2812221@gmail.com>
Date:   Mon Aug 6 01:03:33 2018 +0000

    utils: run commands using utf-8 string on Windows

    Summary:
    ```
    Use unicode string to call commans
    ```

    Backport of core PR13886
    https://github.com/bitcoin/bitcoin/pull/13886/files

    Will fix gitian windows build issue introduced in D3241.

    Test Plan:
      make check
    Build for windows:
    ```
    mkdir buildcmake && cd buildcmake
    cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake \
    -DBUILD_BITCOIN_SEEDER=OFF
    ninja
    ```

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3272

commit 2ef5741ec4ac42a2e77d199d36066cabfa5c7381
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Jun 11 14:22:00 2017 +0200

    Merge #10560: Remove unused constants

    Summary:
    dce8239 Comment out unused constant REJECT_DUST (practicalswift)
    3289ef4 Remove unused constant MEMPOOL_GD_VERSION (practicalswift)

    Tree-SHA512: 8dd772c963037cd0a1db0d5bf5f7a5cce3f5cd8fb6fa983949f9f0c1c8312ffd251a62c1e5d32f3584d2bcc562d8c8a9bf7900609dee9a4f12898caa2be9c38f

    I actually went a head and deleted REJECT_DUST since it wasn't used anywhere and it made no sense to just leave it in even if it was uncommented.

    Backport of Core PR10560
    https://github.com/bitcoin/bitcoin/pull/10560/files

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3260

commit 773a1621326340f5602715f152ae78344798ba4b
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Jun 8 09:43:03 2017 +0200

    Merge #10524: [tests] Remove printf(...)

    Summary:
    0abc588 [tests] Remove printf(...) (practicalswift)

    Tree-SHA512: a56fa1edce050f5a44a53842223fc99e4e8ade413047e04f2064faeb5c4a418864a94471853d5c26a20608d1dcc18b9226d7fe15172f79a66cc5cf6e1443f7e9

    Backport of Core PR10524
    https://github.com/bitcoin/bitcoin/pull/10524

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3259

commit c3a74603f8b6aabe3be957b23831b89e3ed7977e
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Wed Mar 7 21:21:57 2018 -0500

    [qa] util: Remove unused sync_chain

    Summary:
    ```
    The util function sync_blocks already checks for equal chains, so we can
    remove the unused sync_chain.
    ```

    Backport of core PR12643
    https://github.com/bitcoin/bitcoin/pull/12643/files

    Test Plan:
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, deadalnix, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3257

commit 19dda0e31a8c29c824a3504f6148a965cf0c98e3
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Mon Jun 12 15:09:07 2017 -0700

    Merge #10568: Remove unnecessary forward class declarations in header files

    Summary:
    4087d9ea7 Remove unnecessary forward class declarations in header files (practicalswift)

    Tree-SHA512: 80a9b2cd339ba9c606c0dd93739ac80941b6050388fee2edd7976ae8b5e332fd0b4f1df1e89c1d6d28a77c23a36b1e874e72977985fb8f710c65c45c3a926f97

    Backport of Core PR10568
    https://github.com/bitcoin/bitcoin/pull/10568/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3261

commit 5728cd342f02706fdb15e906315ec379b4d2127c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue Jun 6 15:51:13 2017 +0200

    Merge #9909: tests: Add FindEarliestAtLeast test for edge cases

    Summary:
    cf66f04 Add FindEarliestAtLeast test for edge cases (Russell Yanofsky)

    Tree-SHA512: bed2e9b2eefe0014414f1be8f0ba236b1dcc6744a670ffa546100c62817dd06a117cc62cdff80c4988d2b374cae9a57f2bb135fc582ffb51ca2d34ab07bb3fe0

    Backport of Core PR9909
    https://github.com/bitcoin/bitcoin/pull/9909/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3244

commit 478accdbff3f8ec4852d06dacedc3c40e1abcc9c
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Jun 6 23:51:30 2017 +0200

    Merge #10522: [wallet] Remove unused variables

    Summary:
    a8c09af Remove unused variables (practicalswift)

    Tree-SHA512: 34807dc3a0471c83b086f430b66465602c8f6a3a158b54ace2ec8afb746f1f5907f7dfcde5a4bad4041df9721ec46b61681b2dbf89725c9c8c4c5ad0ca99f78f

    Backport of Core PR10522
    https://github.com/bitcoin/bitcoin/pull/10522/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3247

commit 85399a25bd85c5494de3fe504fd1d1b6a651a37a
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:54:05 2019 -0700

    Update abc logs

commit fc2b6469343d1889d2d28570c43b08182494a823
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:51:42 2019 -0700

    Merge #13877: utils: Make fs::path::string() always return utf-8 string on Windows

        Summary:
        2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee)

        Pull request description:

          Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`.

        Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118

        Backport of Core PR13877
        https://github.com/bitcoin/bitcoin/pull/13877/files

commit 1ee762d9a462f81822f345ec1a9bb9c5ec6c1574
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Sun Apr 8 17:05:44 2018 +0200

    Merge #12904: [qa] Ensure bitcoind processes are cleaned up when tests end

    Summary:
    e36a0c0 [qa] Ensure bitcoind processes are cleaned up when tests end (Suhas Daftuar)

    Pull request description:

      When tests fail (such as due to a bug in the test, race condition, etc), it's possible that we could follow code paths that bypass our normal node shutdown that occurs in `TestNode.stop_node`.  Add a destructor to `TestNode` that cleans this up.

    Tree-SHA512: 72e04bc21462ebd0cb346fd1fe0540da454acfbad41923a0b06ea2317e9045b68e58f9adb02d8200891aca89a9d03a022eb72282aeb31a3b3afe7c6843a4b450

    Backport of Core PR12904
    https://github.com/bitcoin/bitcoin/pull/12904/

    Depends on D3234

    Completes T446

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3235

commit fb0a7a00f08e8346f9df58619c3f367500ecb90c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Jun 5 16:05:15 2017 +0200

    Merge #10514: Bugfix: missing == 0 after randrange

    Summary:
    9aa215b Bugfixes: missing == 0 after randrange (Pieter Wuille)

    Tree-SHA512: 160657ac09553f23ad7a3966c753a30ba938ce6f7ccfd34a4ef0d05d73d712362f7eef97e44a96e37a181b8347caa9d8e1584cc4485f69674ab2de3d8a247373

    Backport of Core PR10514
    https://github.com/bitcoin/bitcoin/pull/10514/

    Test Plan:
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3240

commit a3407bfe7cbba24081d92eed369c6a335d974841
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Fri Jun 2 16:03:21 2017 -0700

    Merge #10500: Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings

    Summary:
    b9b814a38 Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (Russell Yanofsky)

    Tree-SHA512: 96a0612ca460ba1bfb3921f3aa348400fd3afa12c40f2ca1f3f04068b1574fe824d577e0123013d8898a4990084316dc1dfb541331849f0996ceff7f4eb25e6b

    Backport of Core PR10500
    https://github.com/bitcoin/bitcoin/pull/10500/

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, Fabien, deadalnix, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3239

commit 4d99dd0c95c66cc5fc2f4e140d2d84b1bab1c589
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Thu Jun 6 14:30:07 2019 +0200

    Rework the wallet fees interface to make it closer to core's

    Summary: All of this was fubared for no good reason.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3233

commit 277cf8c6bd3ac94e7bb600d6bf0949c369eb96e0
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Mar 14 10:13:03 2017 +0100

    Merge #9977: QA: getblocktemplate_longpoll.py should always use >0 fee tx

    Summary:
    655df06 QA: getblocktemplate_longpoll.py should always use >0 fee tx (Suhas Daftuar)

    Tree-SHA512: 016647ba1408f8aaa3fc954835542354d54bf2391c4252c1c505101edbbe1cf8dd6a07060930109d0341f86360b9391dfef439999a93a5bae68fc901dace0b71

    Backport of Core PR9977
    https://github.com/bitcoin/bitcoin/pull/9977/files

    Test Plan:
    ```
    test_runner.py mining_getblocktemplate_longpoll
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3218

commit f35ce89a756b082ecd1872d11ba354cf7596f061
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:38:56 2019 -0700

    Update abc logs

commit b1ea011d9219b9541726dc11c8f18f99eb670245
Author: Mark Lundeberg <36528214+markblundeberg@users.noreply.github.com>
Date:   Thu Jun 6 13:18:28 2019 -0700

    remove four duplicate tests from script_tests.json

    Summary:
    These are identical to the preceding four test cases.
    For the curious: they were introduced like this in 2014 by Peter Todd:
    https://github.com/bitcoin/bitcoin/pull/3860

    Test Plan: `make check`

    Reviewers: jasonbcox, Fabien, #bitcoin_abc, deadalnix

    Reviewed By: jasonbcox, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3237

commit 39f5bc93581cef8fe48b8ee667c5e2d71b0d835e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Aug 23 12:14:20 2017 +0200

    Merge #10679: Document the non-DER-conformance of one test in tx_valid.json.

    Summary:
    ecb11f5 Document the non-strict-DER-conformance of one test in tx_valid.json. (Andreas Schildbach)

    Tree-SHA512: 4d5ba4645fbfe8fe3f1baaa5f1a1152cdd2cbf3d901f38d8e7fbd56b16caa6a8a17f2a48c74fb725ce454dd1c870b81b2238e89d0639fcd4eee858554726e996

    Backport of Core PR10679
    https://github.com/bitcoin/bitcoin/pull/10679/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3222

commit de24384d7317c683886dabbed3ca4a17f1a22ca4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 15:07:38 2017 +0200

    Merge #11435: build: Make "make clean" remove all files created when running "make check"

    Summary:
    f35d033 build: Make "make clean" remove all files created when running "make check" (practicalswift)

    Pull request description:

      Make `make clean` remove all files created when running `make check`. More specifically: remove also `obj/build.h` and `bench/data/block413567.raw.h` as part of `make clean`.

      Before this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      Only in bitcoin-after-make-and-make-clean/src/bench/data: block413567.raw.h
      Only in bitcoin-after-make-and-make-clean/src/obj: build.h
      $
      ```

      After this patch:

      ```bash
      $ git clone https://github.com/bitcoin/bitcoin.git
      $ cd bitcoin/
      $ ./autogen.sh
      $ ./configure
      $ cp -r ../bitcoin ../bitcoin-before-make
      $ make check
      $ make clean
      $ cp -r ../bitcoin ../bitcoin-after-make-and-make-clean
      $ cd ..
      $ diff -rq bitcoin-before-make/ bitcoin-after-make-and-make-clean/ | grep -E "^Only in bitcoin-after-make-and-make-clean/" | grep -v dirstamp
      $
      ```

    Tree-SHA512: 953e8423485ffd415f0ade6abe0b4c407454f67c332140ef019d89db425bb4a831327b3f634b8d69b17325dcfc6e3ac72dc2ba1ce5462158eecc3c05645e93ba

    Backport of Core PR11435
    https://github.com/bitcoin/bitcoin/pull/11435/files

    Test Plan:
    ```
    # on master
    make
    make clean
    ls src/bench/data
    # block413567.raw.h
    ls src/obj
    # build.h

    # with this patch applied
    make
    make clean
    ls src/bench/data
    # <nothing>
    ls src/obj
    # <nothing>
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3223

commit 437e5efe1b45d313cd8f921006bbf2e3e399ed5f
Author: Jon Spock <jonspock@protonmail.com>
Date:   Thu Jul 4 07:31:18 2019 -0700

    Use devaultd in tor.md

commit 571ee65448ac5c9c12285afaded53a92b833a17a
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Tue Nov 7 13:18:27 2017 -0500

    Merge #11620: [build] .gitignore: add background.tiff

    Summary:
    4a110a009 [build] .gitignore: add background.tiff (Sjors Provoost)

    Pull request description:

      On OSX, running `make deploy` results in three files that were not covered by `.gitignore`:

      	background.tiff
      	background.tiff.png
      	background.tiff@2x.png

    Tree-SHA512: cee7a6ebbc50f28bf588121902f6026ec08cf6516d9e56734dfc1b2d3f238e2db5bf87411f6a74b8bd06569f792789ac9f9046e6183f63fd675b953f24b060fc

    Backport of Core PR11620
    https://github.com/bitcoin/bitcoin/pull/11620/files

    Test Plan:
    I don't have a Mac to test `make deploy` on, but next best thing:
    ```
    touch background.tiff
    touch background.tiff.png
    git status
    ```

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3226

commit 4791a0c4ac8d275b152bef0000c44baa89295c0e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Sep 22 13:31:22 2017 +0200

    Merge #11380: Remove outdated share/certs/ directory

    Summary:
    6951a1c Remove extremely outdated share/certs dir (MeshCollider)

    Pull request description:

      The directory hasn't been touched for 5 years (other than a couple of typo fixes/renaming). The certificates are expired, the build process notes are out of date, especially with the gitian building and everything, Gavin no longer has anything to do with it, etc.

      The signing process is all documented (and scripted) elsewhere (e.g. doc/release-process.md and gitian-building.md, contrib/macdeploy and windeploy), this can just be removed

      @theuni can confirm if this is okay, we discussed it on IRC for a bit :)

    Tree-SHA512: e229785f7514a0f9988105f2ce68531a0a876032983ee5c77f41f1a976b9e732eb63cf2eb1f82841df8f7194940635c5ea5d4f8b30f95e69c763f74d4a3a28b1

    Backport of Core PR11380
    https://github.com/bitcoin/bitcoin/pull/11380/files

    Test Plan: N/A

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3227

commit b127610f8c53622f290c41f8a7eb6a33d70c58f9
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sun Apr 1 15:27:44 2018 -0400

    Merge #12843: [tests] Test starting bitcoind with -h and -version

    Summary:
    63048ec73d [tests] Test starting bitcoind with -h and -version (John Newbery)

    Pull request description:

      Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

      Prompted by https://github.com/bitcoin/bitcoin/pull/10762#commitcomment-28345993, which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

      On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

      ```
      BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
      2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
      2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
      Traceback (most recent call last):
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
          self.run_test()
        File "./feature_help.py", line 25, in run_test
          assert_equal(ret_code, 0)
        File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
          raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
      AssertionError: not(-11 == 0)
      2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
      Traceback (most recent call last):
        File "./feature_help.py", line 42, in <module>
          HelpTest().main()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
          self.stop_nodes()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
          node.stop_node()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
          self.stop()
        File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
          assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
      AssertionError: Error: no RPC connection
      ```

      Passes for bitcoind and bitcoin-qt when run on #12836.

      Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

    Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4

    Backport of Core PR12843
    https://github.com/bitcoin/bitcoin/pull/12843/

    Completes T569

    Test Plan:
      test_runner.py should also run the feature_help.py test and pass
      test_runner.py feature_help should run and pass

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3234

commit 6c1b9b08375cca5d5406cb499aa5b8f4cd53a6c5
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 17:16:23 2019 +0200

    Remove unused function for fees.h exposed interface

    Summary: As pe title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3214

commit 76429fc77f757129124df6b87d7eceea99dd1ef8
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 16:59:38 2017 +0100

    Merge #11884: Remove unused include in hash.cpp

    Summary:
    3f09e03 Remove unused include in hash.cpp (Karl-Johan Alm)

    Pull request description:

    Tree-SHA512: 543a72656460fba1c5498a0b85c49601d9b0399a4ecc49f4acf4715c258918da729df388e3be724c3161438e903ee16ad3c50626a71483aa6d85ffdbb827742d

    Backport Core PR11884
    https://github.com/bitcoin/bitcoin/pull/11884/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3208

commit 4a2eaa0a76a961943eb41794b4e09dba98687a01
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Tue May 1 16:42:55 2018 +0200

    Merge #12384: [Docs] Add version footnote to tor.md

    Summary:
    39d2911 [Docs] Add version footnote to tor.md (Damian Williamson)

    Pull request description:

      [Docs] Add version footnote to tor.md

      Added note to section 2, part -edits to `/etc/tor/torrc`- indicating this is only required for Tor version 0.2.7.0 and older, since section 3 states it is valid for Tor version 0.2.7.1 and newer. Added ref link from section 2 version footnote to section 3. Re-styled headings to work on GitHub -alternate heading style markup creation issue with numbered headings and thus headings and automatic heading links are broken-

      Ref: [Issue# 12376](https://github.com/bitcoin/bitcoin/issues/12376)

      Signed-off-by: Damian Williamson \<willtech@live.com.au\>

    Tree-SHA512: 439f4ccc3e196011af448b220adf26b0e653ac589bf4cfbbc276c1500c9d08f209c9d6101e4d232857779d9f25164cfb222ed30e3d63de116f9121e6ebde31c3

    Backport of Core PR12384
    https://github.com/bitcoin/bitcoin/pull/12384/files

    Test Plan: Read it and verify against the original PR.

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3200

commit 25128972154becfedcd7f0632bc5f3f2f375a99e
Author: Pieter Wuille <pieter.wuille@gmail.com>
Date:   Wed Jul 12 15:14:22 2017 -0700

    Merge #10714: Avoid printing incorrect block indexing time due to uninitialized variable

    Summary:
    959dd8781 Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)

    Tree-SHA512: a76e43c3ffa734ed5c7eadf363f345f268aa0e6ce775aba8f856fe3bbc82f240dc7c734c5ca3ac500a12eb41fae00623413e79f484d5acf809b6e400851d771d

    Backport of Core PR10714
    https://github.com/bitcoin/bitcoin/pull/10714/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3209

commit 969cab0c5cea86cef177ecccfea22db506abbf90
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 18:32:08 2019 +0200

    Replace childs => children in radix.h

    Summary: As per title.

    Test Plan:
      ./src/test/test_bitcoin -t radix_tests

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3215

commit 45a78cc93b133b6f6646d0cd06a15750a76b1b61
Author: Fabien <fabcien@gmail.com>
Date:   Wed Jun 5 15:59:07 2019 +0200

    Replace c compatibility header with native c++ header

    Summary: This is the last case in the codebase.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3212

commit b0ca9469fc5e987fb94e46c055e43b6ddad1f94e
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Oct 4 14:35:15 2017 +0200

    Merge #11406: Add state message print to AcceptBlock failure message.

    Summary:
    6643b80 Add state message print to AcceptBlock failure message. (Matt Corallo)

    Pull request description:

      This should make it easier to debug issues where the CheckBlock at
      the top of ProcessNewBlock fails (which does not print, in contrast
      to AcceptBlock, which always prints).

      This was motivated by #11371 which appears to be exactly such a case, and is not debuggable from the information provided. Not sure how much this would have helped in that case, but it is kinda weird that we can reject a block without ever printing why.

    Tree-SHA512: 7a1c2c76080b810212da885c38e091609e409c62918cc326bb36a1096e09b2ae7e26fd4bdaefd79863d2894e2823e463005700a524940f177a59ef09f589b2f1

    Backport of Core PR11406
    https://github.com/bitcoin/bitcoin/pull/11406/files

    Test Plan:
    ```
    # on master
    test_runner.py --nocleanup

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED

    # with this patch
    make check
    test_runner.py

    grep -rni "acceptblock fail" /tmp/<bitcoin-temp-dir>
    # example error:
    ERROR: ProcessNewBlock: AcceptBlock FAILED (Transaction order is invalid (01fc91cfedbea4a49c943158746de0467801cd24594139c8482ce976f3ed6101 < ce56a7306a2c9b1a6a7ecb8a31f17883023f3d224e1b09c2709ba8dca5dae53c))

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3211

commit 56655a06e8d3664ceab74ac0d366a2c625d802ef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Wed Jun 5 01:31:57 2019 +0200

    Remove useless priority calculation in wallet

    Summary: As far as i can tell, it does nothing.

    Test Plan:
      make check
      test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3210

commit 68b0e022a9ad845b15498a4bce7471278b8dadef
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 17:25:01 2019 +0200

    Use constexpr in the RCU code

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3198

commit aef1e5fc1ae64cfc5eafd10152b782a6c774866f
Author: MarcoFalke <falke.marco@gmail.com>
Date:   Sat Nov 25 21:54:34 2017 -0500

    Merge #11683: tests: Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports.

    Summary:
    f522fb7c9 tests: Remove unused mininode functions deser_int_vector(f) and ser_int_vector(l) (practicalswift)

    Pull request description:

      * Remove unused mininode functions `deser_int_vector(f)` and `ser_int_vector(l)`. Last use removed in 3858aabbd084b2cc4534c40a178bbcc22fb82968. Friendly ping @jnewbery :-)
      * Remove unused imports.

    Tree-SHA512: 840c5623eae9f929561f6e86816883c5904ec1af82fc8d5e56dee1c0b1fe22e8600c10f7358ed8b556b3aec8c65c4910f6eee30e8015a573c4df8bef91124d3e

    Backport of Core PR11683
    https://github.com/bitcoin/bitcoin/pull/11683/commits/f522fb7c9c121641ce552774e3993942106ec336

    This PR actually had two commits, but the second commit (`0f3b752ec Remove unused imports (practicalswift)`) was blank after fixing merge conflicts.

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3205

commit bacd4127ed1c1eff727799c41912ed2a91047f70
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Nov 15 13:55:03 2017 +0100

    Merge #11655: net: Assert state.m_chain_sync.m_work_header in ConsiderEviction

    Summary:
    63c2d83 Explicitly state assumption that state.m_chain_sync.m_work_header != nullptr in ConsiderEviction (practicalswift)

    Pull request description:

      Explicitly state assumption that `state.m_chain_sync.m_work_header != nullptr` in `ConsiderEviction(…)`.

      Static analyzer (and humans!) will see the null-check in ...

      ```
      else if (state.m_chain_sync.m_timeout == 0 || (state.m_chain_sync.m_work_header != nullptr && ...
      ```

      ... and infer that `state.m_chain_sync.m_work_header` might be set to `nullptr` when reaching `else if (state.m_chain_sync.m_timeout > 0 && time_in_seconds > state.m_chain_sync.m_timeout)` and thus flag `state.m_chain_sync.m_work_header->GetBlockHash().ToString()` as a potential null pointer dereference.

      This commit makes the tacit assumption of `state.m_chain_sync.m_work_header != nullptr` explicit.

      Code introduced in 5a6d00c6defc587e22c93e63029fdd538ce8858d ("Permit disconnection of outbound peers on bad/slow chains") which was merged into master four days ago.

      Friendly ping @sdaftuar :-)

    Tree-SHA512: 32e5631025b7ba7556a02c89d040fbe339c482a03f28d0dbc9871c699e1f8ac867619b89c5fd41fdcfcf0dc4d7c859295b26ccd988572145cc244261aec18ce9

    Backport of Core PR11655
    https://github.com/bitcoin/bitcoin/pull/11655

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3199

commit 5d420bf2f6cd829073c2cd86859fe23c5c3b98e1
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 14:40:48 2019 +0200

    Remove implicit parameter from GetSerializeSize

    Summary:
    Both parameters are integer so we can't rely on the type checker to raise errors.

    One such error was present in `GetVirtualTransactionSize`

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3195

commit f708ae642393c62da8c1ca1b0f4eb978cd7a6ef5
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Dec 14 10:35:58 2017 +0100

    Merge #11864: Make CWallet::FundTransaction atomic

    Summary:
    03a5dc9 [wallet] Make CWallet::FundTransaction atomic (João Barbosa)

    Pull request description:

      This PR fixes a race for `setLockedCoins` when `lockUnspents` is true. For instance, it should not be possible to use the same unspent in concurrent `fundrawtransaction` calls.

      Now the `cs_main` and `cs_wallet` locks are held during `CreateTransaction` and `LockCoin`(s). Also added some style nits around the change.

    Tree-SHA512: ccf383c0c5f6db775655a3e9ccd200c3bd831a83afae2b7c389564c74f7227f5bea86a4775727de2c3603b188f383f8a12d3f9d6d94f7887865c31c94ce95ef6

    Part 2 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Commit:
      Make CWallet::FundTransaction atomic
      03a5dc9c3c522c500c77fdecd52d091db048d1b0

    Depends on D3192

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3196

commit 5ef670aabd8ee898f90c11c8bd01589bc50ae7ea
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Thu Dec 14 03:17:58 2017 +0000

    [wallet] Tidy up CWallet::FundTransaction

    Summary:
    Ended up being just a typo correction because of the linter.

    Part 1 of 2 of Core PR11864
    https://github.com/bitcoin/bitcoin/pull/11864/commits/95d4450a41e9b3f7a739eeefec322bf9366ce824

    Commit:
      [wallet] Tidy up CWallet::FundTransaction
      95d4450a41e9b3f7a739eeefec322bf9366ce824

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3192

commit 9a7d86766739ee22c949687937541051ff57ad24
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Fri Dec 1 15:17:25 2017 +0100

    Merge #11337: Fix code constness in CBlockIndex::GetAncestor() overloads

    Summary:
    b4058ed Fix code constness in CBlockIndex::GetAncestor() overloads (Dan Raviv)

    Pull request description:

      Make the non-const overload of `CBlockIndex::GetAncestor()` reuse the const overload implementation instead of the other way around. This way, the constness of the const overload implementation is guaranteed. The other way around, it was possible to implement the non-const overload in a way which mutates the object, and since that implementation would be called even for const objects (due to the reuse), we would get undefined behavior.

    Tree-SHA512: 545a8639bc52502ea06dbd924e8fabec6274fa69b43e3b8966a7987ce4dae6fb2498f623730fde7ed0e47478941c7f8baa2e76a12018134ff7c14c0dfa25ba3a

    Backport of Core PR11337
    https://github.com/bitcoin/bitcoin/pull/11337

    Test Plan:
      make check
      test_runner.py

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3190

commit f3117ea1f0db3a10f5f636a55159f64ee0f96402
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Tue Jun 4 00:04:24 2019 +0200

    Move WalletRescanner to match Bitcoin Core codebase

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3191

commit fddfcd399ca2d86d9eb06834dd8c5733c2a40037
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 12:57:42 2019 +0200

    Remove billable size from CTransaction

    Summary:
    As pe title.

    Depends on D3188

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3189

commit 10d1e92ccc505cd9e592b0224822291d7abaf63e
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 17:23:31 2019 +0200

    Remove billable size from the mempool

    Summary:
    As per title. It is not used.

    Depends on D3184 and D3185

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3188

commit 2e574a1ebeb5879dde87a06dc1ff682cefbdbb9a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 16:56:00 2019 +0200

    Do not update billable size in descendents

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3185

commit 433a5bb179216794f06f3fdba4fb55705f94aa1d
Author: Jon Spock <jonspock@protonmail.com>
Date:   Wed Jul 3 18:50:38 2019 -0700

    update abc log

commit 81531f44a076194d20ab94141392a69ae677c64a
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:44:56 2019 +0200

    Do not update billable size in ancestors

    Summary:
    As per title. It is not used.

    Depends on D3183

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3184

commit 6443eca7ae349d8fd2c163c6a841c914ce5d5e31
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:38:57 2019 +0200

    Remove billable size from mining

    Summary: As per title. It is not used at the moment, and goign with `GetVirtualTransactionSize` is definitiely a better option.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3183

commit bf34ab1705dd0a1044bcb5f16f9bb6ccdda6b7bf
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Sun Jun 4 22:45:22 2017 +0200

    Limit variable scope

    Summary:
    Limit variable scope

    Backport of Core PR10521
    https://github.com/bitcoin/bitcoin/pull/10521

    Test Plan:
      make check
      test_runner.py

      ../configure --enable-debug
      make check

    Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3146

commit df7f231b04e1d8e179bb80ecb167c2514ccef50c
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Mon Apr 3 13:24:09 2017 +0200

    Merge #9533: Allow non-power-of-2 signature cache sizes

    Summary:
    7482781 Allow non-power-of-2 signature cache sizes (Pieter Wuille)

    Tree-SHA512: 5731c22b46c5ae81cf6d52000c28e39b243a47d96d91079942a5b5a10db214449217f71aa2195e18f8a3917cb206b04c75dc13e4522eb700a1dbf1819013ba22

    Backport of Core PR9533
    https://github.com/bitcoin/bitcoin/pull/9533/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3175

commit 720de9989ef09305ffc188362495451758c58378
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Wed Apr 26 09:34:08 2017 +0200

    Merge #10278: [test] Add Unit Test for GetListenPort

    Summary:
    1b14449 [test] Add Unit Test for GetListenPort (Jimmy Song)

    Tree-SHA512: aea5f60fb3699680cc5acac9d9c8d8712634db9d629bbfa1815a29e5cf46c22f783886c608664baaa91b3282c52ce8069c358850cf4f90acf731a9e6c1701caa

    Backport Core PR10278
    https://github.com/bitcoin/bitcoin/pull/10278/files

    Test Plan: `make check`

    Reviewers: #bitcoin_abc, deadalnix, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3176

commit 27b439a04a0399c846b2da561790cc79b8936576
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Mon Jun 3 15:27:20 2019 +0200

    Reintroduce the concept of virtual size from core

    Summary: Bitcoin Core use the concept of virtual size to compute custom fees. We do not need to implement a ton of custom logic for our fee if we reuse that work.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, markblundeberg

    Reviewed By: #bitcoin_abc, markblundeberg

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3180

commit 34544049e5d3ffec91c0a3290dabfc48cecffdf4
Author: Wladimir J. van der Laan <laanwj@gmail.com>
Date:   Thu Feb 8 19:44:52 2018 +0100

    Merge #12333: Make CWallet::ListCoins atomic

    Summary:
    1beea7a [wallet] Make CWallet::ListCoins atomic (João Barbosa)

    Pull request description:

      Fix a potencial race in `CWallet::ListCoins`.

      Replaces `cs_main` and `cs_wallet` locks by assertions in `CWallet::AvailableCoins`.

    Tree-SHA512: 09109f44a08b4b53f7605d950ab506d3f748490ab9aed474aa200e93f7b0b9f96f9bf60abe1c5f658240fd13d9e3267c0dd43fd3c1695d82384198ce1da8109f

    Backport of Core PR12333
    https://github.com/bitcoin/bitcoin/pull/12333/

    Note: 2f960b5 [wallet] Indent only change of CWallet::AvailableCoins (João Barbosa) was skipped because our linter made the changes unnecessary.  I also verified that cherry-picking this commit resulted in no change to the code.

    Test Plan:
      ../configure --enable-debug
      make check
      make check should not throw any locking errors.

    Reviewers: jasonbcox, deadalnix, Fabien, markblundeberg, O1 Bitcoin ABC, #bitcoin_abc

    Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc

    Differential Revision: https://reviews.bitcoinabc.org/D3049

commit 4345ad9655413db33fb3d7e5d2fde7952637d98b
Author: João Barbosa <joao.paulo.barbosa@gmail.com>
Date:   Wed Oct 4 23:29:34 2017 +0100

    Improve ZMQ functional test

    Summary:
    ```
    [...], this PR only improves:
      - test comments;
      - simplicity by removing duplicate tests;
      - also removes duplicate code.
    ```

    Backport of core PR11452
    https://github.com/bitcoin/bitcoin/pull/11452/files

    Test Plan:
      ./test/functional/test_runner.py interface_zmq

    Reviewers: #bitcoin_abc, deadalnix

    Reviewed By: #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3179

commit 7fdc5179451ac39b54478ab6f088f2c2512b5d2a
Author: Matt Corallo <git@bluematt.me>
Date:   Sun Oct 1 00:23:02 2017 -0400

    Remove redundant pwallet nullptr check

    Summary: This is the last part of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/89f03120a02690cff8399d77c979169355bf9cae

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3177

commit b065479349f8de1f01735030a129dcf6a352055d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Oct 8 15:50:09 2018 +0200

    Add missing locks and locking annotations for CAddrMan

    Summary: This is a backport of Core PR13115

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Differential Revision: https://reviews.bitcoinabc.org/D3178

commit 5533fadf9a6de2371be3bc4b833a000c02752d2f
Author: Shammah Chancellor <shammah.chancellor@gmail.com>
Date:   Thu May 30 20:12:00 2019 -0700

    [mining] Add a test for TestCBlockTemplateEntry

    Summary:
    Add the skeleton of a test to ensure that the constructor is setting the expected
    fields, and can be filled in later for more complicated logic which will be added.

    Test Plan:
      make check

    Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

    Differential Revision: https://reviews.bitcoinabc.org/D3162

commit ddd92fcda6d3dabf8bfad98079d0c3f73a0139f7
Author: Matt Corallo <git@bluematt.me>
Date:   Tue Jun 20 21:21:36 2017 -0400

    Fix wallet RPC race by waiting for callbacks in sendrawtransaction

    Summary:
    This is partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/cb06edf938302166030db19017c27889ea5b10b6

    This patch was merged with the following bug fix:

    Fix sendrawtransaction hang when sending a tx already in mempool

    This is a backport of Core PR11738 : https://github.com/bitcoin/bitcoin/pull/11738

    Test Plan:
      make check
      ./test/functional/test_runner.py --extended

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Subscribers: jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3165

commit 07b3272f185414bc71a7f6763a0c9e90e09e1eaf
Author: Matt Corallo <git@bluematt.me>
Date:   Thu Jun 8 11:08:53 2017 -0400

    Also call other wallet notify callbacks in scheduler thread

    Summary:
    This runs Block{Connected,Disconnected}, SetBestChain, Inventory,
    and TransactionAddedToMempool on the background scheduler thread.

    Of those, only BlockConnected is used outside of Wallet/ZMQ, and
    is used only for orphan transaction removal in net_processing,
    something which does not need to be synchronous with anything
    else.

    This partially reverts #9583, re-enabling some of the gains from
     #7946. This does not, however, re-enable the gains achieved by
    repeatedly releasing cs_main between each transaction processed.

    This is a partial backport of Core PR10286 : https://github.com/bitcoin/bitcoin/pull/10286/commits/e545dedf72bff2bd41c93c93eb576929fce37112

    Depends on D3154

    Test Plan:
      make check
      ./test/functional/test_runner.py

    Reviewers: #bitcoin_abc, Fabien

    Reviewed By: #bitcoin_abc, Fabien

    Subscribers: markblundeberg

    Differential Revision: https://reviews.bitcoinabc.org/D3156

commit 1beb4a56d3fb676b4ece1b2b86cc061c6940f4ec
Author: Jesse Cohen <jc@jc.lol>
Date:   Tue Apr 17 17:05:08 2018 -0400

    Add tests to SingleThreadedSchedulerClient() and document the memory model

    Summary:
    This is a backport of Core PR13247

    Add Unit Test for SingleThreadedSchedulerClient

    Ensures ordering of callbacks within a SingleThreadedSchedulerClient
    with respect to each other

    Update documentation for SingleThreadedSchedulerClient() to specify the memory model

    Update ValidationInterface() documentation to explicitly specify threading and memory model

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3169

commit 4f04d64e046a1ef6e4df6cfe078f94525ea4f0bf
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 13:34:50 2019 +0200

    Various improvements to the scheduler

    Summary:
     - Use proper C++ function `(void)` is a C construct and we are not using C
     - Use std::bind instead of boost::bind
     - Relayout a few comments

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3167

commit 9b01970f10098204a6b17f5f068e9968c992ad9d
Author: practicalswift <practicalswift@users.noreply.github.com>
Date:   Mon Apr 30 11:17:06 2018 +0200

    scheduler: Add Clang thread safety annotations for variables guarded by m_cs_callbacks_pending

    Summary: This is a backport of Core PR13125

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3168

commit 3ec38909f7cfe0a98ccd2752213018f84f346b82
Author: Amaury Séchet <deadalnix@gmail.com>
Date:   Fri May 31 15:14:06 2019 +0200

    unsigned char => uint8_t

    Summary: As per title.

    Test Plan:
      make check

    Reviewers: #bitcoin_abc, jasonbcox

    Reviewed By: #bitcoin_abc, jasonbcox

    Differential Revision: https://reviews.bitcoinabc.org/D3170
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Dec 22, 2019
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 2, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 4, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 4, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 10, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 10, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 10, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jan 12, 2020
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Mar 14, 2020
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on bitcoin#12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Mar 19, 2020
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on bitcoin#12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Mar 21, 2020
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on bitcoin#12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Mar 24, 2020
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on bitcoin#12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 14, 2020
c7ec524 [wallet] Add dummy wallet init class (John Newbery)
49baa4a [wallet] Use global g_wallet_init_interface to init/destroy the wallet. (John Newbery)
caaf972 [wallet] Create wallet init interface. (John Newbery)
5fb5421 [wallet] Move wallet init functions into WalletInit class. (John Newbery)

Pull request description:

  This continues the work of bitcoin#7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

  To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

Tree-SHA512: 32ea57615229c33fd1a7f2f29ebc11bf30337685f7211baffa899823ef74b65dcbf068289c557a161c5afffb51fdc38a2ee8180720371f64d433b12b0615cf3f
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/dashd.cpp
#	src/init.cpp
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 16, 2020
c7ec524 [wallet] Add dummy wallet init class (John Newbery)
49baa4a [wallet] Use global g_wallet_init_interface to init/destroy the wallet. (John Newbery)
caaf972 [wallet] Create wallet init interface. (John Newbery)
5fb5421 [wallet] Move wallet init functions into WalletInit class. (John Newbery)

Pull request description:

  This continues the work of bitcoin#7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

  To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

Tree-SHA512: 32ea57615229c33fd1a7f2f29ebc11bf30337685f7211baffa899823ef74b65dcbf068289c557a161c5afffb51fdc38a2ee8180720371f64d433b12b0615cf3f
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/dashd.cpp
#	src/init.cpp
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Apr 16, 2020
c7ec524 [wallet] Add dummy wallet init class (John Newbery)
49baa4a [wallet] Use global g_wallet_init_interface to init/destroy the wallet. (John Newbery)
caaf972 [wallet] Create wallet init interface. (John Newbery)
5fb5421 [wallet] Move wallet init functions into WalletInit class. (John Newbery)

Pull request description:

  This continues the work of bitcoin#7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

  To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

Tree-SHA512: 32ea57615229c33fd1a7f2f29ebc11bf30337685f7211baffa899823ef74b65dcbf068289c557a161c5afffb51fdc38a2ee8180720371f64d433b12b0615cf3f
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/dashd.cpp
#	src/init.cpp
UdjinM6 added a commit to dashpay/dash that referenced this pull request Apr 18, 2020
#3412)

* Merge bitcoin#10762: [wallet] Remove Wallet dependencies from init.cpp

c7ec524 [wallet] Add dummy wallet init class (John Newbery)
49baa4a [wallet] Use global g_wallet_init_interface to init/destroy the wallet. (John Newbery)
caaf972 [wallet] Create wallet init interface. (John Newbery)
5fb5421 [wallet] Move wallet init functions into WalletInit class. (John Newbery)

Pull request description:

  This continues the work of bitcoin#7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

  To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

Tree-SHA512: 32ea57615229c33fd1a7f2f29ebc11bf30337685f7211baffa899823ef74b65dcbf068289c557a161c5afffb51fdc38a2ee8180720371f64d433b12b0615cf3f
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/dashd.cpp
#	src/init.cpp

* a couple of fixes

Signed-off-by: Pasta <pasta@dashboost.org>

* move privatesend launch options help into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* remove ENABLE_WALLET for AutoLockMasternodeCollaterals

Signed-off-by: Pasta <pasta@dashboost.org>

* move a wallet param interaction into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* move PrivateSend init to wallet/init.h

Signed-off-by: Pasta <pasta@dashboost.org>

* move privatesend scheduler into wallet.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* remove unneeded import

Signed-off-by: Pasta <pasta@dashboost.org>

* move KeePass init and InitAutoBackup into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* Fix 10762

Changes:
- Should backup wallets before trying to verify them. This is because `-salvagewallet` is very dangerous and can actually corrupt wallets making them irreparably broken.
- No reason to make `schedulePrivateSendClientMaintenance` a part of the wallet (interface) because `privateSendClient` is a global object not tied to the wallet directly atm.
- Should not run client-side mixing on masternodes.
- Fix `InitAutoBackup` signature in `DummyWalletInit`.

* remove boost dependancy in wallet/init.cpp

Signed-off-by: pasta <pasta@dashboost.org>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Dec 16, 2020
…ccidentally removed with bitcoin#10762

23abfb7 added logging line back that was accidentally removed with bitcoin#10762 (Steve Lee)

Pull request description:

  I made the change based off of the DummyWalletInit refactor commit. I can rebase once that is merged.

  I built with wallet disabled and debug enabled. I then confirmed in the debug output that the logging line I added back indeed printed.

Tree-SHA512: 94133aa3add9c73fa33fcc51b89fe0bc58344ab8a0ca63898961932a57b1f14b79e8113d3aeae116e0b91809f5660c636a565ea4681368c7ba85890a30e70589
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Dec 18, 2020
…ccidentally removed with bitcoin#10762

23abfb7 added logging line back that was accidentally removed with bitcoin#10762 (Steve Lee)

Pull request description:

  I made the change based off of the DummyWalletInit refactor commit. I can rebase once that is merged.

  I built with wallet disabled and debug enabled. I then confirmed in the debug output that the logging line I added back indeed printed.

Tree-SHA512: 94133aa3add9c73fa33fcc51b89fe0bc58344ab8a0ca63898961932a57b1f14b79e8113d3aeae116e0b91809f5660c636a565ea4681368c7ba85890a30e70589
gades pushed a commit to cosanta/cosanta-core that referenced this pull request Jun 30, 2021
…tion interface

5d2a399 [trivial] fixup comment for VerifyWallets() (John Newbery)
43b0e81 [wallet] Add StartWallets() function to wallet/init.cpp (John Newbery)
290f3c5 [wallet] Add RegisterWalletRPC() function to wallet/init.cpp (John Newbery)
062d631 [wallet] Add CloseWallets() function to wallet/init.cpp (John Newbery)
77fe07c [wallet] Add StopWallets() function to wallet/init.cpp (John Newbery)
2da5eaf [wallet] Add FlushWallets() function to wallet/init.cpp (John Newbery)
1b9cee6 [wallet] Rename WalletVerify() to VerifyWallets() (John Newbery)
9c76ba1 [wallet] Rename InitLoadWallet() to OpenWallets() (John Newbery)

Pull request description:

  Apologies for the mostly code move only PR. This is a pre-req for both bitcoin#10740 and bitcoin#10762

  All wallet component initialization/destruction functions are now in their own `wallet/init.cpp` translation unit and are no longer static functions on the CWallet class. The bitcoin_server also no longer has any knowledge that there are multiple wallets in vpwallet.

  There should be no changes in behavior from this PR.

Tree-SHA512: 7c260eb094f2fa1a88d803769ba60935810968a7309f731135e4b17623b97f18c03bbcd293c942093d1efce62c6c978f9ff484d54dc9a60bc2fcb5af2d160fcd
gades pushed a commit to cosanta/cosanta-core that referenced this pull request Jun 30, 2021
63048ec [tests] Test starting bitcoind with -h and -version (John Newbery)

Pull request description:

  Test that starting bitcoind/bitcoin-qt with `-h` and `-version` works as expected.

  Prompted by bitcoin#10762 (comment), which is a nullpointer dereference triggered by starting bitcoin-qt with `-h`.

  On master, this test passes when run over bitcoind, but fails when running over bitcoin-qt. I used xvfb as a virtual frame buffer to test:

  ```
  BITCOIND=/home/ubuntu/bitcoin/src/qt/bitcoin-qt xvfb-run ./feature_help.py --nocleanup
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Initializing test directory /tmp/user/1000/testdi4dre13
  2018-03-30T17:09:37.767000Z TestFramework (INFO): Start bitcoin with -h for help text
  2018-03-30T17:09:37.841000Z TestFramework (ERROR): Assertion failed
  Traceback (most recent call last):
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 126, in main
      self.run_test()
    File "./feature_help.py", line 25, in run_test
      assert_equal(ret_code, 0)
    File "/home/ubuntu/bitcoin/test/functional/test_framework/util.py", line 39, in assert_equal
      raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
  AssertionError: not(-11 == 0)
  2018-03-30T17:09:37.842000Z TestFramework (INFO): Stopping nodes
  Traceback (most recent call last):
    File "./feature_help.py", line 42, in <module>
      HelpTest().main()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 149, in main
      self.stop_nodes()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_framework.py", line 273, in stop_nodes
      node.stop_node()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 141, in stop_node
      self.stop()
    File "/home/ubuntu/bitcoin/test/functional/test_framework/test_node.py", line 87, in __getattr__
      assert self.rpc_connected and self.rpc is not None, "Error: no RPC connection"
  AssertionError: Error: no RPC connection
  ```

  Passes for bitcoind and bitcoin-qt when run on bitcoin#12836.

  Longer term, we should consider running functional tests over bitcoin-qt in one of the Travis jobs.

Tree-SHA512: 0c2f40f3d5f0e78c3a1b07dbee8fd383eebab27ed0bf2a98a5b9cc66613dbd7b70e363c56163a37e02f68ae7ff7b3ae1769705d0e110ca68a00f8693315730a4
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

17 participants