Update libsecp256k1 and use RFC6979 extra entropy for test cases #5952

pull sipa wants to merge 8084 commits into bitcoin:master from sipa:secp256k1 changing 1122 files +290684 −555
  1. sipa commented at 10:37 PM on March 27, 2015: member

    Included libsecp256k1 changes (multiple authors):

    • Converted some runtime initialization to static constants.
    • Convert all code to strict C89 (+ long long, + __int128).
    • Get rid of variable-length string conversion code.
    • Introduce a compact storage type, and use it for precomputed tables.
    • Extra benchmarks.
    • More x86_64 assembly (speeds up signing mostly).
    • Fast byteswapping inside hash functions.
    • Make the built-in RFC6979 nonce generator support additional entropy.
    • Use RFC6979 as test RNG.
  2. qt: avoid hard-coding font names
    They may not contain all necessary characters for a language
    73cd4edb4f
  3. [QA] fix httpbasic keep-alive test 1a25a7edf8
  4. Merge pull request #5674
    1a25a7e [QA] fix httpbasic keep-alive test (Jonas Schnelli)
    7d2cb48 Restore RPC HTTP keepalives to default. (Gregory Maxwell)
    a0abff2755
  5. Merge pull request #5671
    73cd4ed qt: avoid hard-coding font names (Cory Fields)
    52954e6 qt: fix broken unicode chars on osx 10.10 (Cory Fields)
    f5ad78b qt: fonts: allow SubstituteFonts to filter based on user's language (Cory Fields)
    e1aecae33a
  6. Get rid of DetectShutdownThread
    The main thread spends time waiting for the DetectShutdownThread.
    So why not just run this waiting loop function in the main thread?
    
    One thread-stack less saves 4MB of virtual memory on 32-bit, and 8MB on
    64-bit.
    28ee7e8b8c
  7. osx: bump build sdk to 10.9 f0172bf91e
  8. osx packaging: move background image to .background to match gitian builds
    Also increase temp dmg filesize to account for a bigger background image
    88a797320a
  9. osx packaging: switch background image to background.tiff
    Also do a bit of cleanup:
     - Make the background name a variable so it's easier to change
     - Add proper make dependencies
    997cab78cb
  10. osx packaging: update DS_Store after background changes 48bebcca79
  11. add new osx dmg background picture 95ef87c75e
  12. Merge pull request #5684
    f0172bf osx: bump build sdk to 10.9 (Cory Fields)
    ab64022d54
  13. Merge pull request #5651
    1d84aea Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde (which may be mistaken for a negative sign) (Luke Dashjr)
    848f55d52f
  14. Merge pull request #5648
    2ce63d3 MOVEONLY: Move struct CBlockTemplate to miner.h (from main.h) (Luke Dashjr)
    7810a0a1e6
  15. Delete RecvLine function
    No longer necessary since #5161 / 845c86d128fb97d55d125e63653def38729bd2ed.
    66b473457b
  16. Remove custom pkg.m4 script. e7cfcc8f7e
  17. depends: latest config.guess and config.sub 5fdc5b08e7
  18. Merge pull request #5688
    e7cfcc8 Remove custom pkg.m4 script. (randy-waterhouse)
    944c256741
  19. LSSharedFileListItemResolve() was deprecated in Mac OS X 10.10, use LSSharedFileListItemCopyResolvedURL() instead 6bbca99baa
  20. fix crash: CoinControl "space" bug
    Just like https://github.com/novacoin-project/novacoin/commit/baf80c26a2e7f1ba6061d63d174eff0a09111e6f
    0eade74c78
  21. Merge pull request #5700
    0eade74 fix crash: CoinControl "space" bug (fsb4000)
    b6acd4563d
  22. Merge pull request #5599
    0cc0d8d Get rid of the internal miner's hashmeter (jtimon)
    40e96a3016
  23. fix crash: createmultisig and addmultisigaddress e5d9d77df2
  24. change hardcoded character constants to a set of descriptive named constants for database keys 14d023f1ae
  25. Merge pull request #5627
    2fa9a8e Make empty byte arrays pass CheckSignatureEncoding() (Peter Todd)
    b01a435c34
  26. Merge pull request #4805
    44bc988 [Wallet] Do not flush the wallet in AddToWalletIfInvolvingMe(..) (Cozz Lovan)
    8204e19abe
  27. Merge pull request #5243
    ff09e31 sleep-wait on genesis block during init with -reindex (Matt Corallo)
    2fae1875ea
  28. Merge pull request #5628
    785bb81 [Qt] remove size grip to get rid of the right margin (Jonas Schnelli)
    ca7880358c
  29. Merge pull request #5626
    652eb90 [Qt] change transaction table column width (Jonas Schnelli)
    af95b17 [Qt] resize oversized icons (Jonas Schnelli)
    ab0d7987c0
  30. Merge pull request #5575
    7b782f5 RPCWallet: Notate all account stuff as deprecated (Luke Dashjr)
    2511a39cca
  31. Merge pull request #5695
    5fdc5b0 depends: latest config.guess and config.sub (Michael Ford)
    23ef5b77a4
  32. Merge pull request #5506
    7873633 Squashed 'src/secp256k1/' changes from bccaf86..50cc6ab (Pieter Wuille)
    1a9576d Use libsecp256k1's RFC6979 implementation (Pieter Wuille)
    6b5f5294bb
  33. Removed main.h dependency from rpcserver.cpp
    Rebased by @laanwj:
    
    - update for RPC methods added since 84d13ee: setmocktime,
      invalidateblock, reconsiderblock. Only the first, setmocktime, required a change,
      the other two are thread safe.
    4401b2d7c5
  34. Trim RPC command table
    - invalidateblock and reconsiderblock were defined doubly
    - remove no-longer-used threadSafe, as locks have been pushed down
    5ebe0956b3
  35. Merge pull request #5683
    95ef87c add new osx dmg background picture (Jonas Schnelli)
    48bebcc osx packaging: update DS_Store after background changes (Cory Fields)
    997cab7 osx packaging: switch background image to background.tiff (Cory Fields)
    88a7973 osx packaging: move background image to .background to match gitian builds (Cory Fields)
    c7b22aa0ac
  36. Change Coin Control first column label 55eade9d46
  37. Merge pull request #5720
    55eade9 Change Coin Control first column label (fsb4000)
    7620ef9e7e
  38. Merge pull request #5620
    6715efb [Qt] Payment request expiration bug fix (re-done) (Philip Kaufmann)
    7823598fa4
  39. Merge pull request #5477
    6bbca99 LSSharedFileListItemResolve() was deprecated in Mac OS X 10.10, use LSSharedFileListItemCopyResolvedURL() instead (Cory Fields)
    5f04d1d0d7
  40. Format build flags in src/Makefile.am. 72ac792b4a
  41. Merge pull request #5234
    72ac792 Format build flags in src/Makefile.am. (randy-waterhouse)
    d781d4725c
  42. Merge pull request #5707
    14d023f change hardcoded character constants to a set of descriptive named constants for database keys (Earlz)
    6af674ecdc
  43. [Qt] allow unit changes for read-only BitcoinAmountField
    - fixes #5725
    fdf80ea7b1
  44. Remove bootstrap.md
    See #5455
    86731603d4
  45. remove sig_canonical.json and sig_noncanonical.json d6bed1514c
  46. Improve gitian build guide
    Point to the Debian 7.7 installer
    Fix wording now that we only use a single image
    Remove bitcoin checkout steps, they are covered in release-process
    bfc29dcdc5
  47. Fix typo - sentence starts with capital letter 91a9fe094b
  48. Fix typo 3800135ad3
  49. Remove whitespaces before double colon in errors and logs 5262fde0ec
  50. TRIVIAL: fix misleading comment bd2b73bb9b
  51. depends: fix typos 5a809ef0f0
  52. Suggest --disable-wallet when libdb_cxx headers are missing faf0af49f5
  53. Fix README link from util.sh -> util.py. 34c61813a4
  54. fix _code_ snippet in gitian-building.md
    Trivial typo-like fix
    1fa89a54e8
  55. Changed pronouns for correctness and inclusivity ee932025c1
  56. Change "insane" to "absurd" (referring to high fees) in text strings and identifiers.
    Note that this will also require translation changes in Transifex for the key
    "A fee higher than %1 is considered an insanely high fee." which is now
    "A fee higher than %1 is considered an absurdly high fee."
    
    Signed-off-by: Daira Hopwood <daira@jacaranda.org>
    1371e6f5db
  57. Change IsDERSignature to BIP66 implementation 80ad135a5e
  58. Example unit tests from BIP66 092e9fe5fb
  59. BIP66 changeover logic 5a47811da5
  60. Add RPC test for DERSIG BIP switchover logic 819bcf9b99
  61. Increase coverage of DERSIG edge cases bf6cdebdc5
  62. Merge pull request #5731
    ee93202 Changed pronouns for correctness and inclusivity (bikinibabe)
    1fa89a5 fix _code_ snippet in gitian-building.md (UdjinM6)
    34c6181 Fix README link from util.sh -> util.py. (Matt Bogosian)
    faf0af4 Suggest --disable-wallet when libdb_cxx headers are missing (Luke Dashjr)
    5a809ef depends: fix typos (Michael Ford)
    bd2b73b TRIVIAL: fix misleading comment (Vitalii Demianets)
    5262fde Remove whitespaces before double colon in errors and logs (Pavel Janík)
    3800135 Fix typo (Pavel Janík)
    91a9fe0 Fix typo - sentence starts with capital letter (Pavel Janík)
    bfc29dc Improve gitian build guide (Michael Ford)
    d6bed15 remove sig_canonical.json and sig_noncanonical.json (Manuel Araoz)
    8673160 Remove bootstrap.md (Michael Ford)
    a62649731f
  63. Replace difficulty readjustment blocks with Interval() f4b2078f72
  64. Use separate SignatureChecker for CMutableTransaction 858809a33e
  65. Avoid storing a reference passed to SignatureChecker constructors 9fddceda44
  66. Merge pull request #5719
    9fddced Avoid storing a reference passed to SignatureChecker constructors (Pieter Wuille)
    858809a Use separate SignatureChecker for CMutableTransaction (Pieter Wuille)
    f425050546
  67. Merge pull request #5729
    fdf80ea [Qt] allow unit changes for read-only BitcoinAmountField (Philip Kaufmann)
    9c4a5a5067
  68. Merge pull request #5713
    bf6cdeb Increase coverage of DERSIG edge cases (Pieter Wuille)
    819bcf9 Add RPC test for DERSIG BIP switchover logic (Pieter Wuille)
    5a47811 BIP66 changeover logic (Pieter Wuille)
    092e9fe Example unit tests from BIP66 (Pieter Wuille)
    80ad135 Change IsDERSignature to BIP66 implementation (Pieter Wuille)
    41e6e4caba
  69. Merge pull request #5675
    2d9b0b7 Fix priority calculation in CreateTransaction (Alex Morcos)
    4e2b1fff98
  70. Merge pull request #5647
    3ff735c Increase block download timeout base from 10 to 20 minutes. (Gregory Maxwell)
    6ee87f9bc5
  71. Merge pull request #5732
    1371e6f Change "insane" to "absurd" (referring to high fees) in text strings and identifiers. (Daira Hopwood)
    e5f1f5a263
  72. Merge pull request #5286
    44e9a6b Update the 'test_IsStandard' unit test (Flavien Charlon)
    a930658 Change the default maximum OP_RETURN size to 80 bytes (Flavien Charlon)
    fcf646c9b0
  73. Acquire CCheckQueue's lock to avoid race condition
    This fixes a potential race condition in the CCheckQueueControl constructor,
    which was looking directly at data in CCheckQueue without acquiring its lock.
    
    Remove the now-unnecessary friendship for CCheckQueueControl
    cf008ac8c3
  74. Split logic to undo txin's off DisconnectBlock.
    Instead, create a separate function that applies the undo operation of a
    CTxInUndo object onto a CCoinsViewCache.  This method is used from
    DisconnectBlock.
    eb1c2cd37f
  75. build: fix newer boost build with c++11 a2b04ddfe6
  76. c++11: MOVEONLY: move function definitions out of the header
    These need to be moved out of the header in order to resolve a circular
    dependency between CWallet and CTxWallet. See next commit.
    bbacd88204
  77. c++11: MOVEONLY: break circular dependency in wallet
    c++11 (libc++'s stdlib implementation anyway) doesn't allow for map types to be
    forward-declared. for example:
    
    class foo;
    std::map<int, foo> bar; // error, foo has not been defined.
    class foo{};
    
    Since CWallet and CWalletTx are inter-dependent, but only std::map<*,CWalletTx>
    is used, forward-declare CWallet instead and define CWalletTx first.
    
    Despite the mangled git diff, this change only amounts to moving ~320 lines in
    a single chunk.
    3447cf87e2
  78. c++11: don't forward-declare types used in maps 5a6155ccfa
  79. c++11: These look like user-defined literals.
    Add a space to keep the compiler happy
    7f991e364e
  80. Merge pull request #5711
    5ebe095 Trim RPC command table (Wladimir J. van der Laan)
    4401b2d Removed main.h dependency from rpcserver.cpp (Eric Lombrozo)
    87ecfb0f96
  81. Merge pull request #5509
    7f991e3 c++11: These look like user-defined literals. (Cory Fields)
    5a6155c c++11: don't forward-declare types used in maps (Cory Fields)
    3447cf8 c++11: MOVEONLY: break circular dependency in wallet (Cory Fields)
    bbacd88 c++11: MOVEONLY: move function definitions out of the header (Cory Fields)
    a2b04dd build: fix newer boost build with c++11 (Cory Fields)
    31dedb463b
  82. [Qt] prevent amount overflow problem with payment requests
    Bitcoin amounts are stored as uint64 in the protobuf messages (see
    paymentrequest.proto), but CAmount is defined as int64_t. Because
    of that we need to verify that single and accumulated amounts are
    in a valid range and no variable overflow has happened.
    
    - fixes #5624 (#5622)
    
    Thanks @SergioDemianLerner for reporting that issue and also supplying us
    with a possible solution.
    
    - add static verifyAmount() function to PaymentServer and move the logging
      on error into the function
    - also add a unit test to paymentservertests.cpp
    a6516686dc
  83. Merge pull request #5319
    35f7227 Clean up wallet encryption code. (Daniel Kraft)
    93b7544501
  84. minor rework of SendMoney in rpcwallet
    - rework the function to not log errors but use throw JSONRPCError
    - remove a check for IsLocked() that is done in sendtoaddress and
      sendfrom RPC calls already
    - cache GetBalance() return value, because it's possibly used twice
    25cf6f3d41
  85. fix getblocktemplate lock issue
    getblocktemplate didn't have a wallet lock before #5711 and IMO there is no need for LEAVE/ENTER critical section.
    17115d0a34
  86. Merge pull request #5754
    17115d0 fix getblocktemplate lock issue (Jonas Schnelli)
    1c4e3f99f0
  87. Fix getblocktemplate_proposals test by mining one block
    This triggers the tested node to no longer be in initial
    download, allowing the call to getblocktemplate() to succeed.
    1cb2a00cb8
  88. [Qt] add bitcoin logo to about screen d67a642392
  89. Add more information to errors in ReadBlockFromDisk
    A lot of times, disk corruption problems appear here.
    To facilitate debugging and troubleshooting, add position information
    to the error messages.
    f5791c6ae3
  90. Merge pull request #5756
    1cb2a00 Fix getblocktemplate_proposals test by mining one block (Suhas Daftuar)
    5d901d8ece
  91. fix jonasschnelli's gitian key
    There where two keys in the keyfile and it also had a missing "-key" in the filename.
    See: http://bitcoinstats.com/irc/bitcoin-dev/logs/2015/02/05#l1423162105
    65f10e0ffc
  92. Merge pull request #5721
    cf008ac Acquire CCheckQueue's lock to avoid race condition (Suhas Daftuar)
    fb6140b54b
  93. Ignore getaddr messages on Outbound connections.
    The only time when a client sends a "getaddr" message is when he
    esatblishes an Outbound connection (see ProcessMessage() in
    src/main.cpp).  Another bitcoin client is expected to receive a
    "getaddr" message only on Inbound connection. Ignoring "gettaddr"
    requests on Outbound connections can resolve potential privacy issues
    (and as was said such request normally do not happen anyway).
    dca799e1db
  94. Sanitize command strings before logging them.
    Normally bitcoin core does not display any network originated strings without
     sanitizing or hex encoding.  This wasn't done for strcommand in many places.
    
    This could be used to play havoc with a terminal displaying the logs,
     especially with printtoconsole in use.
    
    Thanks to Evil-Knievel for reporting this issue.
    28d4cff0ed
  95. Merge pull request #5770
    28d4cff Sanitize command strings before logging them. (Gregory Maxwell)
    32a8b6a9d7
  96. [Qt] use qint64 in BitcoinGUI::setNumBlocks
    - as QDateTime.secsTo() returns a qint64 also store in a qint64 and not in
      an integer
    47ee8cf091
  97. [Qt] remove unused getNumBlocksAtStartup() from ClientModel deda3e156d
  98. Merge pull request #5753
    d67a642 [Qt] add bitcoin logo to about screen (Jonas Schnelli)
    0f44672437
  99. Merge pull request #5764
    65f10e0 fix jonasschnelli's gitian key (Jonas Schnelli)
    5cefea9c4b
  100. Merge pull request #5739
    f4b2078 Replace difficulty readjustment blocks with Interval() (Shaul Kfir)
    7225577f6b
  101. Merge #5623: Make nicer pull request merge messages
    1078fb0 Make nicer pull request merge messages (BtcDrak)
    f69941620b
  102. Merge #5679: Get rid of DetectShutdownThread
    28ee7e8 Get rid of DetectShutdownThread (Wladimir J. van der Laan)
    beff11a3a1
  103. Merge #5699: Split logic to undo txin's off DisconnectBlock.
    eb1c2cd Split logic to undo txin's off DisconnectBlock. (Daniel Kraft)
    183ca292bd
  104. Merge #5629: [Qt] prevent amount overflow problem with payment requests
    a651668 [Qt] prevent amount overflow problem with payment requests (Philip Kaufmann)
    a9565863e0
  105. Merge #5548: [REST] add /rest/chaininfos
    2c0f901 [REST] rest/chaininfos add documentation (Jonas Schnelli)
    59582c8 [REST] add /rest/chaininfos (Jonas Schnelli)
    d48ce48093
  106. Fix NegateSignatureS to not duplicate last byte of S
    NegateSignatureS is called with a signature without a hashtype, so
    do not save the last byte and append it after S negation.
    
    Updates the two tests which were affected by this bug.
    6f50dbd2fd
  107. Add test for DER-encoding edge case
    The fix to NegateSignatureS caused a test which had been failing
    in IsValidSignatureEncoding to then fail in IsLowDERSignature.
    Add new test so the original check remains exercised.
    78c6bedb9c
  108. Add fanquake PGP key 99437c51ba
  109. Merge #5787: Add fanquake PGP key
    99437c5 Add fanquake PGP key (Michael Ford)
    9bd8c9b131
  110. gitian: don't add . to tar list
    Since permissions and timestamps are changed for the sake of determinism,
    . must not be added to the archive. Otherwise, tar may try to modify pwd when
    extracting.
    0c6ab676ee
  111. Merge #5790: gitian: don't add . to tar list
    0c6ab67 gitian: don't add . to tar list (Cory Fields)
    c70cdbc393
  112. Fix filename for testing QT. f9a8fc4b1a
  113. Merge #5792: Fix filename for testing QT.
    f9a8fc4 Fix filename for testing QT. (Jonathan Brown)
    d8ed3bd8ee
  114. openssl: abstract out OPENSSL_cleanse
    This makes it easier for us to replace it if desired, since it's now only in
    one spot. Also, it avoids the openssl include from allocators.h, which
    essentially forced openssl to be included from every compilation unit.
    1630219d90
  115. doc: Add note-to-self about SHA256SUMS to release-process.md a77021a763
  116. Merge #5710: Add more information to errors in ReadBlockFromDisk
    f5791c6 Add more information to errors in ReadBlockFromDisk (Wladimir J. van der Laan)
    175d86e633
  117. Add list of implemented BIPs b63ae56269
  118. Rename Interval() to DifficultyAdjustmentInterval() e5ece053da
  119. Merge #5784: Fix usage of NegateSignatureS in script_tests
    78c6bed Add test for DER-encoding edge case (Suhas Daftuar)
    6f50dbd Fix NegateSignatureS to not duplicate last byte of S (Suhas Daftuar)
    e3a3cd7a28
  120. Merge #5799: Rename Interval() to DifficultyAdjustmentInterval()
    e5ece05 Rename Interval() to DifficultyAdjustmentInterval() (Shaul Kfir)
    8d0418720c
  121. Merge #5366: No longer check osx compatibility in RenameThread
    850c570 No longer check osx compatibility in RenameThread (Michael Ford)
    47a79bb880
  122. Update debian changelog and control file 544e64e975
  123. Merge #5803: Update debian changelog and control file
    544e64e Update debian changelog and control file (Matt Corallo)
    ea98509fa5
  124. [Qt, Win] honor current network when creating autostart link
    - creates a "Bitcoin (testnet).lnk" when on testnet or a "Bitcoin
      (regtest).lnk, when on regtest
    - fixes #5778
    9673c35daf
  125. [Qt, Linux] honor current network when creating autostart link 6cb4a52535
  126. Merge #5689: openssl: abstract out OPENSSL_cleanse
    1630219 openssl: abstract out OPENSSL_cleanse (Cory Fields)
    07f4386b38
  127. Merge #5706: fix crash: RPC \
    e5d9d77 fix crash: createmultisig and addmultisigaddress (fsb4000)
    a026a56c4e
  128. Revert "Make nicer pull request merge messages"
    This reverts commit 1078fb08851442bcd7750c3d5015dc1fe7e4d927 (and thus
    pull #5623). It has various issues:
    
    - Pull request names get cut off at ", see e.g. a026a56
    
    - Merge script no longer copes with pulls that have a milestone
      attached, due to a duplicate 'title' in JSON that is not handled by the
      ad-hoc parsing.
    aaba10f275
  129. [GUI] Move fee dialog minimise button away from "Transaction Fee"
    Its original placement was causing confusion among some users.
    de5403f878
  130. Add unit tests for next difficulty calculations
    Split GetNextWorkRequired() into two functions to allow the difficulty calculations to
    be tested without requiring a full blockchain.
    Add unit tests to cover basic difficulty calculation, plus each of the min/max actual
    time, and maximum difficulty target conditions.
    34e5015cd2
  131. Merge pull request #5708
    b63ae56 Add list of implemented BIPs (Pieter Wuille)
    8b298ca7d7
  132. build: disable reduced exports by default
    This is really a packager's option. While it's helpful to encourage devs to
    test this option for daily builds, it's not reliable in several real-world
    use-cases. Some older libstdc++ runtimes (freebsd 9, debian wheezy, for
    example) fail to properly catch exceptions due to mismatched type_info.
    
    See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 for more info.
    3ee028f131
  133. build: remove libstdc++ backwards-compat
    Backwards-compatibility for libstdc++ is not limited to straightforward abi
    changes. Symbol visibility also needs to be taken into consideration, and
    that really can't be addressed simply.
    
    Instead, just static-link libstdc++ for backwards-compat.
    aa3673064c
  134. build: change reduce exports/static libstdc++ options for gitian and travis
    For Gitian releases:
      - Windows builds remain unchanged. libstdc++ was already linked statically.
      - OSX builds remain unchanged. libstdc++ is tied to the SDK and not worth
        messing with.
      - Linux builds now statically link libstdc++.
    
    For Travis:
      - Match the previous behavior by adding --enable-reduce-exports as
      necessary.
      - Use static libstdc++ for the full Linux build.
    06715165f9
  135. gitian: fix x86_64 build with static libstdc++ c95ac83e51
  136. build: fix typo in configure help 3448b132c4
  137. Better fingerprinting protection for non-main-chain getdatas.
    With headers-first we can compare against the best header timestamp, rather
    than using checkpoints which require code updates to maintain.
    85da07a5a0
  138. WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef.
    Code to avoid calling Perfmon too often is only needed when perfmon is actually going to get called.
    This is not intended to make any functional difference in the addition of entropy to the random pool.
    32eaf8a3de
  139. depends: always use static qt5 for linux d23b0a2711
  140. make CMessageHeader a dumb storage class
    It shouldn't know or care about bitcoind's chain param selection
    eec37136fd
  141. Merge pull request #5824
    32eaf8a WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef. Code to avoid calling Perfmon too often is only needed when perfmon is actually going to get called. This is not intended to make any functional difference in the addition of entropy to the random pool. (21E14)
    25d713c941
  142. qt: Don't save geometry for options and about/help window
    These dialogs will be something that people occasionally open, not keep
    open during their session, so just popping it up in a sensible place
    is good enough. Remembering only creates potential issues, like spawning
    it outside the current screen area.
    
    On Ubuntu this causes the dialogs to be positioned in the
    middle of the main dialog, so I didn't add code for that. YMMV.
    
    Inspired by github pull #5777 by @L-Cranston-Shadow
    6f1274c8c9
  143. Add bitcoin-cli man page 96c19a3a8e
  144. Merge #5809: Add bitcoin-cli man page
    96c19a3 Add bitcoin-cli man page (Ciemon)
    46bfbe7148
  145. Merge pull request #5801
    de5403f [GUI] Move fee dialog minimise button away from "Transaction Fee" (Michael Ford)
    482783b341
  146. Remove obsolete pubsub method definitions 9abbeeabd7
  147. Merge pull request #5820
    85da07a Better fingerprinting protection for non-main-chain getdatas. (Pieter Wuille)
    59310f1c02
  148. Merge pull request #5694
    25cf6f3 minor rework of SendMoney in rpcwallet (Philip Kaufmann)
    db4a1d598c
  149. Merge pull request #5832
    9abbeea Remove obsolete pubsub method definitions (Pieter Wuille)
    10a3ff07f5
  150. keys: remove libsecp256k1 verification until it's actually supported
    This was added a while ago for testing purposes, but was never intended to be
    used. Remove it until upstream libsecp256k1 decides that verification is
    stable/ready.
    16a58a8644
  151. contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables 3c6d594e64
  152. Merge pull request #5839
    16a58a8 keys: remove libsecp256k1 verification until it's actually supported (Cory Fields)
    86eb461c5b
  153. Merge pull request #5819
    d23b0a2 depends: always use static qt5 for linux (Cory Fields)
    3448b13 build: fix typo in configure help (Cory Fields)
    c95ac83 gitian: fix x86_64 build with static libstdc++ (Cory Fields)
    0671516 build: change reduce exports/static libstdc++ options for gitian and travis (Cory Fields)
    aa36730 build: remove libstdc++ backwards-compat (Cory Fields)
    3ee028f build: disable reduced exports by default (Cory Fields)
    f8e68f7bfb
  154. Merge pull request #5775
    deda3e1 [Qt] remove unused getNumBlocksAtStartup() from ClientModel (Philip Kaufmann)
    47ee8cf [Qt] use qint64 in BitcoinGUI::setNumBlocks (Philip Kaufmann)
    3dfcdf46c2
  155. startup script for centos, with documentation. 723664b5db
  156. Reinitialize state in between individual unit tests.
    This changes the TestingSetup fixture to be per-unit-test rather than global.
    Most tests don't need it, so it's only invoked in a few.
    51598b2631
  157. [Qt] Code-movement-only: Format confirmation message in sendcoinsdialog 90a43c1e93
  158. Merge pull request #5830
    6f1274c qt: Don't save geometry for options and about/help window (Wladimir J. van der Laan)
    215475aa00
  159. QT: remove unused parameter 84a05b843b
  160. [Qt] fix a issue where "command line options"-action overwrite "Preference"-action (on OSX)
    - fixes #5800
    9bbb880be4
  161. Add correct bool combiner for net signals 9519a9a420
  162. Limit message sizes before transfer
    This introduces a fixed limit for the size of p2p messages, and enforces it
    before download.
    ba04c4a780
  163. Merge pull request #5813
    34e5015 Add unit tests for next difficulty calculations (Ross Nicoll)
    ee9f2bfa7b
  164. Merge pull request #5843
    ba04c4a Limit message sizes before transfer (Pieter Wuille)
    51377c2dbe
  165. build: Endian compatibility
    - Detect endian instead of stopping configure on big-endian
    - Add `byteswap.h` and `endian.h` header for compatibility with
      Windows and other operating systems that don't come with them
    - Update `crypto/common.h` functions to use compat
      endian header
    4414f5ffe1
  166. src/hash.cpp: endian compatibility 3ca5852dc2
  167. src/main.cpp: endian compatibility in packet checksum check 556814ec4e
  168. src/net.cpp: endian compatibility in EndMessage dec84cae2a
  169. src/primitives/block.cpp: endian compatibility in GetHash 81aeb28436
  170. src/primitives/transaction.h: endian compatibility in serialization 4f92773f92
  171. src/script/script.h: endian compatibility for PUSHDATA sizes 4e853aa163
  172. src/serialize.h: base serialization level endianness neutrality
    Serialization type-safety and endianness compatibility.
    01f9c3449a
  173. src/netbase.h: Fix endian in CNetAddr serialization
    We've chosen to htons/ntohs explicitly on reading and writing
    (I do not know why). But as READWRITE already does an endian swap
    on big endian, this means the port number gets switched around,
    which was what we were trying to avoid in the first place. So
    to make this compatible, serialize it as FLATDATA.
    aac3205375
  174. src/arith_256.cpp: bigendian compatibility f4e6487219
  175. src/txmempool.cpp: make numEntries a uint32_t
    Don't ever serialize a size_t or long, their sizes are platform
    dependent.
    9f4fac98c4
  176. Add serialize float/double tests 62b30f09ac
  177. Replace CBlockHeader::GetHash with call to SerializeHash
    Removes variability between LE and BE.
    As suggested by @sipa.
    a0ae79d775
  178. Run unit tests in different orders
    Set the BOOST_TEST_RANDOM environment variable, to
    run unit tests in different orders for each test in the
    test matrix that runs tests.
    69866436be
  179. Merge pull request #5510
    a0ae79d Replace CBlockHeader::GetHash with call to SerializeHash (Wladimir J. van der Laan)
    62b30f0 Add serialize float/double tests (Wladimir J. van der Laan)
    9f4fac9 src/txmempool.cpp: make numEntries a uint32_t (Wladimir J. van der Laan)
    f4e6487 src/arith_256.cpp: bigendian compatibility (Wladimir J. van der Laan)
    aac3205 src/netbase.h: Fix endian in CNetAddr serialization (Wladimir J. van der Laan)
    01f9c34 src/serialize.h: base serialization level endianness neutrality (Wladimir J. van der Laan)
    4e853aa src/script/script.h: endian compatibility for PUSHDATA sizes (Wladimir J. van der Laan)
    4f92773 src/primitives/transaction.h: endian compatibility in serialization (Wladimir J. van der Laan)
    81aeb28 src/primitives/block.cpp: endian compatibility in GetHash (Wladimir J. van der Laan)
    dec84ca src/net.cpp: endian compatibility in EndMessage (Wladimir J. van der Laan)
    556814e src/main.cpp: endian compatibility in packet checksum check (Wladimir J. van der Laan)
    3ca5852 src/hash.cpp: endian compatibility (Wladimir J. van der Laan)
    4414f5f build: Endian compatibility (Wladimir J. van der Laan)
    7c3fbc34ae
  180. Merge pull request #5151
    eec3713 make CMessageHeader a dumb storage class (Cory Fields)
    2f10aa0fa1
  181. Merge pull request #5793
    6cb4a52 [Qt, Linux] honor current network when creating autostart link (Philip Kaufmann)
    9673c35 [Qt, Win] honor current network when creating autostart link (Philip Kaufmann)
    d26f0b263c
  182. Merge pull request #5855
    6986643 Run unit tests in different orders (Gavin Andresen)
    d7989c04f6
  183. Merge pull request #5858
    9bbb880 [Qt] fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) (Jonas Schnelli)
    513e025239
  184. [Qt] rework setNumBlocks to have blockDate as parameter
    - reduces some functional overhead and simplifies the code
    8517e9709e
  185. Merge pull request #5776
    8517e97 [Qt] rework setNumBlocks to have blockDate as parameter (Philip Kaufmann)
    f50120ab4d
  186. Merge pull request #5442
    dca799e Ignore getaddr messages on Outbound connections. (Ivan Pustogarov)
    c1b723c30a
  187. Merge pull request #5852
    51598b2 Reinitialize state in between individual unit tests. (Pieter Wuille)
    cdae53e456
  188. tests: change main and wallet tests to BOOST_FIXTURE_TEST_SUITE
    Avoid this travis error:
    
        test_bitcoin: chainparams.cpp:330: const CChainParams& Params():
        Assertion `pCurrentParams' failed.
        unknown location(0): fatal error in "subsidy_limit_test": signal:
        SIGABRT (application abort requested)
        test/allocator_tests.cpp(116): last checkpoint
    8cbe1f4f58
  189. test: Remove UNITTEST params
    UNITTEST parameter are not used by any current tests, and the model
    (modifyable parameters) is inconvenient when unit-testing. As
    they are stored in a global structure eevery test
    would have to (re)set up its own parameters.
    
    For consistency it is also better to test with MAIN parameters.
    59bd89f116
  190. test: remove fSkipProofOfWork
    Not used, and REGTEST already allows creating blocks at
    the lowerst possible difficulty.
    3aa0130b96
  191. fix possible block db breakage during re-index
    When re-indexing, there are a few cases where garbage data may be skipped in
    the block files. In these cases, the indices are correctly written to the index
    db, however the pointer to the next position for writing in the current block
    file is calculated by adding the sizes of the valid blocks found.
    
    As a result, when the re-index is finished, the index db is correct for all
    existing blocks, but the next block will be written to an incorrect offset,
    likely overwriting existing blocks.
    
    Rather than using the sum of all valid blocks to determine the next write
    position, use the end of the last block written to the file. Don't assume that
    the current block is the last one in the file, since they may be read
    out-of-order.
    bb6acff079
  192. Help messages correctly formatted (79 chars)
    Help messages are formatted programmatically with FormatParagraph
    in order not to break existing strings in Transifex.
    
    The new format works even if the translation of the strings
    modifies the lenght of the message.
    
    Sqashed 6 commits in a single one.
    Help messages correctly formatted for SVGA text mode (132 chars)
    
    Help messages are formatted programmatically with FormatParagraph
    in order not to break existing strings in Transifex.
    
    The new format should work even if the translation of the strings
    modifies the lenght of the message.
    
    Fix - syntax error
    
    Correct formatting for 79 chars
    
    Correctly based on C++ functions
    
    Removed spare spaces from option strings
    
    Fix - syntax error
    1fdb9fa3f9
  193. Fix - bitcoin-qt usage message
    . Closes the bug from commit e179eb3d9bfec7e67908242c71c87b716a41c97c
    ("bitcoin-qt -help" did not show any message)
    . Move all the options in init.cpp (there were already some
    options related to bitcoin-qt)
    f75470794b
  194. Merge pull request #5864
    bb6acff fix possible block db breakage during re-index (Cory Fields)
    45b7dc2c25
  195. Merge pull request #5749
    f754707 Fix - bitcoin-qt usage message (Luca Venturini)
    1fdb9fa Help messages correctly formatted (79 chars) (Luca Venturini)
    d734d87b28
  196. Initialization: set Boost path locale in main thread
    The path locale is lazy initialized and to avoid deinitialization errors
    in multithreading environments, it is set explicitly by the main thread.
    317e66c741
  197. Merge pull request #5871
    3aa0130 test: remove fSkipProofOfWork (Wladimir J. van der Laan)
    59bd89f test: Remove UNITTEST params (Wladimir J. van der Laan)
    e564e63ef0
  198. [QT] fix OSX dock icon window reopening
    fixes #5878
    89e70e931d
  199. tests: add a BasicTestingSetup and apply to all tests
    Make sure that chainparams and logging is properly initialized. Doing
    this for every test may be overkill, but this initialization is so
    simple that that does not matter.
    
    This should fix the travis issues.
    92fd887fd4
  200. Merge pull request #5883
    92fd887 tests: add a BasicTestingSetup and apply to all tests (Wladimir J. van der Laan)
    164d7b674b
  201. Merge pull request #5859
    9519a9a Add correct bool combiner for net signals (Pieter Wuille)
    dd4ffcec0e
  202. [Move Only] Move wallet related things to src/wallet/
    could once be renamed from /src/wallet to /src/legacywallet.
    50c72f23ad
  203. fix InvalidateBlock to repopulate setBlockIndexCandidates a9af415887
  204. add RPC test for InvalidateBlock 88f6c8c365
  205. BUGFIX: Stack around the variable 'rv' was corrupted e96c5184e7
  206. Merge pull request #5879
    88f6c8c add RPC test for InvalidateBlock (Alex Morcos)
    a9af415 fix InvalidateBlock to repopulate setBlockIndexCandidates (Alex Morcos)
    84a7789b29
  207. Merge pull request #5884
    e96c518 BUGFIX: Stack around the variable 'rv' was corrupted (fsb4000)
    7077fe6dd4
  208. Subtract fee from amount
    Fixes #2724 and #1570.
    
    Adds the
    automatically-subtract-the-fee-from-the-amount-and-send-whats-left
    feature to the GUI and RPC (sendtoaddress,sendmany).
    292623adf5
  209. rpcwallet/sendmany: Just take an array of addresses to subtract fees from, rather than an Object with all values being identical 40a757331a
  210. qa/rpc-tests/wallet: Tests for sendmany 1d9b378c30
  211. Reorder travis builds for faster response 5abe2cf110
  212. [QT] some mac specifiy cleanup (memory handling, unnecessary code) 8b60808c1e
  213. Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates cd3d67cf3b
  214. Merge pull request #5849
    3c6d594 contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables (Luke Dashjr)
    41259ca635
  215. Merge pull request #5831
    1d9b378 qa/rpc-tests/wallet: Tests for sendmany (Luke Dashjr)
    40a7573 rpcwallet/sendmany: Just take an array of addresses to subtract fees from, rather than an Object with all values being identical (Luke Dashjr)
    292623a Subtract fee from amount (Cozz Lovan)
    90a43c1 [Qt] Code-movement-only: Format confirmation message in sendcoinsdialog (Cozz Lovan)
    df5c246ba3
  216. Merge pull request #5847
    723664b startup script for centos, with documentation. (joshr)
    f238add26a
  217. Merge pull request #5880
    8b60808 [QT] some mac specifiy cleanup (memory handling, unnecessary code) (Jonas Schnelli)
    89e70e9 [QT] fix OSX dock icon window reopening (Jonas Schnelli)
    226f880498
  218. depends: fix a static qt5 crash when using certain versions of libxcb
    See here for background: https://bugreports.qt.io/browse/QTBUG-34748
    
    libxcb temporarily had an abi breakage which caused crashes when qt was
    compiled against a non-compatible version. Building qt with -qt-xcb should have
    shielded us from this issue, except that incompatible headers were used when
    building qt's wrapper.
    
    Make sure those headers aren't picked up by qt's build.
    
    Details:
    
    qt's build adds a wrapper around the xcb libs when -qt-xcb is used. This is
    done to avoid having to link to a handful of different libs, which may not be
    api/abi stable. This build depends on include-order, so that its files are
    found before the real libxcb headers.
    
    Our build (for other reasons related to qt's complicated build-system) injects
    our prefix into CXXFLAGS. Because libxcb is found in this path, that reverses
    the include-order, negating the purpose of the wrapper.
    
    To fix, libxcb's includes are simply moved to a subdir. pkg-config ensures that
    they're still found properly when needed.
    
    To make things even more interesting, this behavior in qt's .pro files is broken:
    INCLUDEPATH += $$QMAKE_CFLAGS_XCB
    
    The INCLUDEPATH variable is processed by qmake which automatically prefixes each
    entry with "-I". The QMAKE_CFLAGS_XCB variable comes from pkg-config and
    already contains -I, making the path look like "-I-I/path/to/xcb/headers".
    
    To work around that, CFLAGS/CXXFLAGS are used here rather than INCLUDEPATH.
    bb44d9e754
  219. Merge pull request #5915
    bb44d9e depends: fix a static qt5 crash when using certain versions of libxcb (Cory Fields)
    5bd3a92da2
  220. Reduce fingerprinting through timestamps in 'addr' messages.
    Suggested by Jonas Nick.
    9c2737901b
  221. Merge pull request #5860
    9c27379 Reduce fingerprinting through timestamps in 'addr' messages. (Pieter Wuille)
    93a8c46807
  222. Merge pull request #5360
    71acb86 print the caught error instead of raising an error (Heath)
    29fef0b903
  223. Merge pull request #5149
    adaa568 Add script to verify all merge commits are signed (Matt Corallo)
    c7abfa595d
  224. allocators: split allocators and pagelocker
    Pagelocker is only needed for secure (usually wallet) operations, so don't make
    the zero-after-free allocator depend on it.
    d7d187e8a4
  225. Merge #5810: MOVEONLY-ISH: allocators: split allocators and pagelocker
    d7d187e allocators: split allocators and pagelocker (Cory Fields)
    3811a5025e
  226. Merge pull request #5745
    50c72f2 [Move Only] Move wallet related things to src/wallet/ (Jonas Schnelli)
    05f17d4eaa
  227. refactor: move bdb (bitdb) interaction from init.cpp to wallet.cpp
    this will remove db.h from init.cpp
    2bb1c87700
  228. Merge #5758: refactor: move BDB (bitdb / db.h) interaction from init.cpp to wallet.cpp
    2bb1c87 refactor: move bdb (bitdb) interaction from init.cpp to wallet.cpp (Jonas Schnelli)
    f3948a30cd
  229. Abstract out Ctransaction-specific signing into TransactionSignatureCreator 18051c7fbd
  230. use constant references for strings in functions in wallet/*.* 341e2385d5
  231. Add a NODE_GETUTXO service bit and document NODE_NETWORK.
    Stop translating the NODE_* names as they are technical and cannot be translated.
    5983a4e50f
  232. wallet: move crypter to wallet a354a59f1f
  233. Merge pull request #5877
    317e66c Initialization: set Boost path locale in main thread (dexX7)
    28cc24f961
  234. Merge pull request #5938
    a354a59 wallet: move crypter to wallet (Cory Fields)
    46ba7a74a5
  235. Merge pull request #5933
    341e238 use constant references for strings in functions in wallet/*.* (Philip Kaufmann)
    45d6d0bce5
  236. Merge pull request #5429
    5abe2cf Reorder travis builds for faster response (Pieter Wuille)
    03106221d4
  237. Merge pull request #5208
    18051c7 Abstract out Ctransaction-specific signing into TransactionSignatureCreator (Pieter Wuille)
    2afd919f21
  238. Merge pull request #5890
    cd3d67c Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates (Alex Morcos)
    22cfe23196
  239. don't trickle for whitelisted nodes fc720207e0
  240. Includes: Refactor: Move CValidationInterface and CMainSignals out of main 26c16d9de9
  241. Includes: MOVEONLY: move more method definitions out of wallet.h eca0b1ea62
  242. Includes: Do not include main.h from any other header 8a893c949b
  243. Merge pull request #5681
    8a893c9 Includes: Do not include main.h from any other header (Jorge Timón)
    eca0b1e Includes: MOVEONLY: move more method definitions out of wallet.h (Jorge Timón)
    26c16d9 Includes: Refactor: Move CValidationInterface and CMainSignals out of main (Jorge Timón)
    8d2fbfa491
  244. Fix --disable-wallet build after merge of #5681 cbb2cf5522
  245. Consensus: Refactor: Introduce Consensus::Params class bd006110fb
  246. Consensus: Refactor: Decouple pow.o from chainparams.o d698ef690f
  247. Merge pull request #5812
    d698ef6 Consensus: Refactor: Decouple pow.o from chainparams.o (Jorge Timón)
    bd00611 Consensus: Refactor: Introduce Consensus::Params class (Jorge Timón)
    687f10d9ec
  248. Merge pull request #5942
    fc72020 don't trickle for whitelisted nodes (Ruben de Vries)
    6a1fbc4921
  249. Merge pull request #5876
    5983a4e Add a NODE_GETUTXO service bit and document NODE_NETWORK. Stop translating the NODE_* names as they are technical and cannot be translated. (Mike Hearn)
    8e4fd0cc31
  250. Update libsecp256k1. 223d8630b0
  251. Switch test case signing to RFC6979 extra entropy
    Instead of manually tweaking the deterministic nonce post-generation,
    pass the test case number in as extra entropy to RFC6979.
    437ada3e55
  252. gmaxwell commented at 12:25 AM on March 28, 2015: contributor

    ACK.

    I was uncomfortable with (and complained about) the "test nonce" approach used previously as it used seriously insecure linearly related nonces... this was fine for tests but it seemed like a matter of time before someone wanted to use it to derandomize regular signing (and, indeed, someone recently asked about that).

  253. in src/key.cpp:None in 437ada3e55
      73 | @@ -73,25 +74,14 @@ CPubKey CKey::GetPubKey() const {
      74 |      return result;
      75 |  }
      76 |  
      77 | -extern "C"
    


    laanwj commented at 11:14 AM on April 1, 2015:

    Happy to get rid of this function.

  254. laanwj commented at 11:19 AM on April 1, 2015: member

    ACK to bitcoin core changes, haven't been able to review all secp256k1 changes.

  255. laanwj added the label Improvement on Apr 1, 2015
  256. sipa commented at 5:55 PM on April 1, 2015: member

    Would it be interesting to have a more automated way for verifying that the contents of the subtree directory matches the contents of the listed commit of the subtree repository?

  257. laanwj commented at 10:21 AM on April 2, 2015: member

    Yes, a script that compares our secp256k1 directory with an upstream repository would be useful. Probably amounts to one, fairly complicated, git diff statement but my knowledge of git subtrees is not enough to come up with it.

  258. theuni commented at 5:24 PM on April 2, 2015: member

    upstream secp256k1 commit is 1897b8e

    git diff 1897b8e origin/pr/5952:src/secp256k1

  259. sipa commented at 7:04 PM on April 2, 2015: member

    Another way is checking the git tree id:

    (in master)

    $ git ls-tree master src/secp256k1
    040000 tree 3b675a638355f8ccad0474900fed0bffcda8e62a    src/secp256k1
    

    (in secp256k1, with 50cc6ab the commit id of the last secp256k1 import)

    $ git show --format=raw 50cc6ab | head -n2
    commit 50cc6ab0625efda6dddf1dc86c1e2671f069b0d8
    tree 3b675a638355f8ccad0474900fed0bffcda8e62a
    
  260. laanwj commented at 7:51 AM on April 8, 2015: member

    Checked the subtree using #5965's git-subtree-check.sh script.

    src/secp256k1 in HEAD was last updated to upstream commit 1897b8e90bbbdcd919427c9a8ae35b420e919d8f (tree 1c8df9fa9ddfb2b035ac0327fe074b634e458f56)
    src/secp256k1 in HEAD currently refers to tree 1c8df9fa9ddfb2b035ac0327fe074b634e458f56
    GOOD
    

    ACK

  261. laanwj merged this on Apr 8, 2015
  262. laanwj closed this on Apr 8, 2015

  263. laanwj referenced this in commit eb87f84d18 on Apr 8, 2015
  264. SergioDemianLerner commented at 3:20 PM on April 11, 2015: contributor

    I did a first pass review of all changes, but the number of changes is huge! Most of them are simply the removal of a variable declaration from its first use. However, many reviewers of this commit would be helpful.

  265. gmaxwell commented at 3:57 PM on April 11, 2015: contributor

    @SergioDemianLerner This is a subtree merge from the libsecp256k1 repository ( https://github.com/bitcoin/secp256k1/ ), merging in months of work; you can see the individual changes there (and the review process there). The big stirring you're reffering to was the change of the codebase to be strict standards conformant C89.

    It's much easier to review from its actual repository because e.g. with the changes split out you can verify various changes that shouldn't have changed the binaries didn't and such.

  266. sipa commented at 7:26 PM on April 11, 2015: member

    In addition, with the script added in #5965 you can verify that the subtree corresponds to the result of the commits in the external repository.

  267. MarcoFalke locked this on Sep 8, 2021

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