0.11 #6913

pull nathanimpact wants to merge 123 commits into bitcoin:master from bitcoin:0.11 changing 262 files +11600 −4653
  1. nathanimpact commented at 12:52 AM on October 30, 2015: none

    No description provided.

  2. Bump version to 0.11 8e15efa76c
  3. qt: Periodic translation update 2be094eeba
  4. Fix off-by-one error w/ nLockTime in the wallet
    Previously due to an off-by-one error the wallet ignored
    nLockTime-by-height transactions that would be valid in the next block
    even though they are accepted into the mempool. The transactions
    wouldn't show up until confirmed, nor would they be included in the
    unconfirmed balance. Similar to the mempool behavior fix in 665bdd3b,
    the wallet code was calling IsFinalTx() directly without taking into
    account the fact that doing so tells you if the transaction could have
    been mined in the *current* block, rather than the next block.
    
    To fix this we strip IsFinalTx() of non-consensus-critical
    functionality, removing the default arguments, and add CheckFinalTx() to
    check if a transaction will be final in the next block.
    
    Github-Pull: #6183
    Rebased-From: 28bf06236d3b385e95fe26a7a742395b30efd6ee
    75a4d512cf
  5. Ignore getheaders requests when not synced.
    Rebased-From: a1ba0778dd3c784046dea334e5d39f37eca264f7
    Github-Pull: #6172
    b4bbad18ef
  6. build: disable optional use of gmp in internal secp256k1 build
    Until secp256k1 is used for verification there is no reason for Bitcoin
    Core's secp256k1 to link against gmp, even if available. Pass a flag to
    configure to override the bignum implementation.
    
    This fixes a crash at runtime on ppc64 reported by @gmaxwell.
    
    Github-Pull: #6210
    Rebased-From: 7fd5b801ff16d748b5ca13ded09ed5da8eacf7e7
    dfdb6dd052
  7. Remove P2SH coinbase flag, no longer interesting
    Github-Pull: #6203
    Rebased-From: d449772cf69c01932fc5d72c46054815d6300b3c
    c00ae64f77
  8. gitian: Bump cache dir for 0.11 7d4b5cbee3
  9. [OSX] revert renaming of Bitcoin-Qt.app
    Github-Pull: #6214
    Rebased-From: a2241eabfdbdadd2f96c0a538b9901257831b642
    4d435d1c9a
  10. OSX: use "Bitcoin Core" as Bundle Display Name
    Github-Pull: #6214
    Rebased-From: 0a32a9347e12a8d1d4a46bf9a1d5b3ae13bbe501
    6145fdf47e
  11. json: fail read_string if string contains trailing garbage
    Change `read_string` to fail when not the entire input has been
    consumed. This avoids unexpected, even dangerous behavior (fixes #6223).
    
    The new JSON parser adapted in #6121 also solves this problem so in
    master this is a temporary fix, but should be backported to older releases.
    
    Also adds tests for the new behavior.
    
    Github-Pull: #6226
    Rebased-From: 4e157fc60dae5ca69933ea4c1585a2a078b4d957
    5901596548
  12. osx: set min version to 10.7 for 0.11+
    Github-Pull: #6218
    Rebased-From: c3cdd7b31201e1f3f78f816d8456d04c00e06418
    ecdcf13ede
  13. gitian: bump faketime to something more recent
    This helps in file views where binaries are sorted by time
    
    Github-Pull: #6218
    Rebased-From: be656283f98896df0bc8634d446b2873f9fed573
    7a4304ecc7
  14. Merge pull request #6219
    7d4b5cb gitian: Bump cache dir for 0.11 (Cory Fields)
    666e973b2f
  15. Be stricter in processing unrequested blocks
    AcceptBlock will no longer process an unrequested block, unless it has not
    been previously processed and has more work than chainActive.Tip()
    
    Github-Pull: #5875
    Rebased-From: 9be0e6837b878f72bd087ce32b7a2f2ffb2fd544
    304892fc03
  16. P2P regression test for new AcceptBlock behavior
    Github-Pull: #5875
    Rebased-From: aa8c827968a68a3adc4df5f126635e37a71a7fbb
    2edec4fe68
  17. doc: update release notes 32b011781d
  18. Merge pull request #6238
    cfc600d Bugfix: Correct links for Xcode download (Luke Dashjr)
    053110ddcb
  19. Disable partition check for now, it triggers too often (issue #6251) 3eada74d6f
  20. configure: Detect (and reject) LibreSSL
    Rebased-From: a5a81f7354b3aa3e797d973a7e6840f0e50e6533
    Github-Pull: #6244
    0401aa2e8f
  21. Fix removing of orphan transactions
    We don't want to erase orphans that still have missing inputs, they should still be tracked as orphans.  Also, the transaction thats being accepted can't be an orphan otherwise it would have previously been accepted, so doesn't need to be added to the erase queue.
    
    Github-Pull: #5985
    Rebased-From: 14d4eef79931318cb5968f9154cf458d9f8d27fa
    37b4e425af
  22. Prune: Support noncontiguous block files
    In some corner cases, it may be possible for recent blocks to end up in
    the same block file as much older blocks.  Previously, the pruning code
    would stop looking for files to remove upon first encountering a file
    containing a block that cannot be pruned, now it will keep looking for
    candidate files until the target is met and all other criteria are
    satisfied.
    
    This can result in a noncontiguous set of block files (by number) on
    disk, which is fine except for during some reindex corner cases, so
    make reindex preparation smarter such that we keep the data we can
    actually use and throw away the rest.  This allows pruning to work
    correctly while downloading any blocks needed during the reindex.
    
    Rebased-From: c257a8c9a6397eee40734b235a4fdcb8045aec91
    Github-Pull: #6221
    6cb70ca4ee
  23. Remove translation for -help-debug options
    Github-Pull: #6264
    Rebased-From: 9b5659d1c4c62bc6b80e35ff7573c781835e4187
    94cd7051a3
  24. Fix getbalance *
    Chance "getbalance *" not to use IsTrusted.  The method and result
    now match the "getbalance <specific-account>" behavior. In
    particular, "getbalance * 0" now works.
    
    Also fixed a comment -- GetGalance has required 1 confirmation
    for many years, and the default "getbalance *" behavior matches
    that.
    
    Github-Pull: #6276
    Rebased-From: 7d6a85ab5b1dc96e0f3f6f835f27bb81ba2af919
    c9fd9078ce
  25. gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures
    Rather than fetching a signature.tar.gz from somewhere on the net, instruct
    Gitian to use a signature from a tag in the bitcoin-detached-sigs repository
    which corresponds to the tag of the release being built.
    
    This changes detached-sig-apply.sh to take a dirname rather than a tarball as
    an argument, though detached-sig-create.sh still outputs a tarball for
    convenience.
    
    Github-Pull: #6269
    Rebased-From: c110575a92ebe2e9a58b53d56aafa1f1ae37dbb2
    95aca44095
  26. Add option `-alerts` to opt out of alert system
    Make it possible to opt-out of the centralized alert system by providing
    an option `-noalerts` or `-alerts=0`. The default remains unchanged.
    
    This is a gentler form of #6260, in which I went a bit overboard by
    removing the alert system completely.
    
    I intend to add this to the GUI options in another pull after this.
    
    Github-Pull: #6274
    Rebased-From: 02a6702a82a5b00e0e0351041dd3267308b7f319
    4d9c7fe61d
  27. Use best header chain timestamps to detect partitioning
    The partition checking code was using chainActive timestamps
    to detect partitioning; with headers-first syncing, it should use
    (and with this pull request, does use) pIndexBestHeader timestamps.
    
    Fixes issue #6251
    
    Github-Pull: #6256
    Rebased-From: 65b94545036ae6e38e79e9c7166a3ba1ddb83f66
    fce474c9df
  28. translation update pre-rc2 2617b75e15
  29. Fix scheduler build with some boost versions.
    Some boost versions have a conflicting overload of wait_until that returns void.
    Explicitly use a template here to avoid hitting that overload.
    
    Github-Pull: #6285
    Rebased-From: 72bf90d770ce5b2653fd482928646cd6a9f5f6d7
    ef1d506054
  30. remove berkeley-db4 workaround
    "brew install berkeley-db4" appears to be working again.  simplified instructions by removing the berkeley-db4 workaround.
    
    Github-Pull: #6286
    Rebased-From: a3a80c253cdd0299f92b9e1ba9888f0f9421f245
    3902c15a03
  31. depends: fix Boost 1.55 build on GCC 5
    Boost assumes variadic templates are always available in GCC 4.4+, but
    they aren't since we don't build with -std=c++11.
    
    This applies the patch that fixed the issue in boost 1.57:
    https://github.com/boostorg/config/commit/eec808554936ae068b23df07ab54d4dc6302a695
    
    See also: https://svn.boost.org/trac/boost/ticket/10500
    
    Github-Pull: #6280
    Rebased-From: b19a88b2a0e7bd9ef603055bc8e1ef058673025d
    25c2216168
  32. doc: Update release notes for rc2 5f032c75ee
  33. Revert "Disable partition check for now, it triggers too often (issue #6251)"
    Re-enable partition check, it should be safe again after #6256.
    
    This reverts commit 3eada74d6f4720e650c67461c04c3aafdeaff21e.
    e6334f4aad
  34. doc: update mailing list address
    Move from sourceforge to linux foundation.
    
    Also get rid of some other stale mentions of sourceforge.
    
    Github-Pull: #6319
    Rebased-From: 88d8525ca2ff2afc171cd0f625a098371f3a6af5
    3f8fcc92b7
  35. gitian: add a gitian-win-signer descriptor
    This is exactly like the current OSX signing process.
    
    osslsigncode has been patched to detach and re-attach Windows signatures.
    The changes can be seen here: https://github.com/theuni/osslsigncode/commits/attach-signature
    
    There's a pull-request open upstream for the changes:
    https://sourceforge.net/p/osslsigncode/osslsigncode/merge-requests/3/
    
    This work has been back-ported to the stable 1.7.1 release of osslsigncode, so
    that a smaller patch can be reviewed.
    
    Github-Pull: #6303
    Rebased-From: d08cfc2bd752fdb1e8547f957f1c38275540df7a
    b7115995d7
  36. Add an alternate location of endian.h header
    Github-Pull: #6246
    Rebased-From: 0640a5eb60b06de61f873fd88ae0252f5a11c339
    8ea6d37aee
  37. fix crash on shutdown when e.g. changing -txindex and abort action
    - fixes #3136
    - the problem is related to Boost path and a static initialized internal
      pointer
    - using a std::string in CDBEnv::EnvShutdown() prevents the problem
    - this removes the boost::filesystem::path path field from CDBEnv
    
    Github-Pull: #6282
    Rebased-From: 0ce30eaa36295447c6e7f8d16a05798c746fe28a
    daf956b7b1
  38. doc: mention bitcoin-submittx example in release notes 88accef336
  39. Advance pindexLastCommonBlock for blocks in chainActive
    This prevents an edge case where a block downloaded and pruned
    in-between successive calls to FindNextBlocksToDownload could
    cause the block to be unnecessarily re-requested.
    
    Github-Pull: #6233
    Rebased-From: 3e9143386a90e508c8d41719294db11264f5f0a0
    a587606525
  40. Hardcoded seeds update June 2015
    - Moved all seed related scripts to contrib/seeds for consistency
    - Updated `makeseeds.py` to handle IPv6 and onions, fix regular
      expression for recent Bitcoin Core versions
    - Fixed a bug in `generate-seeds.py` with regard to IPv6 parsing
    
    Allow for non-8333 nodes to appear in the internal seeds. This will
    allow bitcoind to bypas a filter on 8333. This also makes it possible to
    use the same tool for e.g. testnet.
    
    As hosts with multiple nodes per IP are likely abusive, add a filter to
    remove these (the ASN check will take care of them for IPv4, but not
    IPv6 or onion).
    
    Github-Pull: #6333
    Rebased-From: ccd4369a23ca78cc348bc66a7a8c69a971ffcbf7 884454aebe9e20964643b70ff8c41f47709380bc b9329536cd8a6c152b41c9276f1def14b4d2442d
    41bbc85ec9
  41. gitian: make the windows signing process match OSX
    Github-Pull: #6354
    Rebased-From: a3ba9a553acefd567ccb304b8600d2149ffab9aa
    bdf0d94d45
  42. Ideal release process for Windows detached signing
    This is an ideal version of what the release process should look like,
    making it more consistent with the OS X process. Some of the changes
    described here would need to be made in the descriptors, which is somewhat
    beyond what I would feel comfortable doing, not really understanding the signature process in depth.
    
    [skip ci]
    
    Github-Pull: #6354
    Rebased-From: 6e849b8309558ec83710d86c0f784566996da58b
    bad1e8b358
  43. update release notes for 0.11.0rc3 afc60de416
  44. Merge pull request #6369
    dae0a89 assets-attribution: Update typicons to MIT license (Luke Dashjr)
    7bf37e19d2
  45. release notes for fee estimation changes 9a2469e1ce
  46. Merge pull request #6383
    9a2469e release notes for fee estimation changes (Alex Morcos)
    ebad618919
  47. Fix typo in release notes. 5460b24fed
  48. Merge pull request #6397
    5460b24 Fix typo in release notes. (spin)
    757ceaab0a
  49. doc: add important information about tx flood to release notes d26f951802
  50. doc: Remove recommendation to add old repos for libd4.8*
    It is unreasonable to ask to change the global package configuration
    just to build a package. Not only that, this is potentially harmful to the system.
    
    Also do a few punctuation fixes in REST-interface.md.
    
    Github-Pull: #6413
    Rebased-From: 9fbca205d4eaaf82be718b69c6533078aeb3081c
    d7101a6d31
  51. qt: define QT_NO_KEYWORDS
    QT_NO_KEYWORDS prevents Qt from defining the `foreach`, `signals`,
    `slots` and `emit` macros.
    
    Avoid overlap between Qt macros and boost - for example #undef hackiness
    in #6421.
    
    Conflicts:
    	src/qt/addressbookpage.cpp
    	src/qt/peertablemodel.cpp
    	src/qt/receivecoinsdialog.cpp
    	src/qt/rpcconsole.cpp
    
    Rebased-From: d29ec6c2301e593d577126d1ca85b93307b32bf1
    Github-Pull: #6433
    e092f22951
  52. qt: update forgotten emit to Q_EMIT in macdockiconhandler.mm
    Leftover from #6433
    
    Rebased-From: ce183dce2e13c23ed279f4d9dae281e8e5977ebd
    164966705a
  53. openssl: avoid config file load/race
    Github-Pull: #6438
    Rebased-From: d4b1d5a8baf18e4c8d62846360c0c1c0c9331d70
    253143860d
  54. Updated URL location of netinstall for Debian
    Github-Pull: #6439
    Rebased-From: 09d4ddf1c5841b757c2676d508a68baa2dbdc4c7
    980f820a92
  55. qt: periodic translations update ea5b5ddd7c
  56. Test whether created sockets are select()able
    Conflicts:
    	src/net.cpp
    
    Rebased-From: d422f9b1fdb42a51aadaa1bbc157542dca2feb17
    0095b9a1ff
  57. Fix warning introduced by #6412
    SOCKET are defined as unsigned integers, thus always >=0.
    
    Rebased-From: 89289d875da108c42ca013f33597eda46cb6eb53
    e8b87c8f78
  58. qt: Force TLS1.0+ for SSL connections
    Github-Pull: #6384
    Rebased-From: 15e26a6a9afe299b9ca6fced73b876644365879b
    8e5a96908a
  59. Depends: bump to qt 5.5
    Github-Pull: #6471
    Rebased-From: fe997dfd121e3d82464908940753b77ebf61a10d 5189fe3d88b7d0154758379a877533fe364dec87 ab67dd7818ff2d0910f3fd9bfca9412d85de4424 ecd6a89381a34d4bcd07593a2e377656d070a7ed 060b3d377b0a0d318f630beb7fe4d8f41b99981c
    92401c2d90
  60. Cache transaction validation successes
    Conflicts:
    	src/main.cpp
    	src/test/test_bitcoin.cpp
    
    Github-Pull: #6077
    Rebased-From: 17b11428c135203342aff38cabc8047e673f38ac 517e6dd25618522c716e64859554b0f29c6e65d0
    bc484ef8db
  61. Revert "Cache transaction validation successes"
    This reverts commit bc484ef8db02715e283e4cddd2c972316c0688dd.
    5c27f1247a
  62. Be even stricter in processing unrequested blocks
    Github-Pull: #6224
    Rebased-From: bfc30b34374d71928acee5ff41282f09cedfd5e4 6b1066fab41523d25d75b45a10e4b0f61d7c61d0 04b5d235f1560b8285591b963d3636f7ddf74563 59b49cd07482494d9a99068af502be9ceda41ed2
    93b606aee4
  63. consensus: cache the openssl EC_GROUP to avoid a race condition for each CECKey instantiation
    Github-Pull: #6571
    Rebased-From: 1d1073c2d3231a9de4adbc2bc46846fc20b34f9e
    100ac4e185
  64. Do not store more than 200 timedata samples.
    Github-Pull: #6545
    Rebased-From: 8be371db340b03dc03142c1bb3390fdfc84f56b4
    649f5d9c11
  65. travis: for travis generating an extra build 1f4d7cf20b
  66. Add autogen.sh to source tarball. a37567dd44
  67. tests: Remove old sh-based test framework
    This removes the `conflictedbalance.sh` test as well, but that test has
    been broken for a long time and isn't part of any scripts.
    What it does is, IMO, sufficiently tested by other tests.
    49c6a64202
  68. Remove bash test note from rpc-tests readme a496e11d7c
  69. locking: fix a few small issues uncovered by -Wthread-safety
    - rpcwallet: No need to lock twice here
    - openssl: Clang doesn't understand selective lock/unlock here. Ignore it.
    - CNode: Fix a legitimate (though very unlikely) locking bug.
    60457d3c2f
  70. Avoid leaking file descriptors in RegisterLoad
    This is pretty trivial, but if there's an error here we'll leak a file
    descriptor. Changed it to always close the file.
    f6355e6918
  71. build: fix libressl detection
    Checking libcrypto for a function after we've already found a (possibly
    different) libcrypto is not what we want to do here.
    
    pkg-config might've found a cross lib while AC_CHECK_LIB may find a different
    or native one.
    
    Run a link-test against the lib that's already been found instead.
    5a3913361d
  72. Make sure LogPrintf strings are line-terminated
    Fix the cases where LogPrint[f] was accidentally called without line
    terminator, which resulted in concatenated log lines.
    
    (see e.g. #6492)
    7ff9d122e4
  73. Make sure LogPrint strings are line-terminated e0020d4c44
  74. Delay initial pruning until after wallet init
    Don't prune until any wallet rescanning has taken place to avoid
    potentially pruning blocks that the wallet rescan may need.
    e6adac7b3f
  75. Use unique name for AlertNotify tempfile f6d29a6ca8
  76. Handle no chain tip available in InvalidChainFound()
    Handle the case where no chain tip is available, in InvalidChainFound(). This fixes a null pointer deference when running unit tests, if the genesis block or block validation code is broken.
    4a3741028e
  77. Fix race condition on test node shutdown c5b89fe44e
  78. Handle leveldb::DestroyDB() errors on wipe failure
    Add error checking to CLevelDBWrapper for errors from
    leveldb::DestroyDB().  Without it, if unlink() or DeleteFileW() fail to
    delete files, they will fail silent.  If they fail to delete any files,
    CLevelDBWrapper will silently open and read the existing database.
    
    Typically any permissions issues would be caught by leveldb as it churns
    through many files as part of its compaction process, but it is
    conceivable that this could cause problems on Windows with anti-virus
    and indexing software.
    f171fee035
  79. Add missing files to files.md
    typo
    48770534a6
  80. Make sure we re-acquire lock if a task throws 626c5e6936
  81. Replace boost::reverse_lock with our own. 6b51b9b195
  82. Fix masking of irrelevant bits in address groups. 13642a50eb
  83. add unit test for CNetAddr::GetGroup. 1f6772e9f0
  84. net: Set SO_REUSEADDR for Windows too
    When running the rpc tests in Wine, nodes often fail to listen on localhost
    due to a stale socket from a previous run. This aligns the behavior with other
    platforms.
    ccc4ad6c4d
  85. rpc-tests: re-enable rpc-tests for Windows 13bd5a75b5
  86. add support for miniupnpc api version 14
    The value of new arg ttl is set to 2 as it's recommended default.
    21c406eda0
  87. PARTIAL: typofixes (found by misspell_fixer)
    Upstream: 9f68ed6b6d1a9c6436ce37913666165f2b180ee3 (PR #6539)
    45bfa137ef
  88. [QT] fix thin space word wrap line brake issue
    The thin space QT html hack results in cut-off chars/nums after a line break.
    
    Avoid word wrap line breaks by using a smaller font and a line break before each alternative value)
    
    Rebased-From: 24cb7c7bbba224dcb73fcf69296f5ef4734f745f
    Github-Pull: #6694
    834e299564
  89. Merge pull request #6703
    45bfa13 PARTIAL: typofixes (found by misspell_fixer) (Veres Lajos)
    21c406e add support for miniupnpc api version 14 (Pavel Vasin)
    13bd5a7 rpc-tests: re-enable rpc-tests for Windows (Cory Fields)
    ccc4ad6 net: Set SO_REUSEADDR for Windows too (Cory Fields)
    1f6772e add unit test for CNetAddr::GetGroup. (Alex Morcos)
    13642a5 Fix masking of irrelevant bits in address groups. (Alex Morcos)
    6b51b9b Replace boost::reverse_lock with our own. (Casey Rodarmor)
    626c5e6 Make sure we re-acquire lock if a task throws (Casey Rodarmor)
    4877053 Add missing files to files.md (fanquake)
    f171fee Handle leveldb::DestroyDB() errors on wipe failure (Adam Weiss)
    c5b89fe Fix race condition on test node shutdown (Casey Rodarmor)
    4a37410 Handle no chain tip available in InvalidChainFound() (Ross Nicoll)
    f6d29a6 Use unique name for AlertNotify tempfile (Casey Rodarmor)
    e6adac7 Delay initial pruning until after wallet init (Adam Weiss)
    e0020d4 Make sure LogPrint strings are line-terminated (J Ross Nicoll)
    7ff9d12 Make sure LogPrintf strings are line-terminated (Wladimir J. van der Laan)
    5a39133 build: fix libressl detection (Cory Fields)
    f6355e6 Avoid leaking file descriptors in RegisterLoad (Casey Rodarmor)
    60457d3 locking: fix a few small issues uncovered by -Wthread-safety (Cory Fields)
    a496e11 Remove bash test note from rpc-tests readme (fanquake)
    49c6a64 tests: Remove old sh-based test framework (Wladimir J. van der Laan)
    a37567d Add autogen.sh to source tarball. (randy-waterhouse)
    1f4d7cf travis: for travis generating an extra build (Cory Fields)
    1cd7952dde
  90. qt: periodic translation update 8a915e56f4
  91. Add uint256 support to CRollingBloomFilter
    (cherry picked from commit bbe41088c61f2ad328766e851ffe6169aa80935a)
    2983fe0484
  92. Reuse vector hashing code for uint256
    (cherry picked from commit a3d65fedaa18686f0cc007d0a13dba6545250300)
    25cf1220e6
  93. Make CRollingBloomFilter set nTweak for you
    While CBloomFilter is usually used with an explicitly set nTweak,
    CRollingBloomFilter is only used internally. Requiring every caller to
    set nTweak is error-prone and redundant; better to have the class handle
    that for you with a high-quality randomness source.
    
    Additionally when clearing the filter it makes sense to change nTweak as
    well to recover from a bad setting, e.g. due to insufficient randomness
    at initialization, so the clear() method is replaced by a reset() method
    that sets a new, random, nTweak value.
    
    (cherry picked from commit d2d7ee0e863b286e1c9f9c54659d494fb0a7712d)
    83671efe99
  94. Only use randomly created nonces in CRollingBloomFilter.
    (cherry picked from commit d741371d7d27e228aa64c618c50b23fb5449c3e1)
    6eed52e05b
  95. Keep track of recently rejected transactions
    Nodes can have divergent policies on which transactions they will accept
    and relay.  This can cause you to repeatedly request and reject the same
    tx after its inved to you from various peers which have accepted it.
    Here we add rolling bloom filter to keep track of such rejections,
    clearing the filter every time the chain tip changes.
    
    Credit goes to Alex Morcos, who created the patch that this code is
    based on.
    
    Original code by Peter Todd. Refactored to not construct the
    filter at startup time by Pieter Wuille.
    
    (cherry picked from commit 0847d9cb5fcd2fdd5a21bde699944d966cf5add9)
    ec9b6c33e8
  96. Move recentRejects initialization to top of InitBlockIndex
    This avoids that premature return in the condition that a new chain is initialized
    results in NULL pointer errors due to recentReject not being constructed.
    
    Also add assertions where it is used.
    
    (cherry picked from commit a8d0407c4fcf7c4e8ed0e8edabd204f7a4efa477)
    5094a81d3b
  97. Merge pull request #6750
    5094a81 Move recentRejects initialization to top of InitBlockIndex (Wladimir J. van der Laan)
    ec9b6c3 Keep track of recently rejected transactions (Peter Todd)
    6eed52e Only use randomly created nonces in CRollingBloomFilter. (Pieter Wuille)
    83671ef Make CRollingBloomFilter set nTweak for you (Peter Todd)
    25cf122 Reuse vector hashing code for uint256 (Pieter Wuille)
    2983fe0 Add uint256 support to CRollingBloomFilter (Peter Todd)
    5ed8d0b37e
  98. Test LowS in standardness, removes nuisance malleability vector.
    This adds SCRIPT_VERIFY_LOW_S to STANDARD_SCRIPT_VERIFY_FLAGS which
     will make the node require the canonical 'low-s' encoding for
     ECDSA signatures when relaying or mining.
    
    Consensus behavior is unchanged.
    
    The rational is explained in a81cd96805ce6b65cca3a40ebbd3b2eb428abb7b:
     Absent this kind of test ECDSA is not a strong signature as given
     a valid signature {r, s} both that value and {r, -s mod n} are valid.
     These two encodings have different hashes allowing third parties a
     vector to change users txids.  These attacks are avoided by picking
     a particular form as canonical and rejecting the other form(s); in
     the of the LOW_S rule, the smaller of the two possible S values is
     used.
    
    If widely deployed this change would eliminate the last remaining
     known vector for nuisance malleability on boring SIGHASH_ALL
     p2pkh transactions.  On the down-side it will block most
     transactions made by sufficiently out of date software.
    
    Unlike the other avenues to change txids on boring transactions this
     one was randomly violated by all deployed bitcoin software prior to
     its discovery.  So, while other malleability vectors where made
     non-standard as soon as they were discovered, this one has remained
     permitted.  Even BIP62 did not propose applying this rule to
     old version transactions, but conforming implementations have become
     much more common since BIP62 was initially written.
    
    Bitcoin Core has produced compatible signatures since a28fb70e in
     September 2013, but this didn't make it into a release until 0.9
     in March 2014; Bitcoinj has done so for a similar span of time.
     Bitcoinjs and electrum have been more recently updated.
    
    This does not replace the need for BIP62 or similar, as miners can
     still cooperate to break transactions.  Nor does it replace the
     need for wallet software to handle malleability sanely[1]. This
     only eliminates the cheap and irritating DOS attack.
    
    [1] On the Malleability of Bitcoin Transactions
    Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Ɓukasz Mazurek
    http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
    
    Rebased-From: b196b685c9089b74fd4ff3d9a28ea847ab36179b
    Github-Pull: #6769
    71cc9d9fe8
  99. Make CScriptNum() take nMaxNumSize as an argument
    While the existing numeric opcodes are all limited to 4-byte bignum
    arguments, new opcodes will need different limits.
    
    Rebased-From: 99088d60d8a7747c6d1a7fd5d8cd388be1b3e138
    684636ba67
  100. Move LOCKTIME_THRESHOLD to src/script/script.h
    Will now be needed by CHECKLOCKTIMEVERIFY code.
    
    Rebased-From: 48e9c57cf06352f890eac4285ae022d8746cf3fd
    6ec08db338
  101. Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65)
    <nLockTime> CHECKLOCKTIMEVERIFY -> <nLockTime>
    
    Fails if tx.nLockTime < nLockTime, allowing the funds in a txout to be
    locked until some block height or block time in the future is reached.
    
    Only the logic and unittests are implemented; this commit does not have
    any actual soft-fork logic in it.
    
    Thanks to Pieter Wuille for rebase.
    
    Credit goes to Gregory Maxwell for the suggestion of comparing the
    argument against the transaction nLockTime rather than the current
    time/blockheight directly.
    
    Rebased-From: bc60b2b4b401f0adff5b8b9678903ff8feb5867b
    4fa7a048d1
  102. Enable CHECKLOCKTIMEVERIFY as a standard script verify flag
    Transactions that fail CLTV verification will be rejected from the
    mempool, making it easy to test the feature. However blocks containing
    "invalid" CLTV-using transactions will still be accepted; this is *not*
    the soft-fork required to actually enable CLTV for production use.
    
    Rebased-From: ffd75adce01a78b3461b3ff05bcc2b530a9ce994
    6ea5ca4b4e
  103. Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic
    Based on the earlier BIP66 soft-fork logic implemented by Pieter
    Wuille's 5a47811da5158df763aa2fca09ce646ee0c51e7b
    
    Rebased-From: 287f54fc90c29301faede8d4ac2ea24a91441917
    5e82e1c8f5
  104. Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork
    bip65-cltv.py is based on the earlier BIP66 soft-fork RPC test
    implemented by Pieter Wuille's 819bcf9b9902319176cdb1d476cacfee9b3727ec
    
    bip65-cltv-p2p.py is based on the earlier BIP66 P2P test by Suhas
    Daftuar's d76412b068d95454732aa3def95decf35251759a
    
    Rebased-From: 308257856099e82e91881ba97f741d840184727c
    c5a27f4fb3
  105. CLTV: Add more tests to improve coverage
    Four cases included:
    
    * The CLTV operand type mismatches the tx locktime. In the script it is
      1 (interpreted as block height), but in the tx is 500000000
      (interpreted as date)
    * The stack is empty when executing OP_CLTV
    * The tx is final by having only one input with MAX_INT sequence number
    * The operand for CLTV is negative (after OP_0 OP_1 OP_SUB)
    
    Rebased-From: cb54d17355864fa08826d6511a0d7692b21ef2c9
    70a427b2b5
  106. Show softfork status in getblockchaininfo
    Rebased-From: 5ed10793c2df970d07cecd760c42205e68779e83
    ba1da90b33
  107. Add BIP65 to getblockchaininfo softforks list
    Rebased-From: 54a200ac9ad8909303ccf1ac49c291e0c2b5fb23
    6af25b0f64
  108. In (strCommand == "tx"), return if AlreadyHave()
    The main effect is to exit processing for recently-rejected hashes,
    in case they are pushed to us without prior advertisement.  This
    behavior was seen in the wild.
    
    An additional effect is to do early checks for mempool or mapOrphan
    existence.  No logging or nDoS tracking is needed for failures of
    these checks.
    36f14bf2e7
  109. Update miniupnpc to 1.9.20151008
    This version of miniupnpc fixes a buffer overflow in the XML (ugh)
    parser during initial network discovery.
    
    http://talosintel.com/reports/TALOS-2015-0035/
    
    The commit fixing the vulnerability is:
    https://github.com/miniupnp/miniupnp/commit/79cca974a4c2ab1199786732a67ff6d898051b78
    
    Reported by timothy on IRC.
    
    Github-Pull: 6789
    Rebased-From: 0cca0248f030ea32bd8de778b5a2782e0d191978
    b4ad73f706
  110. Merge pull request #6785
    36f14bf In (strCommand == "tx"), return if AlreadyHave() (Tom Harding)
    b4dc33e9fb
  111. doc: Update release notes for 0.11.1 04d0c27fb0
  112. qt: Update translations before 0.11.1 d7d87a1db1
  113. doc: #6077 was reverted, don't mention in release notes
    Reported by sipa
    17ea542aa6
  114. Bump version to 0.11.1 717152ccba
  115. net: Disable upnp by default
    Common sentiment is that the miniupnpc codebase likely contains further
    vulnerabilities.
    
    I'd prefer to get rid of the dependency completely, but a compromise for
    now is to at least disable it by default.
    
    Github-Pull: #6795
    Rebased-From: 21d27ebad5721bc61c62bc72dc3ab3197f9da268
    4dbcec03ab
  116. Bump minrelaytxfee default
    To bridge the time until a dynamic method for determining this fee is
    merged.
    
    This is especially aimed at the stable releases (0.10, 0.11) because
    full mempool limiting, as will be in 0.12, is too invasive and risky to
    backport.
    
    Github-Pull: #6793
    Rebased-From: 28e3249e53b8ef7516636df0f1406466a513095d 4e2efb3c5fde4b1e332cc032e3dc4082ec4e3cac
    e7bcc4aac3
  117. doc: update release notes for 0.11.1rc2 dad3e98e8f
  118. doc: Add Luke Dashjr to credits in release notes
    Somehow missed...
    cf33f196e7
  119. Add historical release notes for October 2015 bugfix releases
    [skip ci]
    
    Rebased-From: d57586f91c6cfe7480ae87b81a041009776a33af
    Github-Pull: #6832
    09a00a1f7f
  120. build: make sure OpenSSL heeds noexecstack
    This passes `-Wa,--noexecstack` to the assembler when building
    platform-specific assembly files, to signal that a non-executable stack
    can be used. This is the same approach as used by Debian
    (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430583)
    
    Rebased-From: bfcdc21a5da25ec1aa4aecc4cd8960dfa1c11781
    Github-Pull: #6852
    21e58b8e35
  121. Make fee aware of min relay in pruning.py RPC test
    Rebased-From: b6d5e32e0e5b038c6ff7e2ab5221b10727722341
    Github-Pull: #6841
    072032448b
  122. Set TCP_NODELAY on P2P sockets.
    Nagle appears to be a significant contributor to latency now that the static
     sleeps are gone.  Most of our messages are relatively large compared to
     IP + TCP so I do not expect this to create enormous overhead.
    
    This may also reduce traffic burstyness somewhat.
    
    Conflicts:
    	src/net.cpp
    
    Rebased-From: a4e28b3d1e5c95eb0c87f144851cd65048c3e0bc
    Github-Pull: #6867
    95a50390e1
  123. Merge pull request #6707
    6af25b0 Add BIP65 to getblockchaininfo softforks list (Peter Todd)
    ba1da90 Show softfork status in getblockchaininfo (Wladimir J. van der Laan)
    70a427b CLTV: Add more tests to improve coverage (Esteban Ordano)
    c5a27f4 Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork (Peter Todd)
    5e82e1c Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic (Peter Todd)
    6ea5ca4 Enable CHECKLOCKTIMEVERIFY as a standard script verify flag (Peter Todd)
    4fa7a04 Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) (Peter Todd)
    6ec08db Move LOCKTIME_THRESHOLD to src/script/script.h (Peter Todd)
    684636b Make CScriptNum() take nMaxNumSize as an argument (Peter Todd)
    fc7f0ee28c
  124. Do not allow blockfile pruning during reindex.
    Also clarify startup message.
    
    Github-Pull: #6856
    Rebased-From: d3b09f6bac738958b6bf5711bcb5291049b7466d
    dfe55bdc32
  125. laanwj closed this on Oct 30, 2015

  126. DrahtBot 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-29 03:16 UTC

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