Update libsecp256k1 and remove GMP dependency #5425

pull sipa wants to merge 7486 commits into bitcoin:master from sipa:secp changing 1086 files +287572 −464
  1. sipa commented at 1:24 PM on December 4, 2014: member

    No description provided.

  2. Merge pull request #5225
    369be58 doc: Correct several typos in bootstrap.md (sandakersmann)
    9ea87f9e18
  3. Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true. 9ec75c5ef4
  4. Make sure that GetRandomBytes never fails
    We're using GetRandomBytes in several contexts where it's either
    unwieldy to return an error, or an error would mean a fatal exception
    anyhow.
    
    @gmaxwell checked OpenSSL a while ago and discovered that it never
    actually fails, but it can't hurt to be a bit paranoid here.
    65e3a1e762
  5. gather_inputs: use correct variable in error message
    "amount" and "fee" do not exist (anymore?).
    5e2dcaebc4
  6. Do not use third party services for IP detection.
    This is a simplified re-do of closed pull #3088.
    
    This patch eliminates the privacy and reliability problematic use
    of centralized web services for discovering the node's addresses
    for advertisement.
    
    The Bitcoin protocol already allows your peers to tell you what
    IP they think you have, but this data isn't trustworthy since
    they could lie. So the challenge is using it without creating a
    DOS vector.
    
    To accomplish this we adopt an approach similar to the one used
    by P2Pool: If we're announcing and don't have a better address
    discovered (e.g. via UPNP) or configured we just announce to
    each peer the address that peer told us. Since peers could
    already replace, forge, or drop our address messages this cannot
    create a new vulnerability... but if even one of our peers is
    giving us a good address we'll eventually make a useful
    advertisement.
    
    We also may randomly use the peer-provided address for the
    daily rebroadcast even if we otherwise have a seemingly routable
    address, just in case we've been misconfigured (e.g. by UPNP).
    
    To avoid privacy problems, we only do these things if discovery
    is enabled.
    845c86d128
  7. Merge pull request #5210
    1f84793 Avoid a bunch of copying/conversion in script/sign (Pieter Wuille)
    7b7c866160
  8. Adding license. a8a5e0133a
  9. Adding const. 38c62aec0d
  10. Make comments in /src/script doxygen compatible b9a36b15bf
  11. Merge pull request #5249
    38c62ae Adding const. (sinetek)
    5406f61373
  12. Do signature-s negation inside the tests
    To avoid the need for libsecp256k1 to expose such functionality.
    f4e0aefadc
  13. Merge pull request #5239
    65e3a1e Make sure that GetRandomBytes never fails (Wladimir J. van der Laan)
    33d5ee6830
  14. Merge pull request #5246
    a8a5e01 Adding license. (sinetek)
    af3ec17f67
  15. Don't show wallet options in the preferences menu when running with -disablewallet d52f072605
  16. Merge pull request #5245
    d52f072 Don't show wallet options in the preferences menu when running with -disablewallet (sinetek)
    83f5daf2fe
  17. Add unauthenticated HTTP REST interface to public blockchain data. e2655e0ab1
  18. Reset setBlockIndexCandidates once block index db loaded cca48f69b0
  19. Merge pull request #5240
    5e2dcae gather_inputs: use correct variable in error message (dexX7)
    7ffb880775
  20. Merge pull request #5161
    845c86d Do not use third party services for IP detection. (Gregory Maxwell)
    0c7862e968
  21. Merge pull request #5256
    f4e0aef Do signature-s negation inside the tests (Pieter Wuille)
    60672a61ff
  22. travis: install less packages from apt-get 096efc5812
  23. travis: attempt to fix unlikely build issue
    This is a long chain of errors, and there are likely other changes that could
    be made to cope in other places along that chain.
    
    If depends don't build successfully, don't bother trying again for the sake of
    better logging. That's likely to hurt more than help. In this case, qt build
    failed, and on the second attempt, it appeared to be successful. However, due
    to a bad object from an internal gcc error on the first build, the resulting
    lib was unusable. This caused bitcoin-qt to not be built, and tests and
    packaging which expected bitcoin-qt to be there failed.
    
    The root cause:
    Mingw is especially crashy when using -jX, likely compounded by low-memory
    environments. I've seen multiple problems with this combo in Gitian as well.
    
    In this case:
    i686-w64-mingw32-g++: internal compiler error: Killed (program cc1plus)
    ...
    make[3]: *** [.obj/release/qdrawhelper.o] Error 4
    
    The workaround:
    Bump Travis down to using -j2 by default. Additionaly, enable --with-gui for
    the windows builds. This will cause configure to fail if qt is not working
    while also testing the config flag.
    
    Other failures which may be worth revisiting separately:
    - If a depends package fails, maybe remove the workdir so that it doesn't taint
      subsequent runs
    - See if there's anything repeatable about the ICE when building qt
    560e99636c
  24. depends: cleanup better after qt and force a bump
    qt needs to be rebuilt for travis. The previous commit should help ensure that
    this won't need to be done again.
    187739006c
  25. travis: temporarily disable the forknotify test
    It appears to be breaking randomly on Windows
    c8b115e20b
  26. Merge pull request #5268
    c8b115e travis: temporarily disable the forknotify test (Cory Fields)
    1877390 depends: cleanup better after qt and force a bump (Cory Fields)
    560e996 travis: attempt to fix unlikely build issue (Cory Fields)
    15bcc7055d
  27. Merge pull request #5203
    0d91ae3 The first thing that SelectParams does is call SelectBaseParams. Therefore, we do not need to call SelectBaseParams immediately prior to calling SelectParams. (mruddy)
    ed98a6284b
  28. Win32: log addresses found in Discover() calls 8fa0494e92
  29. Win32: change buffer size for gethotsname in Discover()
    - 256 byte is the maximum, as per
      http://msdn.microsoft.com/en-us/library/windows/desktop/ms738527%28v=vs.85%29.aspx
    cd4d3f1915
  30. Merge pull request #5252
    b9a36b1 Make comments in /src/script doxygen compatible (Michael Ford)
    6c5c06eff7
  31. Merge pull request #5198
    1c0aa91 Update serialize comments to be doxygen compatible (Michael Ford)
    3d3ce7421e
  32. don't override dir() in qa rpc tests
    Replace "dir" with "dirname" in util.py in qa/rpc-tests/ because "dir"
    is the name of a function in python.
    a7af9839d6
  33. Optimize -regtest setgenerate block generation
    Speed up generating blocks in regression test mode, by moving
    block-creating and nonce-finding directly into the setgenerate
    RPC call (instead of starting up a mining thread and waiting for
    it to find a block).
    
    This makes the forknotify RPC test three times quicker, for
    example (10 seconds runtime instead of 30 seconds, assuming
    the initial blockchain cache is already built).
    18379875bf
  34. script: create sane error return codes for script validation and remove logging
    Attempt to codify the possible error statuses associated with script
    validation. script/types.h has been created with the expectation that it will
    be part of the public lib interface. The other flag enums will be moved here in
    a future commit.
    
    Logging has also been removed in order to drop the dependency on core.h. It can
    be re-added to bitcoind as-needed. This makes script verification finally free
    of application state and boost!
    ab9edbd6b6
  35. script: check ScriptError values in script tests 219a1470c4
  36. [Qt] Fix height of BitcoinAmountField 7335ca1a05
  37. [docs] Add mini-"howto" using Qt Creator (osx) 6c8c704bb4
  38. Fix typo in listreceivedbyaddress and listaccounts help text 5617267cd5
  39. Bugfix: Clarify coin control dialog labels 4ff81d6092
  40. Coin Control: Make list mode default 5d60b694e9
  41. Update bash-completion for v0.10
    * Support new rpc commands.
    * Several commands now take an optional boolean includeWatchonly argument.
    * "help" now has section headers, ignore them when compiling list of commands.
    7ab43583b0
  42. Update comments in txmempool to be doxygen compatible
    Fix typo in Read() error message
    7329fdd1ba
  43. Update comments in util to be doxygen compatible c63a73d18a
  44. Merge pull request #5287
    7335ca1 [Qt] Fix height of BitcoinAmountField (Cozz Lovan)
    19f2aa9487
  45. [OSX, docs] update some release build informations
    - switching release builds to 10.7
    - release binary looks like 64bit only
    - tested up to 10.10
    - gitian builder builds against 10.7. The docs should be consistant.
    - remove 32bit text because nowadays it's obvious to support 64bit only on OSX.
    409e9ef04c
  46. Merge pull request #5282
    a7af983 don't override dir() in qa rpc tests (Bryan Bishop)
    09481eec88
  47. [Qt, OSX] QProgressBar CPU-Issue workaround
    fixes #5295
    6093aa1bb0
  48. Merge pull request #5275
    1837987 Optimize -regtest setgenerate block generation (Gavin Andresen)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    d6479ffc6a
  49. regression test only setmocktime RPC call a8b2ce557d
  50. Merge pull request #5292
    7329fdd Update comments in txmempool to be doxygen compatible (Michael Ford)
    47cb3606a3
  51. Merge pull request #5289
    5617267 Fix typo in listreceivedbyaddress and listaccounts  help text (Michael Ford)
    dbbe00f008
  52. Merge pull request #5293
    c63a73d Update comments in util to be doxygen compatible (Michael Ford)
    1f0436f8cb
  53. Merge pull request #5237
    2db4c8a Fix node ranges in the test framework. (Daniel Kraft)
    20e4f654f5
  54. RPC tests: create initial chain with specific timestamps
    Use setmocktime to create the initial block chain with
    10-minute-apart-blocks starting 1 Jan 2014.
    daf03e7c92
  55. travis: disable rpc tests for windows until they're not so flaky 3c30f27f34
  56. Merge pull request #5212
    219a147 script: check ScriptError values in script tests (Cory Fields)
    ab9edbd script: create sane error return codes for script validation and remove logging (Cory Fields)
    8adf457047
  57. Discourage NOPs reserved for soft-fork upgrades
    NOP1 to NOP10 are reserved for future soft-fork upgrades. In the event
    of an upgrade such NOPs have *VERIFY behavior, meaning that if their
    arguments are not correct the script fails. Discouraging these NOPs by
    rejecting transactions containing them from the mempool ensures that
    we'll never accept transactions, nor mine blocks, with scripts that are
    now invalid according to the majority of hashing power even if we're not
    yet upgraded. Previously this wasn't an issue as the IsStandard() rules
    didn't allow upgradable NOPs anyway, but 7f3b4e95 relaxed the
    IsStandard() rules for P2SH redemptions allowing any redeemScript to be
    spent.
    
    We *do* allow upgradable NOPs in scripts so long as they are not
    executed. This is harmless as there is no opportunity for the script to
    be invalid post-upgrade.
    03914234b3
  58. [Qt, OSX] fix usage of osx 10.8+ user notification center
    Currently Bitcoin-Qts support for OSX User Notification Center is broken. This pull will fix a known issue of non-official-apple-built apps having problems sending user notifications.
    a7f2941068
  59. Merge pull request #5297
    096efc5 travis: install less packages from apt-get (Cory Fields)
    3c1e10b161
  60. Merge pull request #5290
    5d60b69 Coin Control: Make list mode default (Luke Dashjr)
    4ff81d6 Bugfix: Clarify coin control dialog labels (Luke Dashjr)
    27b2288f33
  61. Merge pull request #2844 9445b876bd
  62. HTTP REST: minor fixes
    1) const-ify internal helper ParseHashStr()
    
    2) use HTTPError() helper when returning HTTP_NOT_FOUND
    7715c84747
  63. Properly lock cs_main in rest_block e2f30d547f
  64. Delete src/secp256k1 before subtree import 7a7e109139
  65. Merge commit 'd48555b36ac512161b81f9b6bca7bea16a0cd806' as 'src/secp256k1' 2245a95ce8
  66. Always build and link libsecp256k1 07a9901703
  67. Do not use EC code in global constructors 4c97c64bf6
  68. Use libsecp256k1 in key.cpp dffb8f81b8
  69. Don't use bashisms in configure cf61b5441b
  70. depends: add gmp package ff1e5ba8c7
  71. depends: quit exporting in config.site 54566de29d
  72. build: fixup configure to not export anything 0dc8613864
  73. build: secp256k1 as a subdir, since it's required 4300876c81
  74. revert part of 9eda1620b
    This probably would've broken native OSX builds
    f9e40fb075
  75. Merge pull request #5301 e3560029ce
  76. Abstract context-dependent block checking from acceptance a48f2d6ddd
  77. CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock 4ea1be7fb8
  78. TestBlockValidity function for CBlock proposals (used by CreateNewBlock) df08a626e0
  79. miner_tests: Disable checkpoints so they don't fail the subsidy-change test 132ea9b48f
  80. Abstract DecodeHexBlk and BIP22ValidationResult functions out of submitblock 3dcbb9b6b4
  81. Merge pull request #5280
    3c30f27 travis: disable rpc tests for windows until they're not so flaky (Cory Fields)
    daf03e7 RPC tests: create initial chain with specific timestamps (Gavin Andresen)
    a8b2ce5 regression test only setmocktime RPC call (Gavin Andresen)
    fd3777b0b2
  82. Merge pull request #5291
    7ab4358 Update bash-completion for v0.10 (Christian von Roques)
    3b4c7cdfc3
  83. Merge pull request #5300
    a7f2941 [Qt, OSX] fix usage of osx 10.8+ user notification center (Jonas Schnelli)
    5716808ca7
  84. Merge pull request #5279
    6c8c704 [docs] Add mini-"howto" using Qt Creator (osx) (Jonas Schnelli)
    bf217e3adc
  85. Merge pull request #5220
    f9e40fb revert part of 9eda1620b (Cory Fields)
    4300876 build: secp256k1 as a subdir, since it's required (Cory Fields)
    0dc8613 build: fixup configure to not export anything (Cory Fields)
    54566de depends: quit exporting in config.site (Cory Fields)
    ff1e5ba depends: add gmp package (Cory Fields)
    cf61b54 Don't use bashisms in configure (Pieter Wuille)
    dffb8f8 Use libsecp256k1 in key.cpp (Pieter Wuille)
    4c97c64 Do not use EC code in global constructors (Pieter Wuille)
    07a9901 Always build and link libsecp256k1 (Pieter Wuille)
    d48555b Squashed 'src/secp256k1/' content from commit ad2028f (Pieter Wuille)
    7a7e109 Delete src/secp256k1 before subtree import (Pieter Wuille)
    271061242b
  86. Remove unused ecwrapper code 230f7a833d
  87. [Qt, OSX] move QProgressBarMac to guiutil.h 0ceab00d16
  88. Merge pull request #5296
    0ceab00 [Qt, OSX] move QProgressBarMac to guiutil.h (Jonas Schnelli)
    6093aa1 [Qt, OSX] QProgressBar CPU-Issue workaround (Jonas Schnelli)
    e587ecd8a6
  89. Merge pull request #5313
    230f7a8 Remove unused ecwrapper code (Pieter Wuille)
    18832ff8e1
  90. gmp needed to build on OSX 8c41853380
  91. [Wallet] Add global boolean whether to send free transactions (default=true) 0ed9675be4
  92. [Wallet] Add global boolean whether to pay at least the custom fee (default=true) ed3e5e468c
  93. [Wallet] Prevent user from paying a non-sense fee e7876b2979
  94. [Qt] Add Smartfee to GUI c1c9d5b415
  95. Merge pull request #5200
    c1c9d5b [Qt] Add Smartfee to GUI (Cozz Lovan)
    e7876b2 [Wallet] Prevent user from paying a non-sense fee (Cozz Lovan)
    ed3e5e4 [Wallet] Add global boolean whether to pay at least the custom fee (default=true) (Cozz Lovan)
    0ed9675 [Wallet] Add global boolean whether to send free transactions (default=true) (Cozz Lovan)
    b7fe9cd04c
  96. doc: add libgmp dependency for secp256k1
    Also reorganize the document a bit.
    b5d1b10929
  97. Port/fix txnmall.sh regression test
    Ported txnmall.sh to Python, and updated to match
    recent transaction malleability changes.
    
    I also modified it so it tests both double-spending
    confirmed and unconfirmed (only-in-mempool) transactions.
    
    Renamed to txn_doublespend, since that is really what is
    being tested. And told the pull-tester to run both
    variations on this test.
    8656dbb095
  98. Truthier error message when rpcpassword is missing 77c38bb5cc
  99. Implement BIP 23 Block Proposal 9765a50cbd
  100. QA RPC tests: Add tests block block proposals bc6cb4177b
  101. submitblock: Check for duplicate submissions explicitly 60755dbf76
  102. Update comments in src/rpc* to be doxygen compatible 72fb3d295a
  103. build: make a distinction between static app ldflags and static lib ldflags
    For windows builds, exe's are always static, but libs should still conform to
    --enabled-shared and --enable-static.
    e0077de5de
  104. build: mingw needs libssp for hardening with dlls 811a765bef
  105. build: check visibility attributes f36a40f7fd
  106. build: remove internal/protected build attribute checks
    They're not necessary, and not always supported. We only need to know about
    hidden and default.
    ee64c53c1f
  107. build: add libbitcoinconsensus files and hook up the lib build
    Credit BlueMatt for libbitcoinsonsensus.h/cpp
    2cf5f16c25
  108. build: add --with-libs so that libs are optional cdd36c6c5c
  109. build: add quick consensus lib tests
    They should be hooked up in other places as well, but this is a start.
    269efa30ed
  110. build: shared lib build should work reasonably well now 19df238a7b
  111. build: fix static dll link for mingw
    dll's are no longer dynamically linked to libgcc/libstdc++/libssp
    9ed8979e29
  112. build: pad header for osx libs
    This ensures that users of the lib will be able to mangle the paths to work
    in their bundles.
    9eb5a5fbef
  113. depends: Use pic for all linux dependencies
    This avoids textrels, and matches previous gitian behavior.
    4302fa67b1
  114. depends: Add a package for qt4.6. Linux uses it by default.
    We're not ready to switch to a static qt5 for Linux yet due to missing plugin
    support. This adds a recipe for building a shared qt4 that we build and link
    against, but don't distribute.
    
    make USE_LINUX_STATIC_QT5=1 can be used to build static qt5 as before.
    5f93ec2028
  115. gitian: descriptors overhaul
    Descriptors now make use of the dependencies builder, so results are cached.
    A very new version (>= e9741525c) of Gitian should be used in order to take
    advantage of caching.
    1aead42d41
  116. gitian: quick docs update 4bbbdf3244
  117. travis: let travis use shared libs for tests c54d647a92
  118. gitian: make tarballs deterministic and nuke .la files from build output 246659aff1
  119. Check block header before accepting it.
    Previously, AcceptBlockHeader did not check the header (in particular
    PoW).  This made the client accept invalid-PoW-headers from peers in
    headers-first sync.
    57425a2425
  120. qt: Make askpassphrase dialog behave more sanely
    Set minimum sizes appropriately, and make sure that they
    are enforced. Replaces #5226.
    e0a25c54eb
  121. minor style cleanup after HTTP rest interface merge
    - no code changes
    a01fa3035f
  122. [Qt] minor ordering cleanup after new fee selection 4574248f9f
  123. Make PruneBlockIndexCandidates safer 34559c7c73
  124. [Qt] explicitly call proxy in GUI settings SOCKS5 proxy
    - to ensure a consistent wording between core and GUI
    aabe61cb37
  125. Merge pull request #5235
    9eb5a5f build: pad header for osx libs (Cory Fields)
    9ed8979 build: fix static dll link for mingw (Cory Fields)
    19df238 build: shared lib build should work reasonably well now (Cory Fields)
    269efa3 build: add quick consensus lib tests (Cory Fields)
    cdd36c6 build: add --with-libs so that libs are optional (Cory Fields)
    2cf5f16 build: add libbitcoinconsensus files and hook up the lib build (Cory Fields)
    ee64c53 build: remove internal/protected build attribute checks (Cory Fields)
    f36a40f build: check visibility attributes (Cory Fields)
    811a765 build: mingw needs libssp for hardening with dlls (Cory Fields)
    e0077de build: make a distinction between static app ldflags and static lib ldflags (Cory Fields)
    9842ed465b
  126. Merge pull request #5320
    e0a25c5 qt: Make askpassphrase dialog behave more sanely (Wladimir J. van der Laan)
    5c6b384502
  127. Merge pull request #5324
    72fb3d2 Update comments in src/rpc* to be doxygen compatible (Michael Ford)
    cf9c4887f1
  128. Merge pull request #5000
    0391423 Discourage NOPs reserved for soft-fork upgrades (Peter Todd)
    3ba5ebc065
  129. Make STRICTENC invalid pubkeys fail the script rather than the opcode.
    This turns STRICTENC turn into a softforking-safe change (even though it
    is not intended as a consensus rule), and as a result guarantee that using
    it for mempool validation only results in consensus-valid transactions in
    the mempool.
    98b135f97f
  130. Test the exact order of CHECKMULTISIG sig/pubkey evaluation
    Possible with STRICTENC
    ca8158719b
  131. Merge pull request #5270
    57425a2 Check block header before accepting it. (Daniel Kraft)
    5c4dffd188
  132. CreateNewBlock: Stick height in coinbase so we pass template sanity check b867e409e5
  133. Split up crypto/sha2 36fa4a78ac
  134. Add HMAC-SHA256 a8f5087e53
  135. Add the RFC6979 PRNG 3060e36098
  136. Deterministic signing a53fd41485
  137. Header define style cleanups 9d8604f36a
  138. build: fix link error on some platforms. Fixes #5235
    Some users may have libtool libs (.la) installed in their linker search paths.
    In this case, using -static-libtool-libs would try to link in .a's instead of
    shared libs. That would be harmless unless the .a was built in a way that
    would break linking, like non-fpic.
    
    What we really want is "-static" here. Despite its name, it's actually less
    aggressive than -static-libtool-libs. It causes only internal libs to be linked
    statically (libbitcoinconsensus is the one were'a after).
    f618577029
  139. Port of wallet.sh to python (wallet.py).
    Also included are minor edits to util.py to create a clean blockchain and add a parameter to gather_inputs to specify number of confirmations.
    189fb526f1
  140. Edited rpc-tests to run python script not shell script. e4ef724493
  141. Fixed mempool sync after sending a transaction 7e615f5228
  142. Merge pull request #5332
    f618577 build: fix link error on some platforms. Fixes #5235 (Cory Fields)
    216685a6df
  143. Merge pull request #5322
    aabe61c [Qt] explicitly call proxy in GUI settings SOCKS5 proxy (Philip Kaufmann)
    db5308f447
  144. qt: English translation update 4a106eeb33
  145. Merge pull request #5317
    8656dbb Port/fix txnmall.sh regression test (Gavin Andresen)
    9c3572b0ab
  146. Merge pull request #5333
    e4ef724 Edited rpc-tests to run python script not shell script. (mrbandrews)
    189fb52 Port of wallet.sh to python (wallet.py). (mrbandrews)
    37c47e1809
  147. Merge pull request #5318
    77c38bb Truthier error message when rpcpassword is missing (Glenn Willen)
    cb83af9937
  148. Merge pull request #5247
    ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation (Peter Todd)
    98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode. (Pieter Wuille)
    ca6fb4e885
  149. Merge pull request #5170
    092b58d CBlockIndex::GetBlockWork() + GetProofIncrement(nBits) -> GetBlockProof(CBlockIndex) (jtimon)
    22c4272 MOVEONLY: Move void UpdateTime() from pow.o to miner.o (plus fix include main.h -> chain.h) (jtimon)
    f2ada138c2
  150. Convert remaining comments in /src to doxygen format
    - Update comments in checkpoints to be doxygen compatible
    - Update comments in checkqueue to be doxygen compatible
    - Update coins to be doxygen compatible
    - Fix comment typo in crypter.h
    - Update licenses/copyright dates
    
    Closes #5325 #5184 #5183 #5182
    fa94b9d562
  151. Change MIT/X11 to MIT in license displayed in the program 1b2600a13a
  152. Merge pull request #4727
    246659a gitian: make tarballs deterministic and nuke .la files from build output (Cory Fields)
    c54d647 travis: let travis use shared libs for tests (Cory Fields)
    4bbbdf3 gitian: quick docs update (Cory Fields)
    1aead42 gitian: descriptors overhaul (Cory Fields)
    5f93ec2 depends: Add a package for qt4.6. Linux uses it by default. (Cory Fields)
    4302fa6 depends: Use pic for all linux dependencies (Cory Fields)
    a574189e2a
  153. Check pindexBestForkBase for null 730b1ed1a0
  154. docs: ThreadGetMyExternalIP has been removed
    It was removed in https://github.com/bitcoin/bitcoin/pull/5161
    be4ac91aef
  155. Process help and version arguments before datadir. 3d0a1ce193
  156. Remove misleading comment about testnet's message string. e0535e15ab
  157. Merge pull request #5348
    be4ac91 docs: ThreadGetMyExternalIP has been removed (Pavel Vasin)
    eac749a486
  158. Merge pull request #5350
    e0535e1 Remove misleading comment about testnet's message string. (Pavel Janík)
    cbf28c6619
  159. Add sanity check after key generation
    Add a sanity check to prevent cosmic rays from flipping a bit in the
    generated public key, or bugs in the elliptic curve code. This is
    simply done by signing a (randomized) message, and verifying the
    result.
    d0c41a7350
  160. Add key generation/verification to ECC sanity check f321d6bfff
  161. Prioritize and display -testsafemode status in UI
    Like in a real world situation, a safe mode test should also be visible in the
    UI. A test of safe mode is furthermore mostly relevant for developers, so it
    should not be overwritten by a warning about a pre-release test build.
    7357893396
  162. Make -proxy set all network types, avoiding a connect leak.
    Previously -proxy was not setting the proxy for IsLimited networks, so
     if you set your configuration to be onlynet=tor you wouldn't get an
     IPv4 proxy set.
    
    The payment protocol gets its proxy configuration from the IPv4 proxy,
     and so it would experience a connection leak.
    
    This addresses issue #5355 and also clears up a cosmetic bug where
     getinfo proxy output shows nothing when onlynet=tor is set.
    3c77714134
  163. Merge pull request #5356
    7357893 Prioritize and display -testsafemode status in UI (dexX7)
    c24d07554b
  164. Check for strnlen and provide it if it is not found. 494f6e7d35
  165. Merge pull request #5309
    4574248 [Qt] minor ordering cleanup after new fee selection (Philip Kaufmann)
    a01fa30 minor style cleanup after HTTP rest interface merge (Philip Kaufmann)
    dfc8e1432a
  166. Merge pull request #5224
    f321d6b Add key generation/verification to ECC sanity check (Pieter Wuille)
    d0c41a7 Add sanity check after key generation (Pieter Wuille)
    6582f323f0
  167. Merge pull request #1816
    b867e40 CreateNewBlock: Stick height in coinbase so we pass template sanity check (Luke Dashjr)
    60755db submitblock: Check for duplicate submissions explicitly (Luke Dashjr)
    bc6cb41 QA RPC tests: Add tests block block proposals (Luke Dashjr)
    9765a50 Implement BIP 23 Block Proposal (Luke Dashjr)
    3dcbb9b Abstract DecodeHexBlk and BIP22ValidationResult functions out of submitblock (Luke Dashjr)
    132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test (Luke Dashjr)
    df08a62 TestBlockValidity function for CBlock proposals (used by CreateNewBlock) (Luke Dashjr)
    4ea1be7 CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock (Luke Dashjr)
    a48f2d6 Abstract context-dependent block checking from acceptance (Luke Dashjr)
    f24bcce2ac
  168. Improve chainstate/blockindex disk writing policy
    There are 3 pieces of data that are maintained on disk. The actual block
    and undo data, the block index (which can refer to positions on disk),
    and the chainstate (which refers to the best block hash).
    
    Earlier, there was no guarantee that blocks were written to disk before
    block index entries referring to them were written. This commit introduces
    dirty flags for block index data, and delays writing entries until the actual
    block data is flushed.
    
    With this stricter ordering in writes, it is now safe to not always flush
    after every block, so there is no need for the IsInitialBlockDownload()
    check there - instead we just write whenever enough time has passed or
    the cache size grows too large. Also updating the wallet's best known block
    is delayed until this is done, otherwise the wallet may end up referring to an
    unknown block.
    
    In addition, only do a write inside the block processing loop if necessary
    (because of cache size exceeded). Otherwise, move the writing to a point
    after processing is done, after relaying.
    51ce901aa3
  169. Introduce separate flushing modes a206950016
  170. [Qt, OSX] fix Qt4.8 compatibility with QProgressBar issue
    Rebased-From: 7f33d2cebfde99ded12c711ef6bd77c91725cfb8
    Github-Issue: #5344
    c5a2282855
  171. Merge pull request #5154
    730b1ed Check pindexBestForkBase for null (21E14)
    1ee685f984
  172. Merge pull request #5358
    3c77714 Make -proxy set all network types, avoiding a connect leak. (Gregory Maxwell)
    6f9e67aca7
  173. Merge pull request #5335
    7e615f5 Fixed mempool sync after sending a transaction (Suhas Daftuar)
    fe042dbe9f
  174. libbitcoinconsensus: don't require any global constructors
    These static objects are only used in once place, so declare them there instead.
    322317951f
  175. qt: osx: fix hidden symbol visibility
    Fixes default hidden symbol visibility for our linux->osx cross build. Without
    this change, the check for working -fvisibility=hidden fails, and all symbols
    are visible by default.
    
    Ugly as this is, it's just a simple find/replace to fix a bug in Qt's configure.
    They assume in an "XPLATFORM_MAC" block that the builder is capable of running
    osx programs. This should be "BUILD_ON_MAC" instead.
    d61dc25c71
  176. Fix typo in doxygen comment. 3a05ba1bfc
  177. Merge pull request #5362
    d61dc25 qt: osx: fix hidden symbol visibility (Cory Fields)
    97bef1203d
  178. Merge pull request #5241
    a206950 Introduce separate flushing modes (Pieter Wuille)
    51ce901 Improve chainstate/blockindex disk writing policy (Pieter Wuille)
    397b9011c9
  179. Add 'invalidateblock' and 'reconsiderblock' RPC commands.
    These can be used for testing reorganizations or for manual intervention in case of
    chain forks.
    798faec3ea
  180. Delay writing block indexes in invalidate/reconsider 3dd8ed72e5
  181. Merge pull request #5351
    3d0a1ce Process help and version arguments before datadir. (Pavel Janík)
    ac0b2393a4
  182. [Qt] small changes to sendcoinsdialog
    - add newly added variables to the constructor init
    - move an already existing bool also to constructor init
    - move a connect call to setClientModel and add a NULL pointer check
    a328dd60a7
  183. build: disable static lib stripping during osx make install-strip b7f2cdc8a9
  184. gitian: update descriptors to use a sane uniform output 52bb7a7e1b
  185. build: add the deploydir target for gitian
    This is a helper target that stops just before the creation of the dmg.
    2f327a3c87
  186. build: Clean up the dmg layout d69ed2b291
  187. release: update docs to reflect new layout
    - Split linux32/linux64 releases
    - Split win32/win64 zips
    - Post-processing should no longer be required. The deterministic outputs are
      ready for consumption.
    dfef929bf7
  188. build: add a deterministic dmg signer 914868a05d
  189. docs: add/update docs for osx dmg signing 7a9cf80b19
  190. Include missing config/bitcoin-config.h. c8ed6130a4
  191. Merge pull request #5340
    c8ed613 Include missing config/bitcoin-config.h. (Pavel Janík)
    494f6e7 Check for strnlen and provide it if it is not found. (Pavel Janík)
    70f9e33fa0
  192. Use complete path to include bitcoin-config.h. a53d16ac0c
  193. Merge pull request #5361
    3223179 libbitcoinconsensus: don't require any global constructors (Cory Fields)
    e6751ca68a
  194. Merge pull request #5209
    9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis (Cozz Lovan)
    124b4895b8
  195. Merge pull request #5370
    b7f2cdc build: disable static lib stripping during osx make install-strip (Cory Fields)
    91eaedd4ce
  196. Merge pull request #5371
    dfef929 release: update docs to reflect new layout (Cory Fields)
    52bb7a7 gitian: update descriptors to use a sane uniform output (Cory Fields)
    ce7204bf2e
  197. Merge pull request #5363
    7a9cf80 docs: add/update docs for osx dmg signing (Cory Fields)
    914868a build: add a deterministic dmg signer (Cory Fields)
    d69ed2b build: Clean up the dmg layout (Cory Fields)
    2f327a3 build: add the deploydir target for gitian (Cory Fields)
    686fa79cae
  198. Merge pull request #5323
    a328dd6 [Qt] small changes to sendcoinsdialog (Philip Kaufmann)
    4baa9f0c9b
  199. Merge pull request #5321
    34559c7 Make PruneBlockIndexCandidates safer (Pieter Wuille)
    cca48f6 Reset setBlockIndexCandidates once block index db loaded (21E14)
    53a87c0355
  200. [REST] fix headersonly flag for BINARY responses 210eba9fdb
  201. qt: Update translations from transifex 8ba38aba42
  202. [REST] give an appropriate response in warmup phase 78bdc8103f
  203. [REST] set REST API behind "-rest" option 5dc713bfc7
  204. Merge pull request #5326
    5dc713b [REST] set REST API behind "-rest" option (Jonas Schnelli)
    78bdc81 [REST] give an appropriate response in warmup phase (Jonas Schnelli)
    210eba9 [REST] fix headersonly flag for BINARY responses (Jonas Schnelli)
    108b19f7ef
  205. Merge pull request #5273
    cd4d3f1 Win32: change buffer size for gethotsname in Discover() (Philip Kaufmann)
    8fa0494 Win32: log addresses found in Discover() calls (Philip Kaufmann)
    b031137977
  206. Merge pull request #5158
    9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true. (Ruben Dario Ponticelli)
    a2d0fc6 Fix IsInitialBlockDownload which was broken by headers first. (Ruben Dario Ponticelli)
    9ff0bc9beb
  207. Add 'invalidateblock' and 'reconsiderblock' RPC commands.
    These can be used for testing reorganizations or for manual intervention in case of
    chain forks.
    9b0a8d3152
  208. Delay writing block indexes in invalidate/reconsider 0dd06b2515
  209. Introduce a hidden category bd9aebf19d
  210. Fix python usage for arch's broken maintainers e3f315a0a5
  211. Remove -printblock, -printblocktree, and -printblockindex 57be955ba0
  212. Report status of chain tips 1b91be49f5
  213. Merge pull request #5384
    e3f315a Fix python usage for arch's broken maintainers (Matt Corallo)
    faa1623a44
  214. Merge pull request #5385
    57be955 Remove -printblock, -printblocktree, and -printblockindex (Pieter Wuille)
    2adce1f716
  215. [REST] make selection of output-format mandatory, support dot url syntax
    1. Remove the default format (binary) because `rest/block/<hash>/Hex` would end up delivering binary data.
    2. List available formats when chosen format was not found (reduces need for documentation)
    3. Change url syntax to dot extension like format chosing (like `rest/tx/<hash>.json`
    8a5c9513ba
  216. Merge pull request #5374
    a53d16a Use complete path to include bitcoin-config.h. (Pavel Janík)
    631e698bb7
  217. Move `setmocktime` to hidden category
    Another testing-only potential footgun command.
    f86a24b368
  218. Merge pull request #5316
    f86a24b Move `setmocktime` to hidden category (Wladimir J. van der Laan)
    bd9aebf Introduce a hidden category (Pieter Wuille)
    0dd06b2 Delay writing block indexes in invalidate/reconsider (Pieter Wuille)
    9b0a8d3 Add 'invalidateblock' and 'reconsiderblock' RPC commands. (Pieter Wuille)
    d7c8a830c4
  219. Merge pull request #5365
    3a05ba1 Fix typo in doxygen comment. (Pavel Janík)
    5270817180
  220. Update the intent on SI-style separators. 1cf23f6c50
  221. Resize after succesful result 4cdaa95a20
  222. [Qt] Fix wallet-lock in CWallet::GetAccountAddresses(..) 43422a0121
  223. Merge pull request #5388
    1cf23f6 Update the intent on SI-style separators. (21E14)
    b248a38aa5
  224. Merge pull request #5386
    1b91be4 Report status of chain tips (Pieter Wuille)
    0ddf4416cc
  225. Merge pull request #5390
    43422a0 [Qt] Fix wallet-lock in CWallet::GetAccountAddresses(..) (Cozz Lovan)
    89151d9f29
  226. [REST] add REST interface tests in rpc-test section 01dc2d83f8
  227. Merge pull request #5227
    4cdaa95 Resize after succesful result (Pieter Wuille)
    9d8604f Header define style cleanups (Pieter Wuille)
    a53fd41 Deterministic signing (Pieter Wuille)
    3060e36 Add the RFC6979 PRNG (Pieter Wuille)
    a8f5087 Add HMAC-SHA256 (Pieter Wuille)
    36fa4a7 Split up crypto/sha2 (Pieter Wuille)
    f0877f8b62
  228. Merge pull request #5379
    01dc2d8 [REST] add REST interface tests in rpc-test section (Jonas Schnelli)
    7026cbd6db
  229. Extra explanation for getchaintips 32b93a1bc2
  230. Use deterministically generated script tests
    Now that signing is deterministic, we can require exact correspondence between the
    automatically generated tests and the ones read from JSON. Do this, and update
    the tests to those deterministic versions. Note that some flag changes weren't
    correctly applied before.
    f67a9ce0dc
  231. Move CHECKMULTISIG order tests out of automatically generated block 362001c19f
  232. Make comments in main an init doxygen compatible
    Fix typos where appropriate
    Update license/copyright
    c5b390b6b9
  233. Merge pull request #5376
    8a5c951 [REST] make selection of output-format mandatory, support dot url syntax (Jonas Schnelli)
    fec0d100d5
  234. Fix rest.py test after #5376 90f7aa7778
  235. Test resurrecting memory pool transactions during chain re-org
    Builds on #5316.
    b2d0162ba4
  236. Merge pull request #5369
    b2d0162 Test resurrecting memory pool transactions during chain re-org (Gavin Andresen)
    3dd8ed7 Delay writing block indexes in invalidate/reconsider (Pieter Wuille)
    798faec Add 'invalidateblock' and 'reconsiderblock' RPC commands. (Pieter Wuille)
    1c7e09f0b9
  237. Add 0.10 release notes on improvement to signing security.
    I dropped mention of libgmp that I had in my first draft because
    it looks like we'll be able to get that out prior to release.
    5fdbe67ad9
  238. Merge pull request #5401
    362001c Move CHECKMULTISIG order tests out of automatically generated block (Pieter Wuille)
    f67a9ce Use deterministically generated script tests (Pieter Wuille)
    0286fe5b3b
  239. Report script evaluation failures in log and reject messages 307f7d48d4
  240. Coinbases-in-mempool regression test
    Immature coinbase spends are allowed in the memory pool if they can be mined in the next block.
    They are not allowed in the memory pool if they cannot be mined in the next block.
    
    This regression test tests those edge cases.
    9e56532959
  241. Merge pull request #5406
    5fdbe67 Add 0.10 release notes on improvement to signing security. (Gregory Maxwell)
    1863deae5f
  242. Merge pull request #5400
    32b93a1 Extra explanation for getchaintips (Pieter Wuille)
    133344208c
  243. Merge pull request #5403
    c5b390b Make comments in main an init doxygen compatible (Michael Ford)
    7eb0667384
  244. Merge pull request #5407
    9e56532 Coinbases-in-mempool regression test (Gavin Andresen)
    c2d7c6134e
  245. MOVEONLY: core/ -> primitives/ d227011184
  246. Merge pull request #5306
    d227011 MOVEONLY: core/ -> primitives/ (Luke Dashjr)
    a0417b8cc8
  247. Package libqt5core5 replaced with libqt5core5a
    libqt5core5 installs failed.
    Package libqt5core5 has replaced with libqt5core5a in ubuntu and debian. 
    The website is:
    http://packages.ubuntu.com/trusty/libqt5core5a
    https://packages.debian.org/sid/libqt5core5a
    be7b0bff5a
  248. sipa force-pushed on Dec 4, 2014
  249. Merge pull request #5417
    be7b0bf Package libqt5core5 replaced with libqt5core5a (LongShao007)
    4d2ecc4f94
  250. Merge pull request #5394
    307f7d4 Report script evaluation failures in log and reject messages (Pieter Wuille)
    9ddc8c63ab
  251. gmaxwell added this to the milestone 0.10.0 on Dec 4, 2014
  252. sipa commented at 4:06 PM on December 4, 2014: member

    I'll do a further PR with further changes when they are in.

    Getting the larger changes that have been made the past few weeks in will make further diffs for updates smaller.

  253. Remove gmp dependency and doc mentions ffe3291466
  254. Update libsecp256k1 0dcfb91d56
  255. sipa force-pushed on Dec 4, 2014
  256. laanwj added the label Improvement on Dec 5, 2014
  257. laanwj commented at 9:18 AM on December 5, 2014: member

    Tested ACK (on x86_64 and ARM32) - ran tests and succesfully sent a testnet transaction. Code changes check out although I have been unable to review all the secp256k1 changes in detail, that would require a lot more time. commithash 0dcfb91d5603f2212536d78260a3f2b16cb05a34 (signature)

  258. gmaxwell commented at 9:21 AM on December 5, 2014: contributor

    ACK. I reviewed and tested each one the underlying changes extensively under the libsecp256k1 repository.

  259. laanwj merged this on Dec 5, 2014
  260. laanwj closed this on Dec 5, 2014

  261. laanwj referenced this in commit 7a88e3b0fc on Dec 5, 2014
  262. MarcoFalke locked this on Sep 8, 2021
Contributors

Milestone
0.10.0


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-19 09:15 UTC

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