0.15 #18251

pull zachwylde00 wants to merge 187 commits into bitcoin:master from zachwylde00-gmail-com:0.15 changing 223 files +14273 −2481
  1. zachwylde00 commented at 2:07 AM on March 3, 2020: none

    <!-- *** Please remove the following help text before submitting: *** Pull requests without a rationale and clear improvement may be closed immediately. -->

    <!-- Please provide clear motivation for your patch and explain how it improves Bitcoin Core user experience or Bitcoin Core developer experience significantly: * Any test improvements or new tests that improve coverage are always welcome. * All other changes should have accompanying unit tests (see `src/test/`) or functional tests (see `test/`). Contributors should note which tests cover modified code. If no tests exist for a region of modified code, new tests should accompany the change. * Bug fixes are most welcome when they come with steps to reproduce or an explanation of the potential issue as well as reasoning for the way the bug was fixed. * Features are welcome, but might be rejected due to design or scope issues. If a feature is based on a lot of dependencies, contributors should first consider building the system outside of Bitcoin Core, if possible. * Refactoring changes are only accepted if they are required for a feature or bug fix or otherwise improve developer experience significantly. For example, most "code style" refactoring changes require a thorough explanation why they are useful, what downsides they have and why they *significantly* improve developer experience or avoid serious programming bugs. Note that code style is often a subjective matter. Unless they are explicitly mentioned to be preferred in the [developer notes](/doc/developer-notes.md), stylistic code changes are usually rejected. -->

    <!-- Bitcoin Core has a thorough review process and even the most trivial change needs to pass a lot of eyes and requires non-zero or even substantial time effort to review. There is a huge lack of active reviewers on the project, so patches often sit for a long time. -->

  2. build: bump version to 0.15.0
    Tree-SHA512: 7cdf0efaafeb47ec25d29fa9dc1c5caa762ee62614288fc849370d89bd64c1e8039175fe44163fb5655db10b567baa028ae514a05ebdaf06432b9698849da195
    252ca9c5d8
  3. Updating the release notes (minor stylistic changes) 30c246b04f
  4. Merge #11076: 0.15 release-notes nits: fix redundancy, remove accidental parenthesis & fix range style
    30c246b Updating the release notes (minor stylistic changes) (practicalswift)
    
    Pull request description:
    
      0.15 release-notes nits:
      * Remove accidental parenthesis
      * Fix redundancy ("remain" vs. previous "continue to remain")
      * Fix range style ("from X to Y" vs. previous "from X-Y")
    
    Tree-SHA512: d3621b6cc781e82d0156a559f71b8190c0fb1aed9ae7a8173ac9c57387a1a03fb9b8a6e4c709adadf80bcc2c2eff113dd6aa8471899c0121392c8138218cdb6c
    1c4b9b3135
  5. Update release-notes.md
    Eric Shaw Jr -> Eric Shaw (from GitHub profile)
    gubatron -> Angel Leon (from GitHub profile)
    jonnynewbs -> John Newbery (duplicate)
    keystrike -> James Evans (duplicate)
    Kibbled Jive Elk Zoo -> KibbledJiveElkZoo (duplicate)
    kirit93 -> Kirit Thadaka (from GitHub profile)
    NicolasDorier -> Nicolas Dorier (duplicate)
    008f64f80f
  6. Merge #11090: Update contributor names in release-notes.md
    008f64f Update release-notes.md (Derek Miller)
    
    Pull request description:
    
      Eric Shaw Jr -> Eric Shaw (from GitHub profile)
      gubatron -> Angel Leon (from GitHub profile)
      jonnynewbs -> John Newbery (duplicate)
      keystrike -> James Evans (duplicate)
      Kibbled Jive Elk Zoo -> KibbledJiveElkZoo (duplicate)
      kirit93 -> Kirit Thadaka (from GitHub profile)
      NicolasDorier -> Nicolas Dorier (duplicate)
    
    Tree-SHA512: c952e72cc82fd780532488fbd10b35918c9ac686cb6352b752a04ce5694bbdb7c2d3402b3187cdf4e5325e42e98cfacf2a95b565792cfdf7efeef1d369669e36
    8f0121c957
  7. disable jni in builds
    Github-Pull: #11056
    Rebased-From: 844b73e486ca146f3f9f3060e878814752c25fd5
    Tree-SHA512: f735853c3d9abbde5032cc55201b0ddc29679e681ba7d3822cbcbeee17c7185ee984b235411224cfb8ff12550de88a0f1367d55ad24bf52c5c03061330849eb2
    cbdd338a75
  8. Fix combinerawtransaction RPC help result section
    Github-Pull: #11083
    Rebased-From: f9ca0fe44ec673695e601045630f151a806e000d
    Tree-SHA512: ef94958d7de11e091db456e253fa4a188b0b0e713149bd568aa2de11a8a3c1585b34bbfb78aaac12f969533f05602ed8b1cd16275429d86a80c36bb594ce6526
    6c2b0085fb
  9. Add length check for CExtKey deserialization
    Github-Pull: #11081
    Rebased-From: 07685d1bc1b0b815c00a68a5b7b335ffa0d4d90d
    Tree-SHA512: 7f6b9ca6714d059d500531eb842c1c25edfa04ecba0ea1d9a28010fced657c066cea67d2016bbaa9b96c431a05ca9c0dcf2ba301898ecf96a65a4e01aac7fae9
    9fe1f6bd89
  10. doc: Update build-openbsd for 6.1
    - Bump "updated for"
    - Fix link to boost (haenet mirror is broken)
    - Upgrade boost version to 1.64
    
    Github-Pull: #11080
    Rebased-From: 5be6e9b4f9991a5f8ff74aa8aaa4962cb45728b6
    Tree-SHA512: 72877bf32e4f38fb530946c065c23edd683a0da379c33fa3eee4fbeb51e2c97171f5d33ebe1e77f25c3e14779d94e8198cc8fbb6e1055a1024638458ef7cc032
    2b59cfb1f7
  11. [wallet] Remove keypool_topup_cleanups
    Unused function. Mostly reverts c25d90f125d69e33688288eff439eb7be75012e9
    
    c25d90f... was merged as part of PR 11022 but is not required.
    
    Github-Pull: #11044
    Rebased-From: 1221f60c94971c0f66abe5fdf086087a173bb0ac
    Tree-SHA512: da229b128bee5f124c009a1a2adfb4fa879366c81789824c426c9ce5209c835888a7e6cfeb1724551320a98cd08406a605372f84487a0d289cd6e02f9ac3ea21
    4ef8374559
  12. [wallet] Add logging to MarkReserveKeysAsUsed
    Github-Pull: #11044
    Rebased-From: 67ceff4039ae038ae16f06128f868a2e8395b59a
    Tree-SHA512: 850c5b1010c84e164edf24a83ae36e46309b2eb7a67854bad509265ed590ba67d5f743a8416590da6ecca85fe4bda7f20e8c3152e422638eb7898db11a416af7
    6ab120cc6c
  13. Only return hex field once in getrawtransaction
    The hex is already returned in TxToUniv, no need to give it out a
    second independent time in getrawtransaction itself.
    
    Github-Pull: #11027
    Rebased-From: e029c6e709d251809aa04edc08f76a077a2443e7
    Tree-SHA512: 4f7892431ddb9b59bcc59756890b97a20d046d1d4898f8a80c564223e1cde1c922da403cea4b8ae79d70741d1a9ff337f077043e5bb538cdc4d34fbe09301240
    eb9c21ed79
  14. Pass serialization flags and whether to include hex to TxToUniv
    Github-Pull: #11027
    Rebased-From: 6bbdafcdc4f9d9e3f9de72ed686c060fb4b8b465
    Tree-SHA512: 8ed049a0945c4f56c518aef6d60efebda5cde09ef63d8e472b363821170d71fb4d16414b360824d7537fc7c7b5e5277bbbd092a20899446e97c188ab8df58c1b
    07164bbead
  15. gitian: quick hack to fix version string in releases
    Release version strings were broken in Gitian by 7522. This is a minimal fix
    suitable for 0.15.
    
    After this, we should fix up version handling for good so that gitian packages
    the correct string in the release tarball, so that git is not required to get
    the tag name.
    
    Github-Pull: #11097
    Rebased-From: 4452829b104842c547bd100714a241e9f209e1f4
    Tree-SHA512: 40071b97b2207b2262aef0b4802cb231ccafbff0ed04b5945a64dceda8bdbb2ea71bf6a546e1d03533612edfdc55dedd413da967cba0b1bbd3f9139ec3572f60
    129b03ff62
  16. Trivial: Fix typo in release-notes.md
    getmempooolentry -> getmempoolentry (twice)
    9c76cf50fb
  17. qt: Update translations pre-rc2
    New locales:
    
    - bn
    - bs
    - de_DE
    - en_AU
    - en_US
    - es_419
    - he_IL
    - id
    - ja_JP
    - my
    - nb_NO
    - nl_NL
    - si
    - te
    - th
    
    Tree-SHA512: af4e9d0107122e3da7da8ee4952e01a731ed04f13e83ed1979ace24d29c437a83cc23453d8f0b2160829df02c2ffbff0ce749083f82c4d4695c69a3c7feeebed
    28b978b19e
  18. Merge #11102: Trivial: Fix typo in release-notes.md
    9c76cf5 Trivial: Fix typo in release-notes.md (jbarcelo)
    
    Pull request description:
    
      getmempooolentry -> getmempoolentry (twice)
    
    Tree-SHA512: 4e52d4decf4a6b0ae6ef6f3b52fed2c2fafe63d72a3b5868f172c479a9463f28eaada29b6364a5e5ca5afe021155ee97cc9a23208d2a96c4ecccebccc173bb0e
    0d3e8183fa
  19. [doc] build-windows: Mention that only trusty works
    Github-Pull: #11119
    Rebased-From: fa14b6797088065f890b33c1a2c7f6ee4af20c6c
    Tree-SHA512: a790a5d37a06a691f2536763a504ead5b06b94708ba07f3b94bedbb76b0201825be3dcd95343512d7a6211089be2abc3f1e0957ed27055426e6943d4bdb6fbd9
    0a6af47ffa
  20. Fix rounding errors in calculation of minimum change size
    Github-Pull: #11145
    Rebased-From: a54c7b94f8825e9b52fec9066fe7c1d5b6f53482
    Tree-SHA512: d9abb9794edbf7e52450c63d183a4f28e9a3621a670b7f21af92407be096363b44a356818f2abbea11c168d123c04852bd0b60f1cd9d423aefbf4ae831f8567d
    e51bb71e4a
  21. Output a bit more information for fee calculation report.
    Github-Pull: #11145
    Rebased-From: 6af49dddeaeec7f134e86d6f8cf839c55870b7ab
    Tree-SHA512: 7245c6f7ed81cf3913e351ff1df7f74f4be7abe0ae8be312e4862c9875e2943b0b11136bc9999191cdf03468fdac5d41e294bb59b657605c22643b102e37c070
    5b059a833e
  22. Changing -txindex requires -reindex, not -reindex-chainstate
    Github-Pull: #11108
    Rebased-From: cd0ea487422028bec1f5df62ab4c57909c2bcc90
    Tree-SHA512: 0fbd50b1343eec14301ee9c2fc76e48dcb1610ce1ddbf3cccbd937e2c0d1bbdfc4920fbc05e7e560c424e0ed7367d6ad3595a1bd38dea669bcbd1c838f522d8e
    e8ad101e5b
  23. qt: Translation update pre-rc3
    Tree-SHA512: d813ef923d804722bc161cc62e09ee003b386c0abf2d513ede671e9f14ac4c3df749a9f23ddcba9400fcc335dbef6540e47a212dca8ddc0a3d73aee01f098754
    29a3cb2378
  24. Update release-notes.md a461cf4e37
  25. Merge #11180: [release-notes.md] Remove alias
    a461cf4 Update release-notes.md (kallewoof)
    
    Pull request description:
    
      They're the same person.
    
    Tree-SHA512: dcdcf18d57db87445ce09d5e20ea17b0cb0653e749028b2662d708e2798e38296f0598210fb196bf3255a6bfd0837724e56419c39ebe9564406f11296c40be68
    48790e0efa
  26. doc: Add missing contributors to release notes
    Guido Vranken via commit 9fe1f6b
    fad16a90b2
  27. Release Notes: Fix SHA256-with-SSE4 PR link 58f1e54cbf
  28. Merge #11255: Release Notes: Fix SHA256-with-SSE4 PR link
    58f1e54cb Release Notes: Fix SHA256-with-SSE4 PR link (Janus Troelsen)
    
    Pull request description:
    
    Tree-SHA512: 7f3dc2a1fb1e602fa947f4a00e39f4958eabeb47800b5b85a2035568258f0679c026d7ffe377c9256a97019b174868db82fd4aaac9c218bed145ba86f56330b1
    134d824193
  29. doc: Add PRs list to release notes
    Tree-SHA512: 1dd5e19a2ece38002da1d4bcf017a0a1a3ab2dc8b31fe7b3e7ebc6fef58de4547abbff3fb6555496da1ecf1f9a0cc941f980b053a0376a776e8301de3834aac1
    d4c9d00e7e
  30. Merge #11279: doc: Add missing contributors to release notes
    fad16a90b doc: Add missing contributors to release notes (MarcoFalke)
    
    Pull request description:
    
      Guido Vranken via commit 9fe1f6b
    
    Tree-SHA512: 9f5c860ed8e23ad679e8c9e9392a66b7ee25c7be84d256855ef65caf335a8e819c7146be47d90686e61450d2501ed96b04b813860725856619088a4378dbfa90
    adcc788f2a
  31. travis: filter out pyenv 0ced455b99
  32. Merge #11292: travis: filter out pyenv
    0ced455b9 travis: filter out pyenv (Cory Fields)
    
    Pull request description:
    
      Backport of #11271
    
    Tree-SHA512: 34fa201051e4bc3600c2ee6121380c93f03a0639361e4955cdc22af0f95b787a3eb590a5246133377357c803dbb5d17a543672b382de8afa2226e480b63e7555
    5f2cf88c23
  33. doc: Old fee_estimates.dat are discarded by 0.15.0 fa120bd01c
  34. Merge #11295: doc: Old fee_estimates.dat are discarded by 0.15.0
    fa120bd01 doc: Old fee_estimates.dat are discarded by 0.15.0 (MarcoFalke)
    
    Pull request description:
    
    Tree-SHA512: b4b1cb3efa307a7a0c37b8cc0a35f8fd31c8268747be59efba6530c36ba6423d9fb37e752782c7ebd5bc22a4aa1d2730b0e9ab560239fb2874afd42197ed9fd0
    3751912e8e
  35. doc: Clean out release notes on 0.15 branch
    Prepare for 0.15.1
    
    Tree-SHA512: d306369ebf2090dd3f74ead6ca6b9f3f2d56bcde6eb6aaab22ac38a5f7ab6cdf3da1142ad6fe266f793f27bbed4247397375f6177f2c7ccc1a57de9acaa5a181
    7c53587101
  36. Fix Qt 0.14.2->0.15.0 segfault if "total at least" is selected
    A button was removed, so now button(1) is nullptr
    
    Github-Pull: #11332
    Rebased-From: cdaf3a1f9e93be273ebf3e470dc709828c55476c
    Tree-SHA512: 0a49bf4e9ab08e5869170c8a212da60c9a6b90c36427d788de384aa4be6d87bb5e00a21edf78eed34f81bbc554b6f15565bb9b493dafcbfe9d6f4664d7424d9d
    46c8d23dad
  37. build: Bump version to 0.15.0.1
    Tree-SHA512: 7ee9ff3941737aae3086cabcd792c6a00054e911045b4ee198bdc03ffed01328bce504bf7d4fb177e78da8c01812d1a5081dca13e767433aa9ac441e979102e6
    843233277d
  38. doc: Bump manpages to 0.15.0.1
    Tree-SHA512: 8097788934031d0ef47ebac8ddda10e4d124c14e8d0ccee697faba971a68ad7bfcc2f838ae53b1110719ade879743187d170c4d2e69446343c6e2e89febf633c
    7123b95bea
  39. qt: Translations update pre-0.15.0.1
    Tree-SHA512: 942fbba8a959ec5430afeecbb663731944fd646fa3b997252e599d835faff12f329d1b70509b161275c3c88845de031357c8317d7f7c801e24be488912cf4035
    f266f2668b
  40. doc: Release notes for 0.15.0.1
    Tree-SHA512: ce2e874659ea59fa3f1f34a02ed910f655db2ec5b030ef40f89dca0b90932a3b579768db4e7f30773ca9cbbf72891369efe34fdbf111669c3bb583e8c69eda85
    fb7b529384
  41. [wallet] Close DB on error.
    Github-Pull: #11017
    Rebased-From: 03bc719a85cb4928cb4b43d0bc4142f72cb01b23
    9e8aae31c1
  42. [tests] Introduce TestNode
    TestNode is a class responsible for all state related to a bitcoind node
    under test. It stores local state, is responsible for tracking the
    bitcoind process and delegates unrecognised messages to the RPC
    connection.
    
    This commit changes start_nodes and stop_nodes to start and stop the
    bitcoind nodes in parallel, making test setup and teardown much faster.
    
    Github-Pull: #10711
    Rebased-From: 7897338918dac072e788b8ab2919d4559f311bef
    fc2aa09cf3
  43. Avoid returning a BIP9Stats object with uninitialized values
    Uninitialized data potentially used in `rpc/blockchain.cpp`:
    
    ```
    static UniValue BIP9SoftForkDesc(const Consensus::Params& consensusParams, Consensus::DeploymentPos id)
    {
        ...
        const ThresholdState thresholdState = VersionBitsTipState(consensusParams, id);
        ...
        if (THRESHOLD_STARTED == thresholdState)
        {
            UniValue statsUV(UniValue::VOBJ);
            BIP9Stats statsStruct = VersionBitsTipStatistics(consensusParams, id);
            statsUV.push_back(Pair("period", statsStruct.period));
            statsUV.push_back(Pair("threshold", statsStruct.threshold));
            statsUV.push_back(Pair("elapsed", statsStruct.elapsed));
            statsUV.push_back(Pair("count", statsStruct.count));
            statsUV.push_back(Pair("possible", statsStruct.possible));
            rv.push_back(Pair("statistics", statsUV));
        }
        ...
        return rv;
    }
    ```
    
    Github-Pull: #10957
    Rebased-From: 3eb53b867153c957529484b5338d27e69de027c1
    50bd3f626d
  44. test: Increase initial RPC timeout to 60 seconds
    When running the tests locally with a parallelism of 4 on an otherwise
    busy system, RPC can take quite a wait to come up.
    
    Change the timeout to 60 seconds just to be safe.
    
    Github-Pull: #11091
    Rebased-From: c1470a058f21bf98d83b9dc345c61626b87035cc
    c276c1e1d1
  45. [tests] fix timeout issues from TestNode
    Fixes a couple of bugs from the introduction of TestNode:
    
    - test scripts were no longer able to specify a custom timeout for
    starting a node. Therefore tests with nodes that take a long time to
    start up (eg pruning.py) would fail.
    - the test for whether a node has failed on start up was broken
    by changing 'assert x is None' to 'assert not x'. Since
    subprocess.poll() can return None (indicating the node is still running)
    or 0 (indicating the node exited with return code 0), this was a
    regression.
    
    Github-Pull: #11077
    Rebased-From: 2b4ea520b717b3ca894adbac17796786667764d3
    1d80d1e319
  46. qa: Move wait_until to util
    Github-Pull: #11068
    Rebased-From: 08ce33f8e95efa81b37ddc6b3350462c61bbfd51
    5398f205e3
  47. [tests] add TestNodeCLI class for calling bitcoin-cli for a node
    Github-Pull: #10798
    Rebased-From: b23549f6e677a8e22953568704eac7ea0c2c1289
    016b9ada21
  48. [tests] Add bitcoin_cli.py test script
    Github-Pull: #10798
    Rebased-From: c6ec4358a797b7a11283238a0cf0b4531def9e92
    716066dbea
  49. rpc: Write authcookie atomically
    Use POSIX rename atomicity at the `bitcoind` side to create a working
    cookie atomically:
    
    - Write `.cookie.tmp`, close file
    - Rename `.cookie.tmp` to `.cookie`
    
    This avoids clients reading invalid/partial cookies as in #11129.
    
    Github-Pull: #11131
    Rebased-From: 82dd7195e1fb943f9cd45a48188f9678219c0206
    b278a43646
  50. Acquire cs_main lock before cs_wallet during wallet initialization
    CWallet::MarkConflicted may acquire the cs_main lock after
    CWalletDB::LoadWallet acquires the cs_wallet lock during wallet initialization.
    (CWalletDB::LoadWallet calls ReadKeyValue which calls CWallet::LoadToWallet
    which calls CWallet::MarkConflicted). This is the opposite order that cs_main
    and cs_wallet locks are acquired in the rest of the code, and so leads to
    POTENTIAL DEADLOCK DETECTED errors if bitcoin is built with -DDEBUG_LOCKORDER.
    
    This commit changes CWallet::LoadWallet (which calls CWalletDB::LoadWallet) to
    acquire both locks in the standard order. It also fixes some tests that were
    acquiring wallet and main locks out of order and failed with the new locking in
    CWallet::LoadWallet.
    
    Error was reported by Luke Dashjr <luke-jr@utopios.org> in
    https://botbot.me/freenode/bitcoin-core-dev/msg/90244330/
    
    Github-Pull: #11126
    Rebased-From: de9a1db2ed14e0c75ffd82dc031f7ad30c56d195
    2cb720ae61
  51. RPC: gettxout: Slightly improve doc and tests
    Github-Pull: #10859
    Rebased-From: 6d2d2eb49389d70a5db327e133c9c90748f82d5f
    2a5d099e47
  52. Add getmininginfo functional test
    Github-Pull: #11150
    Rebased-From: 4f2905b76b502a9de235dbe739e5fe504ef5bc22
    847c75ec64
  53. [tests] fix - use rpc_timeout as rpc timeout
    Github-Pull: #11121
    Rebased-From: be2a2ab6a67beef97e3c3cf42bd5eeea6c4e55cf
    11a5992c90
  54. [tests] TestNode: separate add_node from start_node
    Separates the act of creating a TestNode object from starting the node.
    The test_framework now keeps track of its list of TestNodes, and test
    writers can call start_node() and stop_node() without having to update
    the self.nodes list.
    
    Github-Pull: #11121
    Rebased-From: 36b626867087e9fae6d85f926248997ebff327b7
    4d3ba18386
  55. [tests] Avoid passing around member variables in test_framework
    Github-Pull: #11121
    Rebased-From: 6cf094a0229d051ab8a15189c8a0bc6011919e72
    bb5e7cb308
  56. [tests] don't override __init__() in individual tests
    Almost all test scripts currently need to override the __init__()
    method. When they do that they need to call into super().__init__() as
    the base class does some generic initialization.
    
    This commit makes the base class __init__() call into set_test_params()
    method. Individual test cases can override set_test_params() to setup
    their test parameters.
    
    Github-Pull: #11121
    Rebased-From: 5448a1471d6fc638a2220ea5a2f3782172efe14c
    801d2ae924
  57. [tests] Functional tests must explicitly set num_nodes
    Github-Pull: #11121
    Rebased-From: 7148b74dc39110f53c665b94fa9d994c6ad6dc1c
    82bf6fc6d4
  58. [tests] fixups from set_test_params()
    Github-Pull: #11215
    Rebased-From: 3918d93f3cd2305dc12cb964aebba0fc1f8720b4
    cef03198dc
  59. [Qt] Fix display of package name on 'open config file' tooltip
    Github-Pull: #11198
    Rebased-From: 14ccd4d8d1847d64903224562ad3c7eb795b3781
    7310f1f2eb
  60. Improve signmessages functional test
    This patch improves branch coverage of the test, making sure a
    message can not be verified with the wrong address or signature.
    
    Github-Pull: #11241
    Rebased-From: b3d6fc654770e3b4d2f82e8d77e531df9e522982
    44241765e3
  61. Remove redundant testutil files
    Github-Pull: #11234
    Rebased-From: d1138e36208dac87a27f415f39c70377636e93f1
    f0b67954f0
  62. qt: Use IsMine to validate custom change address
    (cherry picked from commit c41224dfd51c896341bbf2fa23e160bf5ffe27c3)
    
    Github-Pull: #11247
    Rebased-From: a1ea1cfbd8d4fc976f0ab2423d395e03ded6eedd
    47c02a8ae8
  63. Stop test_bitcoin-qt touching ~/.bitcoin
    Github-Pull: #11210
    Rebased-From: dea086f498097d19a2c9acbfc753c9c2d68dbb03
    f3f7891776
  64. [qa] TestNode: Add wait_until_stopped helper method
    Github-Pull: #11067
    Rebased-From: faa8d9581affde35a8242c63fca8a52004d4f943
    eeb24a3a01
  65. [test] Improve assert_raises_jsonrpc docstring
    Github-Pull: #11125
    Rebased-From: e1274947d4574bb83a020d0e178f0e5db7fc6282
    812c870043
  66. [test] Add support for custom arguments to TestNodeCLI
    Github-Pull: #11125
    Rebased-From: 5c18a84b9a49e3f9dacf0502dbf7d5d755f38da6
    e0bfd28de2
  67. [test] Add assert_raises_process_error to assert process errors
    Github-Pull: #11125
    Rebased-From: 232e3e8471edb346c09f906c996b2f350cabc72a
    e38211f5e8
  68. [test] Replace check_output with low level version
    Github-Pull: #11125
    Rebased-From: ce379b47b92d6c04250c21719bb1abfb41c586ad
    2b97b36e5d
  69. Fix division by zero in time remaining
    Github-Pull: #11237
    Rebased-From: 3b69a08c53c2ef738f32c270fdacf1e4ed5a4c97
    2e31b1d48d
  70. rpc: update cli for estimatefee argument rename
    The first argument of estimatesmartfee was renamed from nblocks to
    conf_target in 06bcdb8da64502a64df03f3c89fbc6ccb72cd349. Update the
    client-side table as well.
    
    Github-Pull: #11267
    Rebased-From: 24697c40ee6739b812259140042d426c81179977
    921542e0bd
  71. rpc: make estimatesmartfee argument naming consistent with documentation
    Github-Pull: #11267
    Rebased-From: 5acd82de9ad6df8cab922da66d49b8ff2bd35439
    b1a6c94683
  72. Remove custom fee radio group
    Removes the extraneous custom fee radio group and its single radio
    button. The radio button is replaced with a label that has the
    radio button's text.
    
    Github-Pull: #11334
    Rebased-From: e53fa4a1ca58ef46416c4a96542722601fb75c5a
    19d63e8a93
  73. [Qt] Add delay before filtering transactions
    Fixes 3141
    
    Github-Pull: #11015
    Rebased-From: 7b137acedd5e2ff3fe5395a927c546a528b0cac6
    6642558078
  74. Replace save|restoreWindowGeometry with Qt functions
    Github-Pull: #11335
    Rebased-From: 13baf7217bf8394ae02efc376208ae86eac4d0f6
    8d13b4298c
  75. Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds
    Github-Pull: #11377
    Rebased-From: 28d4542a0ac77a30a242d0568e580a5b437f53fa
    75997c3b35
  76. Put back inadvertently removed copyright notices
    In an abundance of caution this restores "Bitcoin Developers" to the COPYING file in
    case there were contributors before that point in time that would object to the
    current label.  It's harmless and more pedantically correct.
    
    [Change extracted from the Bitcoin-abc repository, commit message by gmaxwell]
    
    Signed-off-by: Gregory Maxwell <greg@xiph.org>
    
    Github-Pull: #11318
    Rebased-From: d552ed678c2632bafeab695c639f5fe185dc9853
    8b61aee690
  77. doc: Prepare release notes for 0.15.1 62d18cdb89
  78. [tests] fixup dbcrash interaction with add_nodes()
    Github-Pull: #11230
    Rebased-From: 8fdb6f9126fe1e13b60de11fd34c204247679ef4
    d8dd8e7356
  79. Add listwallets RPC test to multiwallet.py
    Github-Pull: #11310
    Rebased-From: fb1f3258225a7052f4fc9e3f2accc3811c53e221
    b6468d3c42
  80. [qa] zapwallettxes: Wait up to 3s for mempool reload
    Github-Pull: #11308
    Rebased-From: fadd0c16b6bd62e9d663d906755320ae089e02d3
    2e1ac70df9
  81. [tests] Make p2p-leaktests.py more robust
    Github-Pull: #11078
    Rebased-From: 0063d2c3dce9d9c1678197d2c65ee878793d1ef9
    f1ced0d776
  82. [tests] Check connectivity before sending in assumevalid.py
    assumevalid.py would try to send over a closed P2P connection in a loop,
    hitting the following failure many times:
    
    TestFramework.mininode (ERROR): Cannot send message. No connection to node!
    
    The test still passes, but this is a lot of noise in the test log.
    
    Just check that the connection is open before trying to send.
    
    Github-Pull: #11345
    Rebased-From: e9e9391083721ca9733cc00a1907384f83b6435e
    f9cf7b589f
  83. [script] Unit tests for script/standard functions
    Github-Pull: #11116
    Rebased-From: d7afe2d1577eb3f6775301c81b94a191e0db99d9
    794a80eee3
  84. [script] Unit tests for IsMine
    Does not test watch-only addresses.
    
    Github-Pull: #11116
    Rebased-From: 7a1e873b27b790c965d9927ecd465710dc103136
    2c4ff35a8f
  85. Tests for zmqpubrawtx and zmqpubrawblock
    Github-Pull: #10552
    Rebased-From: d3677ab757ea57b21d8aed24d5bc3c4bfe9bb68c
    e4605d9dd4
  86. qa: Treat mininode p2p exceptions as fatal
    Github-Pull: #11319
    Rebased-From: a7820422e0b182db6f1df8904242e5d76d6c73fa
    2f0b30a58a
  87. qa: Fix bug introduced in p2p-segwit.py
    Changing __init__() -> set_test_params() in the tests should not have
    applied to NodeConnCB-derived objects.
    
    Github-Pull: #11319
    Rebased-From: f97ab35fa9687fd5c110ad6cca5be5b4a5c2142d
    8d2e51d862
  88. Verify DBWrapper iterators are taking snapshots
    The LevelDB docs seem to indicate that an iterator will not take
    snapshots (even providing instructions on how to do so yourself).
    In several of the places we use them, we assume snapshots to have
    been taken.
    
    In order to make sure LevelDB doesn't change out from under us
    (and to prevent the next person who reads the docs from having the
    same fright I did), verify that snapshots are taken in our tests.
    
    Github-Pull: #11422
    Rebased-From: bb8376bbc3d96af727444f90e5f60d47105609dc
    a36f3320a9
  89. Fix bip68-sequence rpc test
    Github-Pull: #11399
    Rebased-From: 49f869fe91716785b3276925d64bf8955feff69f
    a825d4af5e
  90. add functional test for mempoolreplacement command line arg
    Github-Pull: #11407
    Rebased-From: 1088b5322d0e7a8366a285e2baa49c766a9ba5bd
    806c78f014
  91. wallet: update stored witness in AddToWallet
    Replace witness-stripped wallet transactions with full transactions;
    this can happen when upgrading from a pre-segwit wallet to a segwit-
    aware wallet.
    
    Github-Pull: #11225
    Rebased-From: d01a9682b126a5f83c7311e652e6e62f2c2e1d20
    6b4d9f2736
  92. when clearing addrman clear mapInfo and mapAddr
    Github-Pull: #11252
    Rebased-From: b86a42077a134888c53bfd406b87bf0a39c78264
    0fe2a9a196
  93. qt: Backup former GUI settings on `-resetguisettings`
    Writes the GUI settings to `guisettings.bak` in the data directory
    before wiping them. This can be used to retroactively troubleshoot
    issues (e.g. #11262) where `-resetguisettings` solves the problem.
    
    Github-Pull: #11338
    Rebased-From: 723aa1b8752c1d6c6c0a76059c532ebe2f406fc1
    6a62c745a9
  94. Fix validationinterface build on super old boost/clang
    This should fix all the non-dependancy issues for termux builds.
    See Github issue #11388.
    
    Github-Pull: #11440
    Rebased-From: 96c2ce9d343147608c197bc2333138b82141340f
    b6c0209aaf
  95. qa: Restore bitcoin-util-test py2 compatibility
    Github-Pull: #11433
    Rebased-From: fafff1220cf798e25f02cdd8affb70506dd366cc
    e169349f8c
  96. qa: Fix lcov for out-of-tree builds
    Github-Pull: #11443
    Rebased-From: fae60e338639b3a09d2f26d8eb5feb3bb576b1fd
    019c492490
  97. rpc: Prevent `dumpwallet` from overwriting files
    Prevent arbitrary files from being overwritten. There have been reports
    that users have overwritten wallet files this way. It may also avoid
    other security issues.
    
    Fixes #9934. Adds mention to release notes and adds a test.
    
    Github-Pull: #9937
    Rebased-From: 0cd9273fd959c6742574259d026039f7da0309a2
    a43be5bcdb
  98. Add new step to clean $PATH var by removing /mnt specific Window's %PATH% paths that cause issues with the make system
    Github-Pull: #11437
    Rebased-From: 4f890ba6bc8caba5394c7a5388d7f07959ced78b
    dea3b87dd9
  99. net: Improve and document SOCKS code
    Make the SOCKS code more consistent, and document the constants used.
    
    Github-Pull: #11397
    Rebased-From: 22f816ef4dd57785627d801c247714cace7fc5b5
    27e861a9b3
  100. [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04
    Github-Pull: #11437
    Rebased-From: 696ce46306e40f48dc4b2d7010812d564a43289d
    c94527a973
  101. Update importprivkey named args documentation
    Fixes #11462. Updated documentation for importprivkey function to use the correct name for the first argument.
    Also updates a call to importprivkey to use named args in functional test.
    
    Github-Pull: #11465
    Rebased-From: aa57590d7c5eab1df5443e8ac9ed53ad0db46c02
    405e069d3b
  102. Merge #11445: [qa] 0.15.1 Backports
    019c492 qa: Fix lcov for out-of-tree builds (MarcoFalke)
    e169349 qa: Restore bitcoin-util-test py2 compatibility (MarcoFalke)
    806c78f add functional test for mempoolreplacement command line arg (Gregory Sanders)
    a825d4a Fix bip68-sequence rpc test (Johnson Lau)
    a36f332 Verify DBWrapper iterators are taking snapshots (Matt Corallo)
    8d2e51d qa: Fix bug introduced in p2p-segwit.py (Suhas Daftuar)
    2f0b30a qa: Treat mininode p2p exceptions as fatal (Suhas Daftuar)
    e4605d9 Tests for zmqpubrawtx and zmqpubrawblock (Andrew Chow)
    2c4ff35 [script] Unit tests for IsMine (Jim Posen)
    794a80e [script] Unit tests for script/standard functions (Jim Posen)
    f9cf7b5 [tests] Check connectivity before sending in assumevalid.py (John Newbery)
    f1ced0d [tests] Make p2p-leaktests.py more robust (John Newbery)
    2e1ac70 [qa] zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke)
    b6468d3 Add listwallets RPC test to multiwallet.py (Cristian Mircea Messel)
    d8dd8e7 [tests] fixup dbcrash interaction with add_nodes() (John Newbery)
    2b97b36 [test] Replace check_output with low level version (João Barbosa)
    e38211f [test] Add assert_raises_process_error to assert process errors (João Barbosa)
    e0bfd28 [test] Add support for custom arguments to TestNodeCLI (João Barbosa)
    812c870 [test] Improve assert_raises_jsonrpc docstring (João Barbosa)
    eeb24a3 [qa] TestNode: Add wait_until_stopped helper method (MarcoFalke)
    f3f7891 Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)
    f0b6795 Remove redundant testutil files (MeshCollider)
    4424176 Improve signmessages functional test (Cristian Mircea Messel)
    cef0319 [tests] fixups from set_test_params() (John Newbery)
    82bf6fc [tests] Functional tests must explicitly set num_nodes (John Newbery)
    801d2ae [tests] don't override __init__() in individual tests (John Newbery)
    bb5e7cb [tests] Avoid passing around member variables in test_framework (John Newbery)
    4d3ba18 [tests] TestNode: separate add_node from start_node (John Newbery)
    11a5992 [tests] fix - use rpc_timeout as rpc timeout (John Newbery)
    847c75e Add getmininginfo functional test (Cristian Mircea Messel)
    2a5d099 RPC: gettxout: Slightly improve doc and tests (Jorge Timón)
    716066d [tests] Add bitcoin_cli.py test script (John Newbery)
    016b9ad [tests] add TestNodeCLI class for calling bitcoin-cli for a node (John Newbery)
    5398f20 qa: Move wait_until to util (MarcoFalke)
    1d80d1e [tests] fix timeout issues from TestNode (John Newbery)
    c276c1e test: Increase initial RPC timeout to 60 seconds (Wladimir J. van der Laan)
    fc2aa09 [tests] Introduce TestNode (John Newbery)
    
    Pull request description:
    
      This includes test related backports for 0.15.1. The motivation is twofold:
    
      * Make backporting new tests written for current master easier
      * Fix the most common test issues that happen(ed) frequently on travis
    
      Even though this includes the new TestNode class, which comes with a lot
      of refactoring, I believe that the issues caused by refactoring are found
      and fixed by now.
    
    Tree-SHA512: 6a0c4e5246da83ff0b3f7d2cb8df358d105ed548fb3857e5d882f26cc336553aa07b39e38c281879bf82f95078298b775334f9a60c0b23140f77c50174bd8347
    51bad9195e
  103. Fix importmulti bug when importing an already imported key
    Github-Pull: #11483
    Rebased-From: a44a215177ab55b4a3b36a7980c313e908e2dd18
    20cdc2b36c
  104. Merge #11447: 0.15.1: Backports
    20cdc2b Fix importmulti bug when importing an already imported key (Pedro Branco)
    405e069 Update importprivkey named args documentation (Dusty Williams)
    c94527a [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake)
    27e861a net: Improve and document SOCKS code (Wladimir J. van der Laan)
    dea3b87 Add new step to clean $PATH var by removing /mnt specific Window's %PATH% paths that cause issues with the make system (Donal OConnor)
    a43be5b rpc: Prevent `dumpwallet` from overwriting files (Wladimir J. van der Laan)
    b6c0209 Fix validationinterface build on super old boost/clang (Matt Corallo)
    6a62c74 qt: Backup former GUI settings on `-resetguisettings` (Wladimir J. van der Laan)
    0fe2a9a when clearing addrman clear mapInfo and mapAddr (Gregory Sanders)
    6b4d9f2 wallet: update stored witness in AddToWallet (Suhas Daftuar)
    62d18cd doc: Prepare release notes for 0.15.1 (MarcoFalke)
    8b61aee Put back inadvertently removed copyright notices (Paul Berg)
    75997c3 Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (Matt Corallo)
    8d13b42 Replace save|restoreWindowGeometry with Qt functions (MeshCollider)
    6642558 [Qt] Add delay before filtering transactions Fixes 3141 (Lucas Betschart)
    19d63e8 Remove custom fee radio group (Andrew Chow)
    b1a6c94 rpc: make estimatesmartfee argument naming consistent with documentation (Wladimir J. van der Laan)
    921542e rpc: update cli for estimatefee argument rename (Wladimir J. van der Laan)
    2e31b1d Fix division by zero in time remaining (MeshCollider)
    47c02a8 qt: Use IsMine to validate custom change address (Chris Moore)
    7310f1f [Qt] Fix display of package name on 'open config file' tooltip (Daniel Edgecumbe)
    2cb720a Acquire cs_main lock before cs_wallet during wallet initialization (Russell Yanofsky)
    b278a43 rpc: Write authcookie atomically (Wladimir J. van der Laan)
    50bd3f6 Avoid returning a BIP9Stats object with uninitialized values (practicalswift)
    9e8aae3 [wallet] Close DB on error. (Karl-Johan Alm)
    
    Pull request description:
    
      This mostly backports various commits that fix(ed) bugs and issues.
    
      However, it also includes two patches for qt that only fix minor issues,
      as well as some doc patches.
    
    Tree-SHA512: 5165e309faf6b4395fdf2f6662ccc0d58306971f3769e675504f17b2055efe29b2919f22d0dbf78c4c2dc7fd5c9d08a2c53345615e4a1df73914526687c9d571
    1646f9c760
  105. travis: move back to the minimal image
    The most recent update replaced the minimal image with a large one for the
    'generic' image. Switching back to 'minimal' should reduce dependencies and
    maybe speed us up some.
    
    It should also eliminiate the need for aa2e0f09e.
    
    Github-Pull: #11521
    Rebased-From: a86e81b78fc2a2ecc827a7890cba21ed229957f2
    Tree-SHA512: 40f07304c60b11876a172b7ac75cb738b2da4209d54370714a6e731485643fbb33925a422accd3e065dcaa4fea84a1268f37ca0a8ee83b8cf70a71a25b59fb6b
    b28415baae
  106. Revert "travis: filter out pyenv"
    This reverts commit aa2e0f09ec94dd0908f792ebc2249859ad174586.
    
    Github-Pull: #11521
    Rebased-From: 3d1c31126b8ac9fe18d151dc4e9cf8598dd77362
    Tree-SHA512: 3c42bb2715853178f1fa950d7f0926a860a81b563606633cc58a67cf7218c80dd6545b9a89db387e6352b4caed38d7dd04d50c28547c340c032e2ba2f7c79173
    ca0f3f734c
  107. Remove my testnet DNS seed as I currently don't have the capacity to keep it up to date.
    Github-Pull: #11527
    Rebased-From: 132d3225f325b84afc282638c9e99623d249a52c
    Tree-SHA512: 3738afd8070fa601b5039e268088b7f3827613dbc37fae192b96b13c91f56d41fa3209533a3cad876c4e673b19015aabfce331b0b5f46a0ac518d00816e912a4
    a2bd86a5ff
  108. qa: Fix replace-by-fee race condition failures
    Github-Pull: #11538
    Rebased-From: c96b2e4f096780c75e3fa8acba496d71322583a1
    fdad04e617
  109. qa: Fix race condition in sendheaders.py
    Github-Pull: #11538
    Rebased-From: 6d51eaefe924bfaf2b0f4928dd6020023733480f
    adbc9d164a
  110. [verify-commits] Allow revoked keys to expire
    Github-Pull: #11539
    Rebased-From: d23be309c2c45f655d5f5405e031833fb4b6bbb4
    01223a0261
  111. Add share/rpcuser to dist. source code archive
    Github-Pull: #11530
    Rebased-From: fa81534d068cb5479684ed9fb073dc51532b91ca
    Tree-SHA512: 97bc91760a3284a9b60dcde04e789aed3c83539ec6621cb38dbc5bd852bfc0cdcaffceff7ca6de0c64f00149e6774d7dd651520b39876a674f1e82efba98945d
    265bb214ec
  112. [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2
    Github-Pull: #11442
    Rebased-From: 9d30f54ef1c9412f2c71b89664952dd95b6ef959
    Tree-SHA512: fc7ae48126ed9569bda7d444a2464c09ba3db2398d05933df7e1ca92a0d03c2bd3c370fea977d1a3ffe70c76e9caf45ee69d41c9dc24abcc0139e4146d8c1abd
    cf18f42899
  113. Make listsinceblock refuse unknown block hash
    Change suggested by Cory Fields <cory-nospam-@coryfields.com> who noticed
    listsinceblock would ignore invalid block hashes causing it to return a
    completely unfiltered list of transactions.
    
    Github-Pull: #11565
    Rebased-From: 659b2061c4329472a45e913c5d45e6ab180600a3
    Tree-SHA512: 2091a830b730421b49c806cb83a16c7da2ec0a7adac2bac0585324aad12a32bb99a840264c3d346937ea84786fac56e44befb6641511a417977803875efe5a21
    7d4546f17d
  114. Merge #11550: [0.15.1] qa: Backports
    01223a0 [verify-commits] Allow revoked keys to expire (Matt Corallo)
    adbc9d1 qa: Fix race condition in sendheaders.py (Suhas Daftuar)
    fdad04e qa: Fix replace-by-fee race condition failures (Suhas Daftuar)
    
    Pull request description:
    
    Tree-SHA512: e1532a02a84d9406cc78975a59201dbde78750217d504896e7e448aa86d6b4df98dc959fae440044c8f9aedebf296a9537b18e281976344ca8e4b705d7bd50b0
    34833534b6
  115. [tests] remove direct testing on JSONRPCException from individual test cases
    Github-Pull: #10853
    Rebased-From: 5864e9c1611e6034a8d49b78231abe6bfade686d
    5b728c8e98
  116. [tests] do not allow assert_raises_message to be called with JSONRPCException
    Github-Pull: #10853
    Rebased-From: 677d893ff758b61f66203730da224bd7ef8f0b43
    623de0acbb
  117. scripted-diff: rename assert_raises_jsonrpc to assert_raises_rpc error
    -BEGIN VERIFY SCRIPT-
    sed -i 's/assert_raises_jsonrpc/assert_raises_rpc_error/g' test/functional/*py test/functional/test_framework/*py
    -END VERIFY SCRIPT-
    
    Github-Pull: #10853
    Rebased-From: 47ba8cf71e9a3a6f7452488fc9ab3b350f0fae36
    d94fc336c4
  118. Ensure backupwallet fails when attempting to backup to source file
    Previous behaviour was to destroy the wallet (to zero-length)
    
    Github-Pull: #11376
    Rebased-From: 5d465e396249a0e2cc60b16984a2bdbe4c8993c3
    fd79ed6b20
  119. [wallet] Fix leak in CDB constructor
    Now using a std::unique_ptr, the Db instance is correctly released
    when CDB initialization fails.
    The internal CDB state and mapFileUseCount are only mutated when
    the CDB initialization succeeds.
    
    Github-Pull: #11492
    Rebased-From: 7104de8b1f3a31d3a60009b5dc376adbedac6a9c
    de7053f114
  120. Avoid opening copied wallet databases simultaneously
    Make sure wallet databases have unique fileids. If they don't, throw an error.
    BDB caches do not work properly when more than one open database has the same
    fileid, because values written to one database may show up in reads to other
    databases.
    
    Bitcoin will never create different databases with the same fileid, but users
    can create them by manually copying database files.
    
    BDB caching bug was reported by Chris Moore <dooglus@gmail.com>
    https://github.com/bitcoin/bitcoin/issues/11429
    
    Fixes #11429
    
    Github-Pull: #11476
    Rebased-From: 478a89c1ef79a75275d1b508122c06eee9386b2d
    9c8006dc33
  121. qa: Make tmpdir option an absolute path
    This should fix issues with the multiwallet test and symlinks
    when the tmpdir is a relative path.
    
    Rather than fixing os.symlink to work with paths relative to a
    directory descriptor, which does not work on Windows, normalize
    the path instead.
    
    Github-Pull: #11472
    Rebased-From: fa9de370b17297d6dd542da627c8dd2b31aec340
    f3457d0e83
  122. qa: Remove never used return value of sync_with_ping
    Github-Pull: #11472
    Rebased-From: fafa0039708e15d1067be091b2bfc10195afa480
    41088795dd
  123. Allow setting nMinimumChainWork on command line
    Github-Pull: #10357
    Rebased-From: 0311836f6927aec4ba5687ea12af35df3c509682
    da4908c3a0
  124. [qa] Test nMinimumChainWork
    Nodes don't consider themselves out of "initial block download" until
    their active chain has more work than nMinimumChainWork.
    
    While in initial block download, nodes won't relay blocks to their
    peers, so test that this parameter functions as intended by verifying
    that block relay only succeeds past a given node once its
    nMinimumChainWork has been exceeded.
    
    Github-Pull: #10357
    Rebased-From: eac64bb7a3b6aba747403b23b3b1d3609843f8db
    0e9d04bf0a
  125. Don't process unrequested, low-work blocks
    A peer could try to waste our resources by sending us unrequested blocks with
    low work, eg to fill up our disk.  Since
    e2652002b6011f793185d473f87f1730c625593b we no longer request blocks until we
    know we're on a chain with more than nMinimumChainWork (our anti-DoS
    threshold), but we would still process unrequested blocks that had more work
    than our tip.  This commit fixes that behavior.
    
    Github-Pull: #11458
    Rebased-From: ce8cd7a7da9174ab151172fc0ce97b5164637cf3
    3acec38781
  126. qa: add test for minchainwork use in acceptblock
    Github-Pull: #11458
    Rebased-From: 08fd822771bf8dae1c21698811f57aa691b2f25d
    2df65eeb98
  127. Add comment explaining forced processing of compact blocks
    Github-Pull: #11458
    Rebased-From: 01b52cedd42f50a93b40981c91af7c12de6e45ce
    ffb6ea4e5e
  128. Rename fAddnode to a more-descriptive "manual_connection"
    Github-Pull: #11456
    Rebased-From: 57edc0b0c86549020a39cd65f96496e9771c4769
    6f279652b0
  129. net: pass CConnman via pointer rather than reference
    There are a few too many edge-cases here to make this a scripted diff.
    
    The following commits will move a few functions into PeerLogicValidation, where
    the local connman instance can be used. This change prepares for that usage.
    
    Github-Pull: #10756
    Rebased-From: 28f11e9406b185dc87144f1f29af0d93eb115b4e
    8aee55af3d
  130. net: use an interface class rather than signals for message processing
    Drop boost signals in favor of a stateful class. This will allow the message
    processing loop to actually move to net_processing in a future step.
    
    Github-Pull: #10756
    Rebased-From: 8ad663c1fa88d68843e45580deced56112343183
    dc897e53d8
  131. net: drop unused connman param
    The copy in PeerLogicValidation can be used instead.
    
    Github-Pull: #10756
    Rebased-From: 80e2e9d0cec890c5d2f81360ebb81e81c07ccb8c
    b4136f21cf
  132. net: stop both net/net_processing before destroying them
    This should avoid either attempting to use an invalid reference/pointer to the
    other.
    
    Github-Pull: #10756
    Rebased-From: 2525b972af6645ca239ac1078cffb132b402bfbb
    0a5477c7e3
  133. Fix uninitialized g_connman crash in Shutdown()
    Github-Pull: #11326
    Rebased-From: 77939f27f7dc42640ebfb9fe52490a2ddacc3ad4
    d570aa4290
  134. Disconnecting from bad outbound peers in IBD
    When in IBD, we'd like to use all our outbound peers to help us
    sync the chain.  Disconnect any outbound peers whose headers have
    insufficient work.
    
    Github-Pull: #11490
    Rebased-From: c60fd71a65e841efe187992f46c583a704cc37f5
    bf191a7183
  135. Permit disconnection of outbound peers on bad/slow chains
    Currently we have no rotation of outbound peers.  If an outbound peer
    stops serving us blocks, or is on a consensus-incompatible chain with
    less work than our tip (but otherwise valid headers), then we will never
    disconnect that peer, even though that peer is using one of our 8
    outbound connection slots.  Because we rely on our outbound peers to
    find an honest node in order to reach consensus, allowing an
    incompatible peer to occupy one of those slots is undesirable,
    particularly if it is possible for all such slots to be occupied by such
    peers.
    
    Protect against this by always checking to see if a peer's best known
    block has less work than our tip, and if so, set a 20 minute timeout --
    if the peer is still not known to have caught up to a chain with as much
    work as ours after 20 minutes, then send a single getheaders message,
    wait 2 more minutes, and if a better header hasn't been received by then,
    disconnect that peer.
    
    Note:
    
    - we do not require that our peer sync to the same tip as ours, just an
    equal or greater work tip.  (Doing otherwise would risk partitioning the
    network in the event of a chain split, and is also unnecessary.)
    
    - we pick 4 of our outbound peers and do not subject them to this logic,
    to be more conservative. We don't wish to permit temporary network
    issues (or an attacker) to excessively disrupt network topology.
    
    Github-Pull: #11490
    Rebased-From: 5a6d00c6defc587e22c93e63029fdd538ce8858d
    9961abf9e4
  136. Add unit test for outbound peer eviction
    Github-Pull: #11490
    Rebased-From: e065249c014a070a8799b2ff947af5b8f012c5c1
    e3272242e2
  137. moveonly: factor out headers processing into separate function
    ProcessMessages will now return earlier when processing headers
    messages, rather than continuing on (and do nothing).
    
    Github-Pull: #11568
    Rebased-From: 4637f18522429473e68f6f512a03040e121a446d
    fc966bbd2b
  138. Disconnect outbound peers relaying invalid headers
    Github-Pull: #11568
    Rebased-From: 37886d5e2f9992678dea4b1bd893f4f10d61d3ad
    59b210d9a7
  139. net: Add missing lock in ProcessHeadersMessage(...)
    Reading the variable mapBlockIndex requires holding the mutex cs_main.
    
    The new "Disconnect outbound peers relaying invalid headers" code
    added in commit 37886d5e2f9992678dea4b1bd893f4f10d61d3ad and merged
    as part of #11568 two days ago did not lock cs_main prior to accessing
    mapBlockIndex.
    
    Github-Pull: #11578
    Rebased-From: 2530bf27b72e53cc6ffec27de35f3b487984833d
    ec8dedff46
  140. Rewrite p2p-acceptblock in preparation for slight behavior changes
    Removes checking whitelisted behavior (which will be removed, the
    difference in behavior here makes little sense) and no longer
    requires that blocks at the same work as our tip be dropped if not
    requested (in part because we *do* request those blocks).
    
    Github-Pull: #11531
    Rebased-From: 3b4ac43bc371561b5fa559bccb17dc0702bd4b69
    e976c36ddf
  141. Stop always storing blocks from whitelisted peers
    There is no reason to wish to store blocks on disk always just
    because a peer is whitelisted. This appears to be a historical
    quirk to avoid breaking things when the accept limits were added.
    
    Github-Pull: #11531
    Rebased-From: 3d9c70ca0fd5d42f31114b689714af1825f0ed30
    c6e4d0ce82
  142. Accept unrequested blocks with work equal to our tip
    This is a simple change that makes our accept requirements the
    same as our request requirements, (ever so slightly) further
    decoupling our consensus logic from our FindNextBlocksToDownload
    logic in net_processing.
    
    Github-Pull: #11531
    Rebased-From: 932f118e6a3779bb3d6c3cc83963cf34ac150e42
    51001d684b
  143. Reject headers building on invalid chains by tracking invalidity
    This tracks the set of all known invalid-themselves blocks (ie
    blocks which we attempted to connect but which were found to be
    invalid). This is used to cheaply check if new headers build on an
    invalid chain.
    
    While we're at it we also resolve an edge-case in invalidateblock
    on pruned nodes which results in them needing a reindex if they
    fail to reorg.
    
    Github-Pull: #11531
    Rebased-From: 015a5258adffb0cf394f387a95ac9c8afc34cfc3
    92d6105c4e
  144. [qa] test that invalid blocks on an invalid chain get a disconnect
    Github-Pull: #11531
    Rebased-From: 00dcda60f6ee63d35bec640f27efe2338dd71270
    5bec7744d1
  145. Make p2p-acceptablock not an extended test
    Github-Pull: #11531
    Rebased-From: f3d4adfa6ff5db180ec09d93f78cdc8bfda26f96
    55b7abfa8a
  146. Fix minchainwork test for 0.15 backport 6baa317b5f
  147. Deprecate confusing blockmaxsize, fix getmininginfo output
    * This removes block-size-limiting code in favor of GBT clients
      doing the limiting themselves (if at all).
    * -blockmaxsize is deprecated and only used to calculate an implied
      blockmaxweight, addressing confusion from multiple users.
    * getmininginfo's currentblocksize return value was returning
      garbage values, and has been removed, also removing a
      GetSerializeSize call in some block generation inner loops and
      potentially addressing some performance edge cases.
    
    Github-Pull: #11100
    Rebased-From: ba206d2c63a8d3cbd4a8dd47e9ef126af1bb3bb9
    7871a7d3be
  148. Use a sensible default for blockmaxweight
    No sensible user will ever keep the default settings here, so not
    having sensible defaults only serves to screw users who are
    paying less attention, which makes for terrible defaults.
    
    Github-Pull: #11100
    Rebased-From: 3dc263c9b9068ee9793b6c7a0023eff16d70fb8f
    4c82cea99b
  149. Add release notes describing blockmaxweight deprecation
    Github-Pull: #11100
    Rebased-From: 6f703e9bf11c5f2fcb0fca0e4243fce6b4b9d35a
    bb83fe1902
  150. net: Allow connecting to extra outbound peers
    Github-Pull: #11560
    Rebased-From: 2d4327db1973a354e9e4153de6958d49120fcde8
    49bf090185
  151. Track tip update time and last new block announcement from each peer
    Github-Pull: #11560
    Rebased-From: db32a6589720e5b15931cef82e477118dfd92669
    459f2db425
  152. Connect to an extra outbound peer if our tip is stale
    If our tip hasn't updated in a while, that may be because our peers are
    not relaying blocks to us that we would consider valid. Allow connection
    to an additional outbound peer in that circumstance.
    
    Also, periodically check to see if we are exceeding our target number of
    outbound peers, and disconnect the one which has least recently
    announced a new block to us (choosing the newest such peer in the case
    of tie).
    
    Github-Pull: #11560
    Rebased-From: ac7b37cd2bd612a64a4009ba82f1cd1d57f37434
    a607a95d81
  153. Add CConnmanTest to mutate g_connman in tests
    Github-Pull: #11560
    Rebased-From: 83df25736ebaa23777e965d265ed677a8d79f23f
    2ed0647ac1
  154. Add unit test for stale tip checking
    Github-Pull: #11560
    Rebased-From: 626291508c433488439b662f2e88882048fb59fb
    fc308a6cdb
  155. build: Bump version to 0.15.1
    Tree-SHA512: d998b31250208078414a27431d21b847592bdb1e4bd7eb1df6bee7f67671a4124dcaa2971ebef52304528080ab2d2ff6553b7d7138d948a364e64fc4e37dacd3
    f224cbc3d8
  156. rpc: work-around an upstream libevent bug
    A rare race condition may trigger while awaiting the body of a message, see
    upsteam commit 5ff8eb26371c4dc56f384b2de35bea2d87814779 for details.
    
    This may fix some reported rpc hangs/crashes.
    
    Github-Pull: #11593
    Rebased-From: 6b58360f9b64eb0b680a662fdfd590e47f115f44
    34153a7e4a
  157. rpc: further constrain the libevent workaround
    The bug was introduced in 2.1.6-beta, versions before that don't need the
    workaround.
    
    Github-Pull: #11593
    Rebased-From: 97932cd2689659addfbb58dc6148928b73af3bd0
    8195cb0d7f
  158. [Wallet] always show help-line of wallet encryption calls
    Github-Pull: #11590
    Rebased-From: 720d9e8fa1d1c7516e8278eaaf60789d2f2c8a53
    6372a75581
  159. Fix uninitialized URI in batch RPC requests
    This fixes "Wallet file not specified" errors when making batch wallet RPC
    calls with more than one wallet loaded. This issue was reported by
    NicolasDorier <nicolas.dorier@gmail.com>
    https://github.com/bitcoin/bitcoin/issues/11257
    
    Request URI is not used for anything except multiwallet request dispatching, so
    this change has no other effects.
    
    Fixes #11257
    
    Github-Pull: #11277
    Rebased-From: edafc718ad071993d10b3b9a1e1828bbd1f8ce54
    70268454e8
  160. Limit AuthServiceProxyWrapper.__getattr__ wrapping
    Change AuthServiceProxyWrapper.__getattr__ to only wrap proxied attributes, not
    real attributes. This way AuthServiceProxyWrapper can continue logging RPC
    calls without complicating other object usages, and special case handling for
    the .url property can be dropped.
    
    Github-Pull: #11277
    Rebased-From: e02007aade3d449f030fe5c8b12beddd7df1b232
    305f768242
  161. Make AuthServiceProxy._batch method usable
    Split off AuthServiceProxy.get_request method to make it easier to batch RPC
    requests without duplicating code and remove leading underscore from _batch
    method.
    
    This does not change any existing behavior.
    
    Github-Pull: #11277
    Rebased-From: 9f67646f173dd29464666b34de2ec9cfc480c11a
    2eea279fe6
  162. Add missing multiwallet rpc calls to python coverage logs
    This fixes a bug in coverage logging that's been around since the logging was
    introduced.
    
    Github-Pull: #11277
    Rebased-From: 505530c6cffeab8dc1f75f54ae0dfdcdb55d370b
    1036c43fe5
  163. Add missing batch rpc calls to python coverage logs
    Without this change, batch RPC calls are not included in coverage logs.
    
    Github-Pull: #11277
    Rebased-From: 74182f235cd04dcac7a8b3e763bc9add549745e1
    1c8c7f8af9
  164. Add test for multiwallet batch RPC calls
    Tests bug reported in https://github.com/bitcoin/bitcoin/issues/11257
    
    Github-Pull: #11277
    Rebased-From: 4526d21e52aa94f12121fcf01047c04f82c4990a
    3a6cdd459c
  165. Merge #11592: 0.15: Backports
    8195cb0d7 rpc: further constrain the libevent workaround (Cory Fields)
    34153a7e4 rpc: work-around an upstream libevent bug (Cory Fields)
    fc308a6cd Add unit test for stale tip checking (Suhas Daftuar)
    2ed0647ac Add CConnmanTest to mutate g_connman in tests (João Barbosa)
    a607a95d8 Connect to an extra outbound peer if our tip is stale (Suhas Daftuar)
    459f2db42 Track tip update time and last new block announcement from each peer (Suhas Daftuar)
    49bf09018 net: Allow connecting to extra outbound peers (Suhas Daftuar)
    bb83fe190 Add release notes describing blockmaxweight deprecation (Matt Corallo)
    4c82cea99 Use a sensible default for blockmaxweight (Matt Corallo)
    7871a7d3b Deprecate confusing blockmaxsize, fix getmininginfo output (Matt Corallo)
    6baa317b5 Fix minchainwork test for 0.15 backport (Suhas Daftuar)
    55b7abfa8 Make p2p-acceptablock not an extended test (Matt Corallo)
    5bec7744d [qa] test that invalid blocks on an invalid chain get a disconnect (Matt Corallo)
    92d6105c4 Reject headers building on invalid chains by tracking invalidity (Matt Corallo)
    51001d684 Accept unrequested blocks with work equal to our tip (Matt Corallo)
    c6e4d0ce8 Stop always storing blocks from whitelisted peers (Matt Corallo)
    e976c36dd Rewrite p2p-acceptblock in preparation for slight behavior changes (Matt Corallo)
    ec8dedff4 net: Add missing lock in ProcessHeadersMessage(...) (practicalswift)
    59b210d9a Disconnect outbound peers relaying invalid headers (Suhas Daftuar)
    fc966bbd2 moveonly: factor out headers processing into separate function (Suhas Daftuar)
    e3272242e Add unit test for outbound peer eviction (Suhas Daftuar)
    9961abf9e Permit disconnection of outbound peers on bad/slow chains (Suhas Daftuar)
    bf191a718 Disconnecting from bad outbound peers in IBD (Suhas Daftuar)
    d570aa429 Fix uninitialized g_connman crash in Shutdown() (MeshCollider)
    0a5477c7e net: stop both net/net_processing before destroying them (Cory Fields)
    b4136f21c net: drop unused connman param (Cory Fields)
    dc897e53d net: use an interface class rather than signals for message processing (Cory Fields)
    8aee55af3 net: pass CConnman via pointer rather than reference (Cory Fields)
    6f279652b Rename fAddnode to a more-descriptive "manual_connection" (Matt Corallo)
    ffb6ea4e5 Add comment explaining forced processing of compact blocks (Suhas Daftuar)
    2df65eeb9 qa: add test for minchainwork use in acceptblock (Suhas Daftuar)
    3acec3878 Don't process unrequested, low-work blocks (Suhas Daftuar)
    0e9d04bf0 [qa] Test nMinimumChainWork (Suhas Daftuar)
    da4908c3a Allow setting nMinimumChainWork on command line (Suhas Daftuar)
    41088795d qa: Remove never used return value of sync_with_ping (MarcoFalke)
    f3457d0e8 qa: Make tmpdir option an absolute path (MarcoFalke)
    9c8006dc3 Avoid opening copied wallet databases simultaneously (Russell Yanofsky)
    de7053f11 [wallet] Fix leak in CDB constructor (João Barbosa)
    fd79ed6b2 Ensure backupwallet fails when attempting to backup to source file (Tomas van der Wansem)
    d94fc336c scripted-diff: rename assert_raises_jsonrpc to assert_raises_rpc error (John Newbery)
    623de0acb [tests] do not allow assert_raises_message to be called with JSONRPCException (John Newbery)
    5b728c8e9 [tests] remove direct testing on JSONRPCException from individual test cases (John Newbery)
    
    Pull request description:
    
    Tree-SHA512: 9fdb5c47844a899271023d8d445f7fc728e3ad71916490cd9783464684967594b07cda05dd644b722bfcea9fade74d06cfc501e1a68abf118d6d03fbbf7d7707
    f518d9ae6a
  166. doc: Fill in 0.15.1 changelog and authors in release notes
    Tree-SHA512: 569816ca62319650d803b2dd4bc3a8791aaea1f573cd52a9e2cf220dc1ec08180a66fbb0ac44441f6b9f48cb9041ce08f56ff2e864b58510308b9a4b6898f8e8
    2ce9e586d5
  167. Update release notes for 0.15.1 4fcb915944
  168. Merge #11610: [0.15] Update release notes for 0.15.1
    4fcb915 Update release notes for 0.15.1 (MeshCollider)
    
    Pull request description:
    
      Adds info for the more notable changes since 0.15.0.1 to the release notes.
    
      ~Still needs the list of commits added too.~ (added in https://github.com/bitcoin/bitcoin/commit/2ce9e586d5b11e1f61af4db27b7326687d5e5124)
    
    Tree-SHA512: 54d30b1f0105d0d9d86a0dba017471bfa13b6bdd39fc4ee785cb515958c0f72874fb2d1e967076ac61762a16ff7b23b0eebc016f2ab0fb0aa9d6941fd6662042
    7b57bc998f
  169. Add wallet backup text to import*, add* and dumpwallet RPCs
    Github-Pull: #11289
    Rebased-From: a38bfbc51d0b98fffd8d79457f31c6fb196ff580
    42ea47db42
  170. Wrap dumpwallet warning and note scripts aren't dumped
    Github-Pull: #11289
    Rebased-From: c098c581968fa23b2a1987c127c47e04d13fb5c8
    3f1db56bc1
  171. Sanity-check script sizes in bitcoin-tx
    Github-Pull: #11554
    Rebased-From: a6f33ea77d3a48f06b5c7cfcc20553c9a88d429a
    f455bfd78a
  172. Doc: Clean out release notes after 0.15.1
    Tree-SHA512: 9478e6b5be237961f74e46640bf3a0f91e7a1fc82215572b17aeb1f00b8dc3244358ee15eae5d8dec2ec4cebe37de7e70db8fe95be81ceb8f2a6abb6ddb35856
    a81642c650
  173. contrib/init: Update openrc-run filename
    OpenRC changed their program binary names in 2014 (3 years ago), and using the old names has loud warnings now
    
    Github-Pull: #11676
    Rebased-From: 2f041f0e7d272459b49d784a1649d5b6cd77480e
    7af24577b5
  174. Merge #11662: [0.15] Sanity-check script sizes in bitcoin-tx
    f455bfd Sanity-check script sizes in bitcoin-tx (Matt Corallo)
    
    Pull request description:
    
      Backport of #11554
    
      Cleanly merges into 0.14 too if we care.
    
    Tree-SHA512: e8aff8bcde5925a73b2b9293f4782cdcf5ebc71a29001a592628b2d77e368db9905823fe7956c8e8b50ae942c77f64d48e6023a58f95b1457e106fca780308a3
    a69cc077d9
  175. Merge #11647: 0.15: Backports
    7af2457 contrib/init: Update openrc-run filename (Luke Dashjr)
    3f1db56 Wrap dumpwallet warning and note scripts aren't dumped (MeshCollider)
    42ea47d Add wallet backup text to import*, add* and dumpwallet RPCs (MeshCollider)
    3a6cdd4 Add test for multiwallet batch RPC calls (Russell Yanofsky)
    1c8c7f8 Add missing batch rpc calls to python coverage logs (Russell Yanofsky)
    1036c43 Add missing multiwallet rpc calls to python coverage logs (Russell Yanofsky)
    2eea279 Make AuthServiceProxy._batch method usable (Russell Yanofsky)
    305f768 Limit AuthServiceProxyWrapper.__getattr__ wrapping (Russell Yanofsky)
    7026845 Fix uninitialized URI in batch RPC requests (Russell Yanofsky)
    6372a75 [Wallet] always show help-line of wallet encryption calls (Jonas Schnelli)
    
    Pull request description:
    
      This fixes some multiwallet issues on the 0.15 branch...
    
    Tree-SHA512: 304a6c6acbce22c8b7338d1e618451978ab2cd04938c71a3daf40fe9996ef14e324645d642fbc21950a5481fb993254082d54da1cb953a739ebaeaab34c080d4
    2559a19e6f
  176. Make boost::multi_index comparators const
    GitHub-Pull: #11847
    Rebased-From: 1ec0c0a
    ad8393634a
  177. Merge #12032: [backport] #11847 Make boost::multi_index comparators const
    ad83936 Make boost::multi_index comparators const (Suhas Daftuar)
    
    Pull request description:
    
      Backports @sdaftuar's fix (#11847) for compatibility with boost 1.66 to the 0.15.x branch.
    
      Fixes #12009
    
    Tree-SHA512: 5d3f0a03c4fbee28e2b88204dc267d948b226512db8e4db0080002f2575d3f3793ada8572d817b7ca5a76b134c6b393691a7020334fb96d4f592661c0936673a
    cb7ef312ff
  178. [Depends] Fix Qt build with Xcode 9.2
    GitHub-Pull: #11995
    Rebased-From: 2b1f794
    9bb1a16523
  179. depends: Fix Qt build with XCode 9.3
    GitHub-Pull: #12946
    Rebased-From: 5b4fc3e
    93b9a61f12
  180. Merge #13093: [0.15] backport: depends qt patches
    93b9a61 depends: Fix Qt build with XCode 9.3 (fanquake)
    9bb1a16 [Depends] Fix Qt build with Xcode 9.2 (fanquake)
    
    Pull request description:
    
      Backports #11995 and #12946 so that qt (and all depends) can still be built on the 0.15 branch.
    
    Tree-SHA512: 671cce790b5f72c8edd04461d0bc3d300557c4df8c4e5d338561a972333edb34e2009f221d581fe3b2e61080cce0891588831c00c16d4ab852730f65856a3054
    1618c63095
  181. depends: Update Qt download url
    GitHub-Pull: #13544
    Rebased-From: 2fca656
    809df9e462
  182. Merge #13574: [0.15] backport depends: Update Qt download url
    809df9e462760156b1d2c8d5f6c0358f51a87898 depends: Update Qt download url (fanquake)
    
    Pull request description:
    
      GitHub-Pull: #13544
      Rebased-From: 2fca656
    
    Tree-SHA512: 117da7b456461475038eb163b68ccbc05248e4622f1c3bbceada3840840f673ccbc9573d03187d17e45d69030b1e5de5b16c45b0dbb1a6fb4962be21209064a7
    b667765151
  183. Fix crash bug with duplicate inputs within a transaction
    Introduced by #9049
    
    Github-Pull: #14247
    
    Tree-SHA512: 2815312a3da8ef4a93dbc26b71d9147e34d1fed794aa7188ec12670579d2e45380212cf1e23526a7b5e339a185a73637fc2f342e0699b687c920244bc2edc124
    4b8a3f5d23
  184. doc: 0.15.2 release notes bf47116671
  185. build: Bump version to 0.15.2 1e3dafcaa7
  186. doc: Update manpages for 0.15.2 391b2cf025
  187. Merge #14262: 0.15.2 release notes, manpage and version bump
    391b2cf0250de44afcaeaaf977e3ef8ec5c4d55f doc: Update manpages for 0.15.2 (Sjors Provoost)
    1e3dafcaa7b195d14713ad1a146c2bb2003c91b3 build: Bump version to 0.15.2 (Sjors Provoost)
    bf47116671c15ab792db2a3242d468ae2fa85cb0 doc: 0.15.2 release notes (Sjors Provoost)
    
    Pull request description:
    
      Semi manual based on [commits since v0.15.1](https://github.com/bitcoin/bitcoin/compare/v0.15.1...0.15), so please sanity check.
    
    Tree-SHA512: d4df6ed446f61657c1ed3c545808bafa2ba4d38ea6073881c1e69da20a01c64b20e550eb15d57c6dde390d260b369d348ba8b74b42ab3283e8cdf12632c427a0
    0602db06eb
  188. doc: Clean out release notes after release 0.15.2
    Tree-SHA512: 7e0bc6920726eb1a0516c7adba85778e913fe2f65209abfffe7740074c1ad64de09d3f3cc0d8f1e269e130e144587af48eb48006d68a9a579a91f4253c47566a
    e44150feed
  189. fanquake closed this on Mar 3, 2020

  190. zachwylde00 deleted the branch on Mar 3, 2020
  191. zachwylde00 commented at 2:09 AM on March 3, 2020: none

    Create restored environment

  192. fanquake locked this on Mar 3, 2020
  193. zachwylde00 restored the branch on Mar 4, 2020
Contributors

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-22 00:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me