Master #9809

pull GCarneiroA wants to merge 5437 commits into bitcoin:0.10 from bitcoin:master changing 1413 files +190620 −100309
  1. GCarneiroA commented at 12:03 PM on February 20, 2017: none

    macro correction

  2. qt: periodic translations update b0819c7e9b
  3. Merge #9484: Introduce assumevalid setting to skip validation presumed valid scripts.
    7b5e3fe Add assumevalid testcase (John Newbery)
    e440ac7 Introduce assumevalid setting to skip presumed valid scripts. (Gregory Maxwell)
    812714fd80
  4. Merge #9561: Wake message handling thread when we receive a new block
    241d893 Wake message handling thread when we receive a new block (Matt Corallo)
    f13914a Make WakeMessageHandler public (Matt Corallo)
    6696b4635c
  5. Clarify comment about mempool/extra conflicts 1ccfe9b1c9
  6. Add braces around AddToCompactExtraTransactions c5945804ca
  7. Bug-fix: listsinceblock: use closest common ancestor when a block hash was provided for a chain that was not the main chain. ee5c1ce5a6
  8. Testing: listsinceblock should not use orphan block height. 7ba0a00aae
  9. Merge #9508: Remove unused Python imports
    95bab82 Remove unused Python imports (practicalswift)
    b0b57a1730
  10. Docs: Update CONTRIBUTING.md
    Update CONTRIBUTING.md to document the different components.
    
    Notably, trivial should only be used for PRs that do not change the
    code.
    c70622e942
  11. Merge #9512: Fix various things -fsanitize complains about
    82e8baa Avoid boost dynamic_bitset in rest_getutxos (Pieter Wuille)
    99f001e Fix memory leak in multiUserAuthorized (Pieter Wuille)
    5a0b7e4 Fix memory leak in net_tests (Pieter Wuille)
    6b03bfb Fix memory leak in wallet tests (Pieter Wuille)
    f94f3e0 Avoid integer overflows in scriptnum tests (Pieter Wuille)
    843c560 Avoid unaligned access in crypto i/o (Pieter Wuille)
    6012967c47
  12. depends: qt: disable printer for all platforms, not just osx
    This also fixes the native osx build.
    c36ec715f0
  13. Merge #9499: Use recent-rejects, orphans, and recently-replaced txn for compact-block-reconstruction
    c594580 Add braces around AddToCompactExtraTransactions (Matt Corallo)
    1ccfe9b Clarify comment about mempool/extra conflicts (Matt Corallo)
    fac4c78 Make PartiallyDownloadedBlock::InitData's second param const (Matt Corallo)
    b55b416 Add extra_count lower bound to compact reconstruction debug print (Matt Corallo)
    863edb4 Consider all (<100k memusage) txn for compact-block-extra-txn cache (Matt Corallo)
    7f8c8ca Consider all orphan txn for compact-block-extra-txn cache (Matt Corallo)
    93380c5 Use replaced transactions in compact block reconstruction (Matt Corallo)
    1531652 Keep shared_ptrs to recently-replaced txn for compact blocks (Matt Corallo)
    edded80 Make ATMP optionally return the CTransactionRefs it replaced (Matt Corallo)
    c735540 Move ORPHAN constants from validation.h to net_processing.h (Matt Corallo)
    9c9af5ab2d
  14. [Qt] Improve progress display during headers-sync and peer-finding 40ec7c7b0d
  15. Add IPv6 support to qos.sh fc089ae47a
  16. Merge #9552: Add IPv6 support to qos.sh
    fc089ae Add IPv6 support to qos.sh (James White)
    41cb05cc8f
  17. Merge #9542: Docs: Update CONTRIBUTING.md
    c70622e Docs: Update CONTRIBUTING.md (John Newbery)
    e9e7993007
  18. Merge #9498: Basic CCheckQueue Benchmarks
    aad4cb5 Address ryanofsky feedback on CCheckQueue benchmarks. Eliminated magic numbers, fixed scoping of vectors (and memory movement component of benchmark). (Jeremy Rubin)
    9f03110 Add Basic CheckQueue Benchmark (Jeremy Rubin)
    054d664215
  19. [wallet] Add include_unsafe argument to listunspent RPC 52dde66770
  20. [RPC] bumpfee
    This command allows a user to increase the fee on a wallet transaction T, creating a "bumper" transaction B.
    T must signal that it is BIP-125 replaceable.
    T's change output is decremented to pay the additional fee.  (B will not add inputs to T.)
    T cannot have any descendant transactions.
    Once B bumps T, neither T nor B's outputs can be spent until either T or (more likely) B is mined.
    
    Includes code by @jonasschnelli and @ryanofsky
    cc0243ad32
  21. Move wallet callbacks into cs_main (this effectively reverts #7946) 989989354b
  22. Merge #8456: [RPC] Simplified bumpfee command.
    cc0243a [RPC] bumpfee (mrbandrews)
    52dde66 [wallet] Add include_unsafe argument to listunspent RPC (Russell Yanofsky)
    766e8a4 [wallet] Add IsAllFromMe: true if all inputs are from wallet (Suhas Daftuar)
    2ef52d3cf1
  23. Merge #9461: [Qt] Improve progress display during headers-sync and peer-finding
    40ec7c7 [Qt] Improve progress display during headers-sync and peer-finding (Jonas Schnelli)
    b25068697f
  24. Merge #9535: Split CNode::cs_vSend: message processing and message sending
    376b3c2 Make the cs_sendProcessing a LOCK instead of a TRY_LOCK (Matt Corallo)
    d7c58ad Split CNode::cs_vSend: message processing and message sending (Matt Corallo)
    82274c02ed
  25. [Wallet] Add an option to keep the change address key, true by default 9aa4e6a6c2
  26. [QA] Add test for fundrawtransactions new reserveChangeKey option 9eb325d079
  27. Add fundrawtransactions new reserveChangeKey option to the release notes c9f3062d55
  28. qt: Use nPowTargetSpacing constant fa4d47814f
  29. Use incrementalRelayFee for BIP 125 replacement 5b158707f2
  30. Fix missing use of dustRelayFee de6400de5d
  31. Fix to have miner test aware of new separate block min tx fee 6b331e6cf9
  32. [bugfix] save feeDelta instead of priorityDelta in DumpMempool bd92f2481c
  33. Send final alert message to older peers after connecting.
    The old Bitcoin alert system has long since been retired.
    ( See also: https://bitcoin.org/en/alert/2016-11-01-alert-retirement )
    
    This change causes each node to send any old peers that
     it connects with a copy of the final alert.
    
    The alert it hardcode cancels all other alerts including
     other final alerts.
    8ff8d219c3
  34. Do not shadow local variable named `tx`. 44f2baac48
  35. [rpc] Add incremental relay fee to getnetworkinfo fe8e8efcf9
  36. Merge #9377: fundrawtransaction: Keep change-output keys by default, make it optional
    c9f3062 Add fundrawtransactions new reserveChangeKey option to the release notes (Jonas Schnelli)
    9eb325d [QA] Add test for fundrawtransactions new reserveChangeKey option (Jonas Schnelli)
    9aa4e6a [Wallet] Add an option to keep the change address key, true by default (Jonas Schnelli)
    fb75cd04bb
  37. trivial: squash missing field 'argNames' initializer warning in qt tests
    The additional initializer is for the named arguments, which are unused
    in the test (and unfilled global fields will be initialized to 0
    anyhow), so this is a no-op apart from the warning.
    b8d1b81077
  38. qt: Periodic translation update af01cd3a3d
  39. Exclude RBF txs from fee estimation de1ae324bf
  40. [Trivial] add comment about setting peer as HB peer.
    This adds a comment to the new logic for setting HB peers based
    on block validation (and aligns the code below to reflect the comment).
    It's not obvious why we're checking mapBlocksInFlight. Add a comment to
    explain.
    dd5b0114cf
  41. Remove redundant semicolons in Python code 5cdf10611f
  42. Add missing mempool lock for CalculateMemPoolAncestors 003cd60cc3
  43. Merge #9554: [test] Avoid potential NULL pointer dereference in addrman_tests.cpp
    afab9f4 [test] Avoid potential NULL pointer dereference in addrman_tests.cpp (practicalswift)
    0b96abc35f
  44. [Trivial] Grammar and typo correction
    Minor corrections in src\test\* .
    5c66d41b7f
  45. Merge #9610: [Trivial] Grammar and typo correction (laudaa)
    5c66d41 [Trivial] Grammar and typo correction (Lauda)
    ff58b1c3bd
  46. Merge #9583: Move wallet callbacks into cs_main (this effectively reverts #7946)
    9899893 Move wallet callbacks into cs_main (this effectively reverts #7946) (Matt Corallo)
    eafba4e273
  47. Merge #9511: Don't overwrite validation state with corruption check
    116419e Don't overwrite validation state with corruption check (Alex Morcos)
    7884956414
  48. Merge #9607: Remove redundant semicolons in Python code
    5cdf106 Remove redundant semicolons in Python code (practicalswift)
    5cf3c60fcc
  49. [wallet] Clarify getbalance help string to explain interaction with bumpfee
    Documentation change only, no change in behavior.
    5a00659b58
  50. Merge #9516: Bug-fix: listsinceblock: use fork point as reference for blocks in reorg'd chains
    7ba0a00 Testing: listsinceblock should not use orphan block height. (Karl-Johan Alm)
    ee5c1ce Bug-fix: listsinceblock: use closest common ancestor when a block hash was provided for a chain that was not the main chain. (Karl-Johan Alm)
    727a798360
  51. Merge #9596: [bugfix] save feeDelta instead of priorityDelta in DumpMempool
    bd92f24 [bugfix] save feeDelta instead of priorityDelta in DumpMempool (Alex Morcos)
    71148b8947
  52. mempool: add notification for added/removed entries
    Add notification signals to make it possible to subscribe to mempool
    changes:
    
    - NotifyEntryAdded(CTransactionRef)>
    - NotifyEntryRemoved(CTransactionRef, MemPoolRemovalReason)>
    
    Also add a mempool removal reason enumeration, which is passed to the
    removed notification based on why the transaction was removed from
    the mempool.
    ff25c32392
  53. Introduce MemPoolConflictRemovalTracker
    Analogue to ConnectTrace that tracks transactions that have been removed from the mempool due to conflicts and then passes them through SyncTransaction at the end of its scope.
    4afbde6028
  54. Better document usage of SyncTransaction 094e4b3383
  55. [Trivial] Update license year range to 2017
    The same as #7363.
    be31a2b363
  56. Merge #9588: qt: Use nPowTargetSpacing constant
    fa4d478 qt: Use nPowTargetSpacing constant (MarcoFalke)
    50864529b6
  57. Merge #9371: Notify on removal
    094e4b3 Better document usage of SyncTransaction (Alex Morcos)
    4afbde6 Introduce MemPoolConflictRemovalTracker (Alex Morcos)
    ff25c32 mempool: add notification for added/removed entries (Wladimir J. van der Laan)
    4a1dc35ca5
  58. Merge #9617: [Trivial] Update license year range to 2017
    be31a2b [Trivial] Update license year range to 2017 (Lauda)
    1ac878ace6
  59. [Trivial] fix logging typo in FlushStateToDisk() ac9a84679a
  60. Merge #9624: [Trivial] fix logging typo in FlushStateToDisk()
    ac9a846 [Trivial] fix logging typo in FlushStateToDisk() (John Newbery)
    b68f898efa
  61. Delete some unused (and broken) functions in CConnman 5be01906e5
  62. Ensure cs_vNodes is held when using the return value from FindNode 3c37dc40d3
  63. Increase minimum debug.log size to 10MB after shrink. 29fb311858
  64. net: Consistently use GetTimeMicros() for inactivity checks
    The use of mocktime in test logic means that comparisons between
    GetTime() and GetTimeMicros()/1000000 are unreliable since the former
    can use mocktime values while the latter always gets the system clock;
    this changes the networking code's inactivity checks to consistently
    use the system clock for inactivity comparisons.
    
    Also remove some hacks from setmocktime() that are no longer needed,
    now that we're using the system clock for nLastSend and nLastRecv.
    99464bc38e
  65. qa: Increase a sync_blocks timeout in pruning.py 2f10f06196
  66. Fix various minor linearization script issues
    - The last-timestamp-encountered variable wasn’t being used properly. Rewrite code to properly allow for new blockchain files to be written when split by month.
    - Properly set a blockchain file’s access and modify times.
    - Add a “debug output” option to quiet certain output that might not always be desirable.
    - Update the README.
    b9d95bd9a1
  67. Do not add to vNodes until fOneShot/fFeeler/fAddNode have been set 236618061a
  68. Merge #9628: qa: Increase a sync_blocks timeout in pruning.py
    2f10f06 qa: Increase a sync_blocks timeout in pruning.py (Suhas Daftuar)
    f89502306d
  69. Refactor GetMinimumFee to give option of providing targetFee ae9719ab87
  70. Merge #9606: net: Consistently use GetTimeMicros() for inactivity checks
    99464bc net: Consistently use GetTimeMicros() for inactivity checks (Suhas Daftuar)
    3f9f9629cc
  71. Merge #9613: [wallet] Clarify getbalance help string to explain interaction with bumpfee
    5a00659 [wallet] Clarify getbalance help string to explain interaction with bumpfee (Russell Yanofsky)
    07421cf2a7
  72. Merge #9587: Do not shadow local variable named `tx`.
    44f2baa Do not shadow local variable named `tx`. (Pavel Janík)
    10dc58a2aa
  73. Merge #9574: [depends] Fix QT build on OSX
    c36ec71 depends: qt: disable printer for all platforms, not just osx (Cory Fields)
    5ac668759d
  74. Merge #9594: Send final alert message to older peers after connecting.
    8ff8d21 Send final alert message to older peers after connecting. (Gregory Maxwell)
    fd7021142a
  75. Merge #9519: Exclude RBF replacement txs from fee estimation
    de1ae32 Exclude RBF txs from fee estimation (Alex Morcos)
    9b4d2673b7
  76. [Qt] fix transaction details output-index to reflect vout index 04b877361b
  77. Use CWallet::GetMinimumFee in bumpfee
    Use the wallet's fee calculation logic to properly clamp fee against minimums and maximums when calculating the fee for a bumpfee transaction.  Unless totalFee is explictly given, in which case, manually check against min, but do nothing to adjust given fee.
    
    In all cases do a final check against maxTxFee (after adding any incremental amount).
    e8021ec919
  78. qa: Actually test assertions in pruning.py
    Also refactor to use wrapper for stop_node
    fab035f2f7
  79. Introduce WALLET_INCREMENTAL_RELAY_FEE
    Have wallet's default bump value be higher than the default incrementalRelayFee to future proof against changes to incremental relay fee.  Only applies when not setting the fee rate directly.
    0c0c63f70a
  80. Change bumpfee result value from 'oldfee' to 'origfee'.
    The result value indicates the actual fee on the transaction that was replaced. But there is an error message which uses the description 'oldfee' to refer to the original fee rate applied to the new transaction's estimated max size.  It was confusing that two different uses of 'oldfee' had two different numeric values.
    4b189c1340
  81. Refactor: Remove using namespace <xxx> from src/*.cpp. b7b48c8bbd
  82. Merge #9637: [Qt] fix transaction details output-index to reflect vout index
    04b8773 [Qt] fix transaction details output-index to reflect vout index (Jonas Schnelli)
    d9e4d1d9fb
  83. Merge #9638: qa: Actually test assertions in pruning.py
    fab035f qa: Actually test assertions in pruning.py (MarcoFalke)
    a7ea2f8fdb
  84. [trivial] Fix typos in comments cc16d99f1d
  85. build: find qt's renamed helper libs from 5.7 342eb9618a
  86. depends: add a zlib build
    qt5.7 changed the location of some of its symbols, creating a circular
    dependency in Qt5Core. Rather than trying to fix that up, build our own zlib
    rather than having it built for us.
    8efa34fb77
  87. qt: fix build with zlib for target
    This contains a few hacks very specific to Qt's buildsystem. These can be
    reverted once we split the build between native and target builds.
    
    Qt's build contains a circular dependency when not using a system zlib.
    By far the easiest fix is to switch to a system zlib, rather than Qt's own.
    However, that confuses Qt's cross build which assumes that when using a system
    zlib, it should also find a system (native) zlib for native tools. The build
    breaks if that zlib is not present.
    
    To solve this:
    1. Always use a system zlib rather than the one provided by qt
    2. Set force_bootstrap, which instructs the build tools to be built as though
       we're cross-compiling (build != target)
    3. For build tools, use qt's internal zlib so that a native zlib is not
    required.
    
    Step 3 means that if any zlib headers are found by the native build, it will
    confuse Qt's internal zlib build. So we also need to make sure that the target
    headers/libs aren't found. To do so, specify that our
    cflags/cxxflags/cppflags/ldflags only apply for non-host builds.
    b5f374fef7
  88. Skip RAII event tests if libevent is built without event_set_mem_functions 95f97f4b94
  89. [doc] Remove unused clang format dev script
    Also, update the clang format file to reflect the current coding
    style mentioned in the developer notes.
    fa5137c11d
  90. Merge #9510: [trivial] Fix typos in comments
    cc16d99 [trivial] Fix typos in comments (practicalswift)
    0fea960ca9
  91. Fix typos 5f62e3eb63
  92. Merge #9646: depends: Fix cross build for qt5.7
    b5f374f qt: fix build with zlib for target (Cory Fields)
    8efa34f depends: add a zlib build (Cory Fields)
    342eb96 build: find qt's renamed helper libs from 5.7 (Cory Fields)
    720b579480
  93. Merge #9615: Wallet incremental fee
    4b189c1 Change bumpfee result value from 'oldfee' to 'origfee'. (Alex Morcos)
    0c0c63f Introduce WALLET_INCREMENTAL_RELAY_FEE (Alex Morcos)
    e8021ec Use CWallet::GetMinimumFee in bumpfee (Alex Morcos)
    ae9719a Refactor GetMinimumFee to give option of providing targetFee (Alex Morcos)
    fe8e8ef [rpc] Add incremental relay fee to getnetworkinfo (Alex Morcos)
    6b331e6 Fix to have miner test aware of new separate block min tx fee (Alex Morcos)
    de6400d Fix missing use of dustRelayFee (Alex Morcos)
    5b15870 Use incrementalRelayFee for BIP 125 replacement (Alex Morcos)
    d2c9e4d422
  94. Merge #9626: Clean up a few CConnman cs_vNodes/CNode things
    2366180 Do not add to vNodes until fOneShot/fFeeler/fAddNode have been set (Matt Corallo)
    3c37dc4 Ensure cs_vNodes is held when using the return value from FindNode (Matt Corallo)
    5be0190 Delete some unused (and broken) functions in CConnman (Matt Corallo)
    36966a1c0e
  95. Merge #9644: [refactor] Remove using namespace <xxx> from src/
    b7b48c8 Refactor: Remove using namespace <xxx> from src/*.cpp. (Karl-Johan Alm)
    668de70be0
  96. qt: periodic translations update 71fc17f667
  97. Merge #9649: [doc] Remove unused clang format dev script
    fa5137c [doc] Remove unused clang format dev script (MarcoFalke)
    53ab12d931
  98. Merge #9647: Skip RAII event tests if libevent is built without event_set_mem_functions
    95f97f4 Skip RAII event tests if libevent is built without event_set_mem_functions (Luke Dashjr)
    e99f0d7ad4
  99. wallet: Refactor dummy signature signing for reusability d625b907a1
  100. Contrib: Add jtimon pgp keys for commit sigs and future gitian builds 178454dde9
  101. Net: CConnman: Make some methods const d45955fa09
  102. Net: Make CNetMsgMaker more const fc7f2ffad4
  103. Net: pass interruptMsgProc as const where possible 0729102f99
  104. rpc: bumpfee: use correct maximum signed tx size for fee calculation
    More accurate than simply adding one byte per input, and properly handles the
    case where the original transaction happened to have very small signatures
    f62659448c
  105. rpc: bumpfee: handle errors more gracefully 9522b53a91
  106. Use configparser in rpc-tests.py
    Remove the use of wildcard imports in rpc-tests.py and replace with
    configparser.
    1581ecbc33
  107. Merge #9640: Bumpfee: bugfixes for error handling and feerate calculation
    9522b53 rpc: bumpfee: handle errors more gracefully (Suhas Daftuar)
    f626594 rpc: bumpfee: use correct maximum signed tx size for fee calculation (Suhas Daftuar)
    d625b90 wallet: Refactor dummy signature signing for reusability (Suhas Daftuar)
    7bfb77045c
  108. Merge #9625: Increase minimum debug.log size to 10MB after shrink.
    29fb311 Increase minimum debug.log size to 10MB after shrink. (Alex Morcos)
    77bd8c4cab
  109. clarify listunspent amount description 3eba88d44c
  110. Require merge commits merge branches on top of other merge commits
    Specifically, require that the left branch (first restult of git
    show -s --format=format:%P) is a signed merge commit, instead of
    allowing either. This is fine for now, but might need to be relaxed
    in the future.
    
    Also fixes an out-of-file-descriptors issue by holding too many
    open FDs writing to /dev/null
    3e900acafa
  111. Test that pushes to bitcoin/bitcoin are signed per verify-commits ba94426d53
  112. Merge #9663: [RPC] clarify listunspent amount description
    3eba88d clarify listunspent amount description (Gregory Sanders)
    e30d9287fd
  113. Merge #9580: Fix various minor linearization script issues
    b9d95bd Fix various minor linearization script issues (Douglas Roark)
    ae972a5e99
  114. Merge #9556: Remove redundant semicolons
    8fc6989 Remove redundant semicolons (practicalswift)
    4e19efba03
  115. Merge #9656: Check verify-commits on pushes to master
    ba94426 Test that pushes to bitcoin/bitcoin are signed per verify-commits (Matt Corallo)
    3e900ac Require merge commits merge branches on top of other merge commits (Matt Corallo)
    7c93952fec
  116. Merge #9654: Add jtimon pgp keys for commit sigs and future gitian builds
    178454d Contrib: Add jtimon pgp keys for commit sigs and future gitian builds (Jorge Timón)
    1c2edd9f67
  117. Fix super-unlikely race introduced in 236618061a445d2cb11e72
    Once the CNode has been added to vNodes, it is possible that it is
    disconnected+deleted in the socket handler thread. However, after
    that we now call InitializeNode, which accesses the pnode.
    
    helgrind managed to tickle this case (somehow), but I suspect it
    requires in immensely braindead scheduler.
    885cfdd217
  118. Dont deserialize nVersion into CNode, should fix #9212 80ff0344ae
  119. net: deserialize the entire version message locally
    This avoids having some vars set if the version negotiation fails.
    
    Also copy it all into CNode at the same site. nVersion and
    fSuccessfullyConnected are set last, as they are the gates for the other vars.
    Make them atomic for that reason.
    2046617b5e
  120. net: don't run callbacks on nodes that haven't completed the version handshake
    Since ForEach* are can be used to send messages to  all nodes, the caller may
    end up sending a message before the version handshake is complete. To limit
    this, filter out these nodes. While we're at it, may as well filter out
    disconnected nodes as well.
    
    Delete unused methods rather than updating them.
    12752af0cc
  121. net: Disallow sending messages until the version handshake is complete
    This is a change in behavior, though it's much more sane now than before.
    7a8c251901
  122. net: log an error rather than asserting if send version is misused
    Also cleaned up the comments and moved from the header to the .cpp so that
    logging headers aren't needed from net.h
    08bb6f4ed4
  123. Fail in DecodeHexTx if there is extra data at the end 7ea0ad539f
  124. Better handle invalid parameters to signrawtransaction
    This silently skips trying to merge signatures from inputs which
    do not exist from transactions provided to signrawtransaction,
    instead of hitting an assert.
    922bea90c2
  125. [qa] Test that decoderawtransaction throws with extra data appended 691710a648
  126. [qa] Add second input to signrawtransaction test case ec4f7e433e
  127. [wallet] Set correct metadata on bumpfee wallet transactions
    Preserve comment, order form, and account strings from the original wallet
    transaction. Also set fTimeReceivedIsTxTime and fFromMe fields for consistency
    with CWallet::CreateTransaction. The latter two fields don't influence current
    wallet behavior, but do record that the transaction originated in the wallet
    instead of coming from the network or sendrawtransaction.
    4ec057dfa7
  128. [qa] test signrawtransaction merge with missing inputs 6dbfe08c29
  129. Lock cs_vSend and cs_inventory in a consistent order even in TRY fd13eca147
  130. Always enforce lock strict lock ordering (try or not) 8465631845
  131. Access WorkQueue::running only within the cs lock.
    This removes a "race" between Interrupt() and Run(), though it
    should not effect any of our supported platforms.
    7b2d96b634
  132. Merge #9679: Access WorkQueue::running only within the cs lock
    7b2d96b Access WorkQueue::running only within the cs lock. (Matt Corallo)
    a3511628d0
  133. Merge #9609: net: fix remaining net assertions
    08bb6f4 net: log an error rather than asserting if send version is misused (Cory Fields)
    7a8c251 net: Disallow sending messages until the version handshake is complete (Cory Fields)
    12752af net: don't run callbacks on nodes that haven't completed the version handshake (Cory Fields)
    2046617 net: deserialize the entire version message locally (Cory Fields)
    80ff034 Dont deserialize nVersion into CNode, should fix #9212 (Matt Corallo)
    496691741d
  134. Merge #9671: Fix super-unlikely race introduced in 236618061a445d2cb11e72
    885cfdd Fix super-unlikely race introduced in 236618061a445d2cb11e72 (Matt Corallo)
    7821db30e1
  135. Fixup style a bit by moving { to the same line as if statements 2a962d4540
  136. Init ECC context for test_bitcoin_fuzzy.
    This avoids calling things like pubkey_parse with a null context argument.
    ac719c936d
  137. Merge #9578: Add missing mempool lock for CalculateMemPoolAncestors
    003cd60 Add missing mempool lock for CalculateMemPoolAncestors (Matt Corallo)
    923dc447ea
  138. Merge #9691: Init ECC context for test_bitcoin_fuzzy.
    ac719c9 Init ECC context for test_bitcoin_fuzzy. (Gregory Maxwell)
    fc67cd22f8
  139. Merge #9673: Set correct metadata on bumpfee wallet transactions
    4ec057d [wallet] Set correct metadata on bumpfee wallet transactions (Russell Yanofsky)
    8d6447ecf7
  140. Merge #9651: Fix typos
    5f62e3e Fix typos (practicalswift)
    986ba005ed
  141. Merge #9659: Net: Turn some methods and params/variables const
    0729102 Net: pass interruptMsgProc as const where possible (Jorge Timón)
    fc7f2ff Net: Make CNetMsgMaker more const (Jorge Timón)
    d45955f Net: CConnman: Make some methods const (Jorge Timón)
    09e0c28f85
  142. Merge #9650: Better handle invalid parameters to signrawtransaction
    6dbfe08 [qa] test signrawtransaction merge with missing inputs (Matt Corallo)
    ec4f7e4 [qa] Add second input to signrawtransaction test case (Matt Corallo)
    691710a [qa] Test that decoderawtransaction throws with extra data appended (Matt Corallo)
    922bea9 Better handle invalid parameters to signrawtransaction (Matt Corallo)
    7ea0ad5 Fail in DecodeHexTx if there is extra data at the end (Matt Corallo)
    40f7e27d25
  143. Use argparse in rpc_tests.py
    This commit replaces the roll-your-own argument parsing in rpc_tests.py
    with Python's standard library argparse.
    91bfffff5d
  144. Improve rpc-tests.py arguments
    A few miscellaneous improvements to rpc-tests.py command line arguments:
    
     - make all arguments start with double dash for consistency
     - improve help text and output
     - add nozmq argument to explicitly exclude the ZMQ tests
     - change 'parallel' to 'jobs'
    afd38e7cc8
  145. Merge #9378: [trivial] Add documentation for CWalletTx::fFromMe member.
    39c77b0 Add documentation for CWalletTx::fFromMe member. (Russell Yanofsky)
    870cd2b58a
  146. Refactor rpc-tests.py
    - add main()
    - remove global variables
    3de3ccdfaa
  147. Merge #9227: Make nWalletDBUpdated atomic to avoid a potential race.
    d63ff62 Make nWalletDBUpdated atomic to avoid a potential race. (Patrick Strateman)
    02464da5e4
  148. net: rearrange so that socket accesses can be grouped together 45e2e08561
  149. net: add a lock around hSocket 9a0b784dea
  150. build: Add options to override BDB cflags/libs
    Add environment settings to specify the CFLAGS and LIBS to be used for
    BerkeleyDB directly. These will completely by-pass autodetection in the
    same way as other similar flags.
    
    ```
    BDB_CFLAGS  C compiler flags for BerkeleyDB, bypasses autodetection
    BDB_LIBS    Linker flags for BerkeleyDB, bypasses autodetection
    ```
    
    Implements #3921.
    8713de83a0
  151. Update OpenBSD and FreeBSD build steps
    Re-try with most recent versions, and use BDB_CFLAGS/BDB_LIBS to
    directly point at BerkeleyDB instead of CPPFLAGS hacks.
    5cc2ebb619
  152. Merge #9604: [Trivial] add comment about setting peer as HB peer.
    dd5b011 [Trivial] add comment about setting peer as HB peer. (John Newbery)
    729de15b63
  153. Merge #9532: Remove unused variables
    90fd29b Remove unused int64_t nSinceLastSeen (practicalswift)
    ac4a095 Remove unused Python variables (practicalswift)
    b709fe7ffc
  154. Use z = std::max(x - y, 0); instead of z = x - y; if (z < 0) z = 0; a47da4b6fe
  155. bench: Fix initialization order in registration
    The initialization order of global data structures in different
    implementation units is undefined. Making use of this is essentially
    gambling on what the linker does, the so-called [Static initialization
    order fiasco](https://isocpp.org/wiki/faq/ctors#static-init-order).
    
    In this case it apparently worked on Linux but failed on OpenBSD and
    FreeBSD.
    
    To create it on first use, make the registration structure local to
    a function.
    
    Fixes #8910.
    29c53289a9
  156. Further-enforce lockordering by enforcing directly after TRY_LOCKs 618ee9249b
  157. Disconnect peers which we do not receive VERACKs from within 60 sec 2cbd1196b7
  158. Merge #9712: bench: Fix initialization order in registration
    29c5328 bench: Fix initialization order in registration (Wladimir J. van der Laan)
    d304fef374
  159. Merge #9705: build: Add options to override BDB cflags/libs
    5cc2ebb Update OpenBSD and FreeBSD build steps (Wladimir J. van der Laan)
    8713de8 build: Add options to override BDB cflags/libs (Wladimir J. van der Laan)
    6a55515a9b
  160. Merge #9674: Always enforce strict lock ordering (try or not)
    618ee92 Further-enforce lockordering by enforcing directly after TRY_LOCKs (Matt Corallo)
    2a962d4 Fixup style a bit by moving { to the same line as if statements (Matt Corallo)
    8465631 Always enforce lock strict lock ordering (try or not) (Matt Corallo)
    fd13eca Lock cs_vSend and cs_inventory in a consistent order even in TRY (Matt Corallo)
    dd163f5788
  161. Fix RPC failure testing
    Make sure that RPC tests are actually checking failures correctly by:
    
    - Catching JSON RPC exceptions and verifying the error codes and messages.
    - Failing the test case if the JSON RPC exception isn't raised.
    9db8eecac1
  162. qa: mininode learns when a socket connects, not its first action 8aaba7a6b7
  163. qa: Expose on-connection to mininode listeners b436f92f72
  164. Qt/Intro: Update block chain size c8cee26100
  165. Bugfix: Qt/Intro: Chain state needs to be stored even with the full blockchain 93ffba7163
  166. Bugfix: Qt/Intro: Pruned nodes never require *more* space a9baa6d742
  167. Fix typo and spelling inconsistency in CONTRIBUTING.md
    Fix spellings of GitHub
    
    Remove unnecessary changes
    
    Fix GitHub spelling on doc/translation_process.md
    36164faa33
  168. Merge #9718: Qt/Intro: Various fixes
    a9baa6d Bugfix: Qt/Intro: Pruned nodes never require *more* space (Luke Dashjr)
    93ffba7 Bugfix: Qt/Intro: Chain state needs to be stored even with the full blockchain (Luke Dashjr)
    c8cee26 Qt/Intro: Update block chain size (Luke Dashjr)
    36f9d3ae6d
  169. Remove bitseed.xf2.org form the dns seed list ca9955e706
  170. Add a test for P2P inactivity timeouts 66f861ade9
  171. Merge #9730: Remove bitseed.xf2.org form the dns seed list
    ca9955e Remove bitseed.xf2.org form the dns seed list (Jonas Schnelli)
    33f3b21407
  172. devtools: Handle Qt formatting characters edge-case in update-translations.py
    If both numeric format specifiers and "others" are used, assume we're
    dealing with a Qt-formatted message. In the case of Qt formatting (see
    https://doc.qt.io/qt-5/qstring.html#arg) only numeric formats are
    replaced at all. This means "(percentage: %1%)" is valid (which was
    introduced in #9461), without needing any kind of escaping that would be
    necessary for strprintf.  Without this, this function would wrongly
    detect '%)' as a printf format specifier.
    5e903a5ed9
  173. qt: Periodic translations update 7179e7ca0d
  174. Update seeds tooling to Python 3
    All the other tooling scripts require Python 3, it makes sense to do so
    here too.
    
    Also document the dependency on python3-dnspython.
    4dfac2c950
  175. contrib/seeds: Update PATTERN_AGENT
    gmaxwell: Adds the newest versions, drops everything multiple softforks ago.
    bfa9393c06
  176. Pre-0.14.0 hardcoded seeds update a60677e394
  177. Merge #9698: net: fix socket close race
    9a0b784 net: add a lock around hSocket (Cory Fields)
    45e2e08 net: rearrange so that socket accesses can be grouped together (Cory Fields)
    2447c1024e
  178. net: fix a few races. Credit @TheBlueMatt
    These are (afaik) all long-standing races or concurrent accesses. Going
    forward, we can clean these up so that they're not all individual atomic
    accesses.
    
    - Reintroduce cs_vRecv to guard receive-specific vars
    - Lock vRecv/vSend for CNodeStats
    - Make some vars atomic.
    - Only set the connection time in CNode's constructor so that it doesn't change
    321d0fc6b6
  179. Make nTimeConnected const in CNode 644f1234e2
  180. Avoid copying CNodeStats to make helgrind OK with buggy std::string ae683c1b19
  181. Access fRelayTxes with cs_filter lock in copyStats 512731bed0
  182. Make nStartingHeight atomic 96f42d8a12
  183. Make nServices atomic 0f31872615
  184. Move [clean|str]SubVer writes/copyStats into a lock 22b4966a29
  185. Make nTimeBestReceived atomic d8f2b8a8c0
  186. Move CNode::addrName accesses behind locked accessors 036073bf87
  187. Move CNode::addrLocal access behind locked accessors db2dc7a58c
  188. Merge #9707: Fix RPC failure testing
    9db8eec Fix RPC failure testing (John Newbery)
    b860915f8b
  189. Require timestamps for importmulti keys
    Additionally, accept a "now" timestamp, to allow avoiding rescans for keys
    which are known never to have been used.
    
    Note that the behavior when "now" is specified is slightly different than the
    previous behavior when no timestamp was specified at all. Previously, when no
    timestamp was specified, it would avoid rescanning during the importmulti call,
    but set the key's nCreateTime value to 1, which would not prevent future block
    reads in later ScanForWalletTransactions calls. With this change, passing a
    "now" timestamp will set the key's nCreateTime to the current block time
    instead of 1.
    
    Fixes #9491
    442887f27f
  190. Add test to check new importmulti "now" value
    Easiest way to test this was to expose the timestamp via the validateaddress
    RPC (which was already looking up and returning key metadata).
    3cf991756c
  191. Use MTP for importmulti "now" timestamps 266a8114cb
  192. Dedup nTimeFirstKey update logic
    Also make nTimeFirstKey member variable private.
    
    This is just a cleanup change, it doesn't change behavior in any significant
    way.
    a58370e6a2
  193. Use importmulti timestamp when importing watch only keys
    When importing a watch-only address over importmulti with a specific timestamp,
    the wallet's nTimeFirstKey is currently set to 1. After this change, the
    provided timestamp will be used and stored as metadata associated with
    watch-only key. This can improve wallet performance because it can avoid the
    need to scan the entire blockchain for watch only addresses when timestamps are
    provided.
    
    Also adds timestamp to validateaddress return value (needed for tests).
    
    Fixes #9034.
    a80f98b1c7
  194. Merge #9708: Clean up all known races/platform-specific UB at the time PR was opened
    db2dc7a Move CNode::addrLocal access behind locked accessors (Matt Corallo)
    036073b Move CNode::addrName accesses behind locked accessors (Matt Corallo)
    d8f2b8a Make nTimeBestReceived atomic (Matt Corallo)
    22b4966 Move [clean|str]SubVer writes/copyStats into a lock (Matt Corallo)
    0f31872 Make nServices atomic (Matt Corallo)
    96f42d8 Make nStartingHeight atomic (Matt Corallo)
    512731b Access fRelayTxes with cs_filter lock in copyStats (Matt Corallo)
    ae683c1 Avoid copying CNodeStats to make helgrind OK with buggy std::string (Matt Corallo)
    644f123 Make nTimeConnected const in CNode (Matt Corallo)
    321d0fc net: fix a few races. Credit @TheBlueMatt (Cory Fields)
    a06ede9a13
  195. Merge #9736: Pre-0.14.0 hardcoded seeds update
    a60677e Pre-0.14.0 hardcoded seeds update (Wladimir J. van der Laan)
    bfa9393 contrib/seeds: Update PATTERN_AGENT (Wladimir J. van der Laan)
    4dfac2c Update seeds tooling to Python 3 (Wladimir J. van der Laan)
    d978c41e1e
  196. Remove unused module from rpc-tests a432aa0aa8
  197. Bugfix: Qt/Options: Restore persistent "restart required" notice 0b4f273e9c
  198. Return error when importmulti called with invalid address.
    Lack of error checking noticed by Alex Morcos <morcos@chaincode.com>
    9acf25cc01
  199. net: correctly ban before the handshake is complete
    7a8c251901 made a change to avoid getting into SendMessages() until the
    version handshake (VERSION + VERACK) is complete. That was done to avoid
    leaking out messages to nodes who could connect, but never bothered sending
    us their version/verack.
    
    Unfortunately, the ban tally and possible disconnect are done as part of
    SendMessages(). So after 7a8c251901, if a peer managed to do something
    bannable before completing the handshake (say send 100 non-version messages
    before their version), they wouldn't actually end up getting
    disconnected/banned. That's fixed here by checking the banscore as part of
    ProcessMessages() in addition to SendMessages().
    c45b9fb54c
  200. net: parse reject earlier
    Prior to this change, all messages were ignored until a VERSION message was
    received, as well as possibly incurring a ban score.
    
    Since REJECT messages can be sent at any time (including as a response to a bad
    VERSION message), make sure to always parse them.
    
    Moving this parsing up keeps it from being caught in the
    if (pfrom->nVersion == 0) check below.
    8502e7acbe
  201. net: require a verack before responding to anything else
    7a8c251901 made this logic hard to follow. After that change, messages would
    not be sent to a peer via SendMessages() before the handshake was complete, but
    messages could still be sent as a response to an incoming message.
    
    For example, if a peer had not yet sent a verack, we wouldn't notify it about
    new blocks, but we would respond to a PING with a PONG.
    
    This change makes the behavior straightforward: until we've received a verack,
    never send any message other than version/verack/reject.
    
    The behavior until a VERACK is received has always been undefined, this change
    just tightens our policy.
    
    This also makes testing much easier, because we can now connect but not send
    version/verack, and anything sent to us is an error.
    cbfc5a6728
  202. qa: mininode learns when a socket connects, not its first action 5b5e4f8330
  203. qa: Expose on-connection to mininode listeners 8650bbb660
  204. qa: add a test to detect leaky p2p messages
    This is certainly not exhaustive, but it's better than nothing. Adds checks
    for:
    
    - Any message received before sending a version
    - Any message received other than version/reject before sending a verack
    
    It also tries to goad the remote into sending a pong, address, or block
    announcement.
    d9434918d2
  205. Merge #9735: devtools: Handle Qt formatting characters edge-case in update-translations.py
    7179e7c qt: Periodic translations update (Wladimir J. van der Laan)
    5e903a5 devtools: Handle Qt formatting characters edge-case in update-translations.py (Wladimir J. van der Laan)
    ec66d06e6e
  206. Selectively suppress deprecation warnings 4b6ccccc16
  207. Merge #9682: Require timestamps for importmulti keys
    266a811 Use MTP for importmulti "now" timestamps (Russell Yanofsky)
    3cf9917 Add test to check new importmulti "now" value (Russell Yanofsky)
    442887f Require timestamps for importmulti keys (Russell Yanofsky)
    edc9e63c57
  208. Merge #9715: Disconnect peers which we do not receive VERACKs from within 60 sec
    66f861a Add a test for P2P inactivity timeouts (Matt Corallo)
    b436f92 qa: Expose on-connection to mininode listeners (Matt Corallo)
    8aaba7a qa: mininode learns when a socket connects, not its first action (Matt Corallo)
    2cbd119 Disconnect peers which we do not receive VERACKs from within 60 sec (Matt Corallo)
    b08656e343
  209. Merge #9720: net: fix banning and disallow sending messages before receiving verack
    d943491 qa: add a test to detect leaky p2p messages (Cory Fields)
    8650bbb qa: Expose on-connection to mininode listeners (Matt Corallo)
    5b5e4f8 qa: mininode learns when a socket connects, not its first action (Matt Corallo)
    cbfc5a6 net: require a verack before responding to anything else (Cory Fields)
    8502e7a net: parse reject earlier (Cory Fields)
    c45b9fb net: correctly ban before the handshake is complete (Cory Fields)
    e87ce95fbd
  210. Merge #9755: Bugfix: Qt/Options: Restore persistent "restart required" notice
    0b4f273 Bugfix: Qt/Options: Restore persistent "restart required" notice (Luke Dashjr)
    a441db01b5
  211. [trivial] Fix recently introduced typos in comments 0c9b9b7d64
  212. Merge #9553: Use z = std::max(x - y, 0) instead of z = x - y; if (z < 0) z = 0;
    a47da4b Use z = std::max(x - y, 0); instead of z = x - y; if (z < 0) z = 0; (practicalswift)
    4c69d683f2
  213. Merge #9108: Use importmulti timestamp when importing watch only keys (on top of #9682)
    a80f98b Use importmulti timestamp when importing watch only keys (Russell Yanofsky)
    a58370e Dedup nTimeFirstKey update logic (Russell Yanofsky)
    d8e8b06bd0
  214. wallet: Prevent "overrides a member function but is not marked 'override'" warnings
    Because it is used inconsistently at least version 5.4.0 of g++ to
    complains about methods that don't use override. There is two ways to go
    about this: remove override from the methods having it, or add it to the
    methods missing it. I chose the second.
    6c5427d24c
  215. Harden against mistakes handling invalid blocks
    Fixes a bug in AcceptBlock() in invoking CheckBlock() with incorrect
    arguments, and restores a call to CheckBlock() from ProcessNewBlock()
    as belt-and-suspenders.
    
    Updates the (overspecified) tests to match behavior.
    ba803efb68
  216. Merge #9758: Selectively suppress deprecation warnings
    4b6cccc Selectively suppress deprecation warnings (Jonas Schnelli)
    476cc47da0
  217. Merge #9756: Return error when importmulti called with invalid address.
    9acf25c Return error when importmulti called with invalid address. (Russell Yanofsky)
    7a93af8340
  218. Add missing cs_wallet lock that triggers new lock held assertion
    A new AssertLockHeld(cs_wallet) call was added in commit a58370e
    "Dedup nTimeFirstKey update logic" (part of PR #9108).
    
    The lock held assertion will fail when loading prexisting wallets files from
    before the #9108 merge that have watch-only keys.
    07afcd6379
  219. Merge #9765: Harden against mistakes handling invalid blocks
    ba803ef Harden against mistakes handling invalid blocks (Suhas Daftuar)
    1e92e041dd
  220. Merge #9764: wallet: Prevent "overrides a member function but is not marked 'override'" warnings
    6c5427d wallet: Prevent "overrides a member function but is not marked 'override'" warnings (Wladimir J. van der Laan)
    f8af89a918
  221. Merge #9771: Add missing cs_wallet lock that triggers new lock held assertion
    07afcd6 Add missing cs_wallet lock that triggers new lock held assertion (Russell Yanofsky)
    e43a58514d
  222. [Trivial] Update comments referencing main.cpp 00e623d0b8
  223. Merge #9763: [Trivial] Update comments referencing main.cpp
    00e623d [Trivial] Update comments referencing main.cpp (CryptAxe)
    8743320d6c
  224. [qa] Simplify import-rescan.py
    Get rid of partial functions so the test can be more easily extended to add
    more variants of imports with options that affect rescanning (e.g. different
    key timestamps).
    
    Also change the second half of the test to send /to/ the imported addresses,
    instead of /from/ the imported addresses. The goal of this part of the test was
    to confirm that the wallet would pick up new transactions after an import
    regardless of whether or not a rescan happened during the import. But because
    the wallet can only do this reliably for incoming transactions and not outgoing
    transactions (which require the wallet to look up transaction inputs) the test
    previously was less meaningful than it should have been.
    8be0866883
  225. [qa] Extend import-rescan.py to test specific key timestamps c28583d062
  226. [qa] Extend import-rescan.py to test imports on pruned nodes. 38d3e9ee59
  227. Merge #9675: Fix typo and spelling inconsistency in CONTRIBUTING.md
    36164fa Fix typo and spelling inconsistency in CONTRIBUTING.md (Koki Takahashi)
    afae75fd3d
  228. Use 2 hour grace period for key timestamps in importmulti rescans
    Gregory Maxwell <greg@xiph.org> pointed out the lack of grace period in
    https://github.com/bitcoin/bitcoin/pull/9490#issue-199407998.
    
    The importwallet RPC which uses key timestamps in a similar way already has a 2
    hour grace period.
    e662af3583
  229. Update nMinimumChainWork and defaultAssumeValid. 3f78e460ba
  230. Add two hour buffer to manual pruning 91fb506e0a
  231. Ensure `-maxsigcachesize` is in valid range
    - If the -maxsigcachesize parameter is set to zero, setup a minimum sized
    sigcache (2 elements) rather than segfaulting.
    - Handle maxsigcachesize being negative
    - Handle maxsigcachesize being too large
    55c403b8fe
  232. Merge #9777: Handle unusual maxsigcachesize gracefully
    55c403b Ensure `-maxsigcachesize` is in valid range (John Newbery)
    8dee822177
  233. Merge #9779: Update nMinimumChainWork and defaultAssumeValid.
    3f78e46 Update nMinimumChainWork and defaultAssumeValid. (Gregory Maxwell)
    3c02b95740
  234. Merge #9778: Add two hour buffer to manual pruning
    91fb506 Add two hour buffer to manual pruning (Alex Morcos)
    ad168ef4e3
  235. Merge #9761: Use 2 hour grace period for key timestamps in importmulti rescans
    e662af3 Use 2 hour grace period for key timestamps in importmulti rescans (Russell Yanofsky)
    38d3e9e [qa] Extend import-rescan.py to test imports on pruned nodes. (Russell Yanofsky)
    c28583d [qa] Extend import-rescan.py to test specific key timestamps (Russell Yanofsky)
    8be0866 [qa] Simplify import-rescan.py (Russell Yanofsky)
    9828f9a996
  236. build: bump version to 0.14.99
    Now that 0.14 branch has been split off, master is 0.14.99 (pre-0.15).
    
    Also clean out release notes.
    f87e8f5392
  237. Various review markups for rpc-tests.py improvements a6a3e58c48
  238. Make KEY_SIZE a compile-time constant 914fad155d
  239. Move BIP70_MAX_PAYMENTREQUEST_SIZE to header c801c82e25
  240. boost: remove iostreams includes
    They're unused and produce nasty deprecation warnings
    3301587dc5
  241. Merge #9785: Avoid variable length arrays
    c801c82 Move BIP70_MAX_PAYMENTREQUEST_SIZE to header (Pieter Wuille)
    914fad1 Make KEY_SIZE a compile-time constant (Pieter Wuille)
    df42bcdbfe
  242. Merge #9786: boost: remove iostreams includes
    3301587 boost: remove iostreams includes (Cory Fields)
    12f46fa7d8
  243. gitian: bump descriptors for master
    This was skipped for the 0.14 cycle.
    8e5cca027f
  244. Avoid VLA in hash.h 5c8fd50811
  245. Merge #9788: gitian: bump descriptors for master
    8e5cca0 gitian: bump descriptors for master (Cory Fields)
    50a226563c
  246. Merge #9744: Remove unused module from rpc-tests
    a432aa0 Remove unused module from rpc-tests (Takashi Mitsuta)
    8efd1c820b
  247. doc: Update manpages for master
    (cherry picked from commit 268c390d02d99a4a93a0a01221e273d2b9695ff7)
    eb4910193a
  248. Merge #9696: [trivial] Fix recently introduced typos in comments
    0c9b9b7 [trivial] Fix recently introduced typos in comments (practicalswift)
    aa5fa642b0
  249. Merge #9657: Improve rpc-tests.py
    a6a3e58 Various review markups for rpc-tests.py improvements (John Newbery)
    3de3ccd Refactor rpc-tests.py (John Newbery)
    afd38e7 Improve rpc-tests.py arguments (John Newbery)
    91bffff Use argparse in rpc_tests.py (John Newbery)
    1581ecb Use configparser in rpc-tests.py (John Newbery)
    7ff4a538a8
  250. Merge #9791: Avoid VLA in hash.h
    5c8fd50 Avoid VLA in hash.h (Pieter Wuille)
    1f9e904f45
  251. Merge #9795: doc: Update manpages for master (laanwj)
    eb49101 doc: Update manpages for master (Wladimir J. van der Laan)
    390a39bb5c
  252. fanquake closed this on Feb 20, 2017

  253. MarcoFalke locked this on Sep 8, 2021
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-17 00:15 UTC

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