Use libsecp256k1 for signing operations #5220

pull sipa wants to merge 7292 commits into bitcoin:master from sipa:secp changing 1076 files +285533 −424
  1. sipa commented at 6:56 pm on November 5, 2014: member
  2. Improve getheaders (sending) logging 4c93322923
  3. Better logging of stalling 1bcee67ee7
  4. Add height to "Requesting block" debug 1af838b339
  5. Rename setBlockIndexValid to setBlockIndexCandidates e17bd58392
  6. Make -reindex cope with out-of-order blocks
    Remember out-of-order block headers along with disk positions. This is
    likely the simplest and least-impact way to make -reindex work with
    headers first.
    
    Based on top of #4468.
    ad96e7ccd9
  7. Skip reindexed blocks individually
    Instead of skipping to the last reindexed block in each file (which could
    jump over processed out-of-order blocks), just skip each already processed
    block individually.
    16d5194165
  8. Fix rebuild-chainstate feature and improve its performance
    Previous refactorings broke the ability to rebuild the chainstate by deleting the chainstate
    directory, resulting in an incorrect "Incorrect or no genesis block found" error message. Fix
    that.
    
    Also, improve the performance of ActivateBestBlockStep by using the skiplist to only discover
    a few potential blocks to connect at a time, instead of all blocks forever - as we likely bail
    out after connecting a single one anyway.
    afc32c5eea
  9. Fix large reorgs e11b2ce4c6
  10. build: fix libtool's refusal to link static libs into a dll 1723862e82
  11. boost: drop dependency on is_fundamental in serialization
    There's only one case where a vector containing a fundamental type is
    serialized all-at-once, unsigned char. Anything else would lead to
    strange results.
    
    Use a dummy argument to overload in that case.
    1d9b86d584
  12. boost: drop dependency on tuple in serialization
    There's only one user of this form of serialization, so it can be easily
    dropped. It could be re-added if desired when we switch to c++11.
    52955068b7
  13. boost: remove CPrivKey dependency from CECKey
    This allows CECKey to be used without directly depending on the secure
    allocators
    e405aa48c7
  14. boost: drop boost dependency in core.cpp e1c9467766
  15. boost: drop boost dependency in utilstrencodings.cpp 352058e8b0
  16. boost: drop boost dependency in version.cpp.
    Also add a test to verify.
    5f4bcf6b14
  17. Merge pull request #5082
    5f4bcf6 boost: drop boost dependency in version.cpp. (Cory Fields)
    352058e boost: drop boost dependency in utilstrencodings.cpp (Cory Fields)
    e1c9467 boost: drop boost dependency in core.cpp (Cory Fields)
    e405aa4 boost: remove CPrivKey dependency from CECKey (Cory Fields)
    5295506 boost: drop dependency on tuple in serialization (Cory Fields)
    1d9b86d boost: drop dependency on is_fundamental in serialization (Cory Fields)
    e8f6d54f1f
  18. Add LIBTOOLFLAGS CXX tag to qt makefile include
    Related #4993
    6f155bdb80
  19. Squashed 'src/leveldb/' changes from 7924331..7d41e6f
    7d41e6f Merge upstream LevelDB 1.18
    803d692 Release 1.18
    
    git-subtree-dir: src/leveldb
    git-subtree-split: 7d41e6f89ff04ce9e6a742932924796f69c6e23d
    4b0e2d75d7
  20. Merge src/leveldb changes for LevelDB 1.18. 5b9f8425a5
  21. squashme on 3fdb9e8c (Bluematt's bikeshedding) ca3ce0fa03
  22. MOVEONLY: CInPoint from core to txmempool e8ea0fd19e
  23. Merge pull request #5096
    e8ea0fd MOVEONLY: CInPoint from core to txmempool (jtimon)
    c2fc9729d1
  24. Merge pull request #4804 from jtimon/chainparams3
    Remove CBaseChainParams::NetworkID()
    494ff05a4c
  25. Add a SECURE style flag for ThreadSafeMessageBox, which indicates that the message contains sensitive information. This keeps the message from being output to the debug log by bitcoind. Fixes a possible security risk when starting bitcoind in server mode without the 'rpcpassword' option configured, resulting in the "suggested" password being output to the debug log. d4746d56c0
  26. Merge pull request #5092
    6f155bd Add LIBTOOLFLAGS CXX tag to qt makefile include (Michael Ford)
    971a3b46a3
  27. doc: Add historical release notes for 0.9.3 8e9a665f55
  28. Merge pull request #4468
    e11b2ce Fix large reorgs (Pieter Wuille)
    afc32c5 Fix rebuild-chainstate feature and improve its performance (Pieter Wuille)
    16d5194 Skip reindexed blocks individually (Pieter Wuille)
    ad96e7c Make -reindex cope with out-of-order blocks (Wladimir J. van der Laan)
    e17bd58 Rename setBlockIndexValid to setBlockIndexCandidates (Pieter Wuille)
    1af838b Add height to "Requesting block" debug (R E Broadley)
    1bcee67 Better logging of stalling (R E Broadley)
    4c93322 Improve getheaders (sending) logging (R E Broadley)
    f244c99 Remove CheckMinWork, as we always know all parent headers (Pieter Wuille)
    ad6e601 RPC additions after headers-first (Pieter Wuille)
    341735e Headers-first synchronization (Pieter Wuille)
    84d13eef88
  29. Add buildenv.py to gitignore 1d66bbcbfc
  30. script: move CScriptID to standard.h and add a ctor for creating them from CScripts
    This allows for a reversal of the current behavior.
    
    This:
    CScript foo;
    CScriptID bar(foo.GetID());
    
    Becomes:
    CScript foo;
    CScriptID bar(foo);
    
    This way, CScript is no longer dependent on CScriptID or Hash();
    066e2a1403
  31. script: add ToByteVector() for converting anything with begin/end
    This should move to a util header once their dependencies are cleaned up.
    e9ca4280f3
  32. script: move ToString and ValueString out of the header db8eb54bd7
  33. script: add a slew of includes all around and drop includes from script.h
    Lots of files ended up with indirect includes from script.h.
    85c579e3a6
  34. Merge pull request #5095
    d4746d5 Add a SECURE style flag for ThreadSafeMessageBox, which indicates that the message contains sensitive information. This keeps the message from being output to the debug log by bitcoind. Fixes a possible security risk when starting bitcoind in server mode without the 'rpcpassword' option configured, resulting in the "suggested" password being output to the debug log. (Mark Friedenbach)
    64ffc995d6
  35. Add IsNull() to class CAutoFile and remove operator ! fef24cab1a
  36. Rename CWalletInterface to CValidationInterface
    It's useful for much more than wallets.
    a96d113962
  37. Chain::SetTip return type to void b7ae2c172a
  38. Fixes for missing boost tuple.hpp header include. a3c26c2e85
  39. Add CValidationInterface::BlockChecked notification 24e8896430
  40. Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock, now that it no longer does the full block validity check f877aaaf16
  41. Rename RPC_TRANSACTION_* errors to RPC_VERIFY_* and use RPC_VERIFY_ERROR for submitblock d29a2917ff
  42. Merge pull request #5098
    1d66bbc Add buildenv.py to gitignore (Michael Ford)
    d0b19b5805
  43. Merge pull request #5105
    a96d113 Rename CWalletInterface to CValidationInterface (Pieter Wuille)
    b88cb1a96e
  44. Merge pull request #5076
    c0195b1 Bugfix: Remove default from -zapwallettxes description (inaccurate) (Luke Dashjr)
    0a08aa8 Parameterise command line option defaults, so translations are independent of them (Luke Dashjr)
    5f3ea3362a
  45. qt: English translation update after 0a08aa8 6d3ab8564c
  46. doc: add headers first backwards compat warning c313d6ecb9
  47. qt: small English language updates from translators
    More friendly language, use placeholders where possible
    9acbb4180a
  48. rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo`
    This fixes an iterator leak resulting in
    
        bitcoind: db/version_set.cc:789: leveldb::VersionSet::~VersionSet(): Assertion `dummy_versions_.next_ == &dummy_versions_' failed."
    
    exception on shutdown.
    
    Also make sure to flush pcoinsTip before calling GetStats() to make
    sure we apply them to the current height.
    33dfbf57d3
  49. openssl version bump
    Bumps the OpenSSL version to the latest release, and kills SSL2. (SSL3 was already killed here, so I'm not sure why SSL2 was left around?)
    
    No other changes.
    a6a3f141b1
  50. Replace some function names with __func__ 7b2bb96271
  51. CAutoFile: Explicit Get() and remove unused methods
    Also add documentation to some methods.
    a873823864
  52. Merge pull request #5104
    b7ae2c1 Chain::SetTip return type to void (21E14)
    93cb689e52
  53. Merge pull request #5110
    a3c26c2 Fixes for missing boost tuple.hpp header include. (randy-waterhouse)
    7305620599
  54. Merge pull request #5108
    a873823 CAutoFile: Explicit Get() and remove unused methods (Wladimir J. van der Laan)
    fef24ca Add IsNull() to class CAutoFile and remove operator ! (Ruben Dario Ponticeli)
    f984c7d7ad
  55. Merge pull request #4988
    7b2bb96 Replace some function names with __func__ (Pieter Wuille)
    ed6d1a2 Keep information about all block files in memory (Pieter Wuille)
    13bddef870
  56. Merge pull request #4981
    85c579e script: add a slew of includes all around and drop includes from script.h (Cory Fields)
    db8eb54 script: move ToString and ValueString out of the header (Cory Fields)
    e9ca428 script: add ToByteVector() for converting anything with begin/end (Cory Fields)
    066e2a1 script: move CScriptID to standard.h and add a ctor for creating them from CScripts (Cory Fields)
    25cc1cf8dc
  57. boost: split stream classes out of serialize.h
    serialization now has no dependencies.
    fa7361907a
  58. Update license in pull-tester and rpc-tests
    Add missing copyright/license header where necessary
    214091d584
  59. doc: release notes update for `rpcallowip` syntax change c8a25189bc
  60. qt: remove monitoreddatamapper
    We haven't used the viewModified signal in ages, so we can use a normal
    QDataWidgetMapper.
    d2833de424
  61. fix build with libc++ after 85c579e 3a757c5294
  62. Merge pull request #5128
    3a757c5 fix build with libc++ after 85c579e (Cory Fields)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    3552d4b859
  63. Add doc/doxygen to .gitignore c772f4cb04
  64. Extend getchaintips RPC test.
    Add the capability to simulate network splits to the RPC test framework
    and use it to do more extensive testing of 'getchaintips'.
    dcb98466b4
  65. Work around #5113. 2290ed01bc
  66. Clear vFixedSeeds for regtest network
    It shouldn't inherit these from testnet.
    (seems to be already done for unit test network but forgotten here...)
    Fixes #5127.
    7c0f36c431
  67. Update comments in addrman to be doxygen compatible
    Also correct the file license
    24f5c94015
  68. Make CBlockIndex* returned by GetDepthInMainChain const.
    Make the CBlockIndex* (optionally) returned by GetDepthInMainChain
    const.  This prevents accidental modification.  The result is for
    reading its properties rather than modifying it.
    a31e8bad53
  69. Merge pull request #5116
    a6a3f14 openssl version bump (Dominyk Tiller)
    c47b9c7ba7
  70. --tracerpc option for regression tests
    Run tests with --tracerpc and all RPC calls will dump to the console.
    Very helpful for debugging.
    ec01243c14
  71. getblockhash: throw JSONRPCError (not runtime_error) 6261e6e6e0
  72. Merge pull request #5133 from laanwj/2014_10_regtest_fixed_seeds
    Clear vFixedSeeds for regtest network
    46df9c3b42
  73. Merge pull request #5137
    ec01243 --tracerpc option for regression tests (Gavin Andresen)
    505a9e1dae
  74. Merge pull request #5132
    2290ed0 Work around #5113. (Daniel Kraft)
    dcb9846 Extend getchaintips RPC test. (Daniel Kraft)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    e401a2c557
  75. Start with tidier cache directories
    Remove more files from the cached, 200-block-chain data directories.
    9f87325b22
  76. [Qt] Remove CAmount from BitcoinAmountField Q_PROPERTY 7014f382e3
  77. Merge pull request #5117
    7014f38 [Qt] Remove CAmount from BitcoinAmountField Q_PROPERTY (Cozz Lovan)
    5c85fde550
  78. Merge pull request #5131
    24f5c94 Update comments in addrman to be doxygen compatible (Michael Ford)
    c772f4c Add doc/doxygen to .gitignore (Michael Ford)
    b847e0139e
  79. Update comments in chain to be doxygen compatible 2fdc3351d7
  80. Update comments in chainparams to be doxygen compatible f2e03ffae9
  81. Merge pull request #5093
    4b0e2d7 Squashed 'src/leveldb/' changes from 7924331..7d41e6f (Pieter Wuille)
    65e4e8427d
  82. Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) d752ba86c1
  83. Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4)
    Also use the new flag as a standard rule, and replace the IsCanonicalPush
    standardness check with it (as it is more complete).
    698c6abb25
  84. Improve CScriptNum() comment
    Edited-by: Pieter Wuille <pieter.wuille@gmail.com>
    6004e77b92
  85. Ensure MINIMALDATA invalid tests can only fail one way
    Removes the need for the 'negated' versions of the tests, and ensures
    other failures don't mask what we're trying to test.
    554147ad9e
  86. Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule dfeec18b85
  87. Clearly separate PUSHDATA and numeric argument MINIMALDATA tests 2b62e1796b
  88. Add valid invert of invalid every numeric opcode tests 16d78bd68e
  89. Merge pull request #5134
    6261e6e getblockhash: throw JSONRPCError (not runtime_error) (dexX7)
    2ffdf21ce3
  90. Enable customising node policy for datacarrier data size with a -datacarriersize option 2aa632921e
  91. Merge pull request #5115
    33dfbf5 rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` (Wladimir J. van der Laan)
    d9702bcf7c
  92. Merge pull request #5119
    fa73619 boost: split stream classes out of serialize.h (Cory Fields)
    60abd463ac
  93. Merge pull request #5086
    1723862 build: fix libtool's refusal to link static libs into a dll (Cory Fields)
    28d412f build: quit abusing LIBS for Windows builds. (Cory Fields)
    1bd8a7b2b9
  94. Build util and common before building server 071473c55c
  95. Merge pull request #5112
    071473c Build util and common before building server (jtimon)
    f35d71ed22
  96. Merge pull request #5121
    214091d Update license in pull-tester and rpc-tests (Michael Ford)
    b6c99efe9c
  97. MOVEONLY: Move CFeeRate and Amount constants to amount.o eda3733091
  98. MOVEONLY: Separate CTransaction and dependencies from core 4a3587d8db
  99. MOVEONLY: separate CTxUndo out of core 999a2ab41e
  100. MOVEONLY: Move script/compressor out of script and put CTxOutCompressor (from
    core) with it
    561e9e9de9
  101. MOVEONLY: core.o -> core/block.o 99f41b9cf7
  102. Merge pull request #5139
    9f87325 Start with tidier cache directories (Gavin Andresen)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    e4f79c0219
  103. Merge pull request #5135
    a31e8ba Make CBlockIndex* returned by GetDepthInMainChain const. (Daniel Kraft)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    35ece7dd07
  104. boost: remove CPubKey dependency from CECKey. Follow-up of e405aa48 bdaec6abd3
  105. boost: code movement only: split CECKey into separate files 50f71cd52e
  106. Update generate-seeds.py to produce doxygen compatible comments 02fe12dcf4
  107. Merge pull request #5118
    50f71cd boost: code movement only: split CECKey into separate files (Cory Fields)
    bdaec6a boost: remove CPubKey dependency from CECKey. Follow-up of e405aa48 (Cory Fields)
    068b7f8ee2
  108. Update comments in wallet to be doxygen compatible 5b40d88688
  109. Update comments in key to be doxygen compatible ffd8eddab5
  110. Update comments in keystore to be doxygen compatible 2b173d3bcc
  111. Rename ProcessBlock to ProcessNewBlock to indicate change of behaviour, and document it 1bea2bbddc
  112. Merge pull request #5065
    16d78bd Add valid invert of invalid every numeric opcode tests (Peter Todd)
    2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests (Peter Todd)
    dfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule (Peter Todd)
    554147a Ensure MINIMALDATA invalid tests can only fail one way (Peter Todd)
    6004e77 Improve CScriptNum() comment (Peter Todd)
    698c6ab Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (Pieter Wuille)
    d752ba8 Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (Pieter Wuille)
    cd9114e513
  113. Merge pull request #5100
    99f41b9 MOVEONLY: core.o -> core/block.o (jtimon)
    561e9e9 MOVEONLY: Move script/compressor out of script and put CTxOutCompressor (from core) with it (jtimon)
    999a2ab MOVEONLY: separate CTxUndo out of core (jtimon)
    4a3587d MOVEONLY: Separate CTransaction and dependencies from core (jtimon)
    eda3733 MOVEONLY: Move CFeeRate and Amount constants to amount.o (jtimon)
    723c752636
  114. qt: Move transaction notification to transaction table model
    Move transaction new/update notification to TransactionTableModel.
    This moves the concerns to where they're actually handled.
    No need to bounce this through wallet model.
    
    - Do wallet transaction preprocessing on signal handler side;
      avoids locking cs_main/cs_wallet on notification in GUI thread
      (except for new transactions)
    023e63df78
  115. Separate protocol versioning from clientversion 71697f97d3
  116. Add missing reserved address spaces. 2d06c0febf
  117. Don't relay alerts to peers before version negotiation
    Fixes #1436
    20a5f610d3
  118. Introduce preferred download peers b4ee0bddad
  119. Fix for crash during block download 4ead850fe5
  120. Fix -loadblock after shutdown during IBD 8375e2215f
  121. Be a bit more verbose during -loadblock if we already have blocks 50b43fda08
  122. RPC: submitblock: Support for returning specific rejection reasons e69a5873e7
  123. Print parameter interactions to console, too eadcd0c802
  124. Update comments in rpcserver to be doxygen compatible 7792040294
  125. [Qt] fix slot connection problems when no wallet is loaded
    - guard 4 connect calls by an #ifdef when no wallet is loaded to fix "No
      such slot" warnings
    - also add comments when #ifdef ENABLE_WALLET end
    - fixes #5175
    981f7907c4
  126. Merge pull request #5148
    2b173d3 Update comments in keystore to be doxygen compatible (Michael Ford)
    ffd8edd Update comments in key to be doxygen compatible (Michael Ford)
    4bbcc8d0e7
  127. Merge pull request #5142
    02fe12d Update generate-seeds.py to produce doxygen compatible comments (Michael Ford)
    f2e03ff Update comments in chainparams to be doxygen compatible (Michael Ford)
    2fdc335 Update comments in chain to be doxygen compatible (Michael Ford)
    f157cbb443
  128. Merge pull request #5176
    981f790 [Qt] fix slot connection problems when no wallet is loaded (Philip Kaufmann)
    c1def0df51
  129. Merge pull request #5172
    eadcd0c Print parameter interactions to console, too (Matt Corallo)
    d5e5d1412e
  130. Merge pull request #5167
    2d06c0f Add missing reserved address spaces. (Matt Corallo)
    4f5f490ce0
  131. Merge pull request #5174
    7792040 Update comments in rpcserver to be doxygen compatible (Michael Ford)
    393a28a50c
  132. Merge pull request #5146
    5b40d88 Update comments in wallet to be doxygen compatible (Michael Ford)
    c4761ffb70
  133. Merge pull request #5164
    71697f9 Separate protocol versioning from clientversion (Cory Fields)
    8d2396c9c4
  134. Update comments in version to be doxygen compatible 6395ba3036
  135. Update comments in client version to be doxygen compatible 484e350f04
  136. tests: enable alertnotify test for Windows
    The semantics of "echo" are different there and they change the resulting text,
    but they're still correct and predictable.
    f635269cd1
  137. tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
    This will allow for windows tests to run with bitcoind.exe and bitcoin-cli.exe
    7a41614aa2
  138. tests: fix forknotify.py on windows
    Windows interprets 'foo.txt' as a literal filename while "foo.txt" is treated
    as expected.
    5122ea7190
  139. tests: remove old pull-tester scripts
    They're unused since the switch to Travis
    fa7f8cdc1a
  140. tests: replace the old (unused since Travis) tests with new rpc test scripts 7667850dbf
  141. add tests to travis 2191eac812
  142. Update serialize comments to be doxygen compatible 1c0aa9110e
  143. boost: moveonly: create eccryptoverify.h|cpp and move helper functions there
    Eventually (after 0.10) these files will hold the logic for crypto
    verification routines, and CKey/CPubKey will call into them.
    900078aeb4
  144. boost: moveonly: move BIP32Hash to hash.h 78c228c6e5
  145. boost: moveonly: split CPubKey and friends to new files d2e74c55bd
  146. minor cleanup: include orders, end comments etc.
    - no code changes
    771d500283
  147. Merge pull request #5168
    023e63d qt: Move transaction notification to transaction table model (Wladimir J. van der Laan)
    7bb681d407
  148. Merge pull request #5077
    2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option (Luke Dashjr)
    96012e83f1
  149. qt: translations update from Transifex 917b83127d
  150. fix a typo e743678d5a
  151. Merge pull request #5187
    e743678 fix a typo (Yoichi Hirai)
    7cd85f431a
  152. Merge pull request #5145
    484e350 Update comments in client version to be doxygen compatible (Michael Ford)
    6395ba3 Update comments in version to be doxygen compatible (Michael Ford)
    04e988c6ce
  153. util.cpp comment correction a2cfae8e18
  154. Merge pull request #5169
    20a5f61 Don't relay alerts to peers before version negotiation (Wladimir J. van der Laan)
    7a9356bf16
  155. Merge pull request #5185
    2191eac add tests to travis (Cory Fields)
    7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts (Cory Fields)
    fa7f8cd tests: remove old pull-tester scripts (Cory Fields)
    5122ea7 tests: fix forknotify.py on windows (Cory Fields)
    7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment (Cory Fields)
    f635269 tests: enable alertnotify test for Windows (Cory Fields)
    2a6972133f
  156. Remove file and class order guidelines be0e0703f2
  157. Merge pull request #5106
    1bea2bb Rename ProcessBlock to ProcessNewBlock to indicate change of behaviour, and document it (Luke Dashjr)
    d29a291 Rename RPC_TRANSACTION_* errors to RPC_VERIFY_* and use RPC_VERIFY_ERROR for submitblock (Luke Dashjr)
    f877aaa Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock, now that it no longer does the full block validity check (Luke Dashjr)
    24e8896 Add CValidationInterface::BlockChecked notification (Luke Dashjr)
    84d26d3a36
  158. Merge pull request #5186
    771d500 minor cleanup: include orders, end comments etc. (Philip Kaufmann)
    4e852e57b1
  159. Merge pull request #5201 from sipa/order
    Remove file and class order guidelines
    c969096070
  160. Fix all header defines 84738627ce
  161. Merge pull request #5157
    b4ee0bd Introduce preferred download peers (Pieter Wuille)
    7f7fede0eb
  162. Merge pull request #3727
    e69a587 RPC: submitblock: Support for returning specific rejection reasons (Luke Dashjr)
    ff17816abf
  163. Merge pull request #5162
    d2e74c5 boost: moveonly: split CPubKey and friends to new files (Cory Fields)
    78c228c boost: moveonly: move BIP32Hash to hash.h (Cory Fields)
    900078a boost: moveonly: create eccryptoverify.h|cpp and move helper functions there (Cory Fields)
    73b82a3089
  164. Merge pull request #5196
    8473862 Fix all header defines (Pavel Janík)
    df504e924a
  165. The first thing that SelectParams does is call SelectBaseParams. Therefore, we do not need to call SelectBaseParams immediately prior to calling SelectParams. 0d91ae308c
  166. Merge pull request #5191
    a2cfae8 util.cpp comment correction (21E14)
    1dbabb6521
  167. minor code style cleanup after recent merges
    - add a missing license header
    - correct some header orderings etc.
    b4347f6035
  168. Merge pull request #5205
    b4347f6 minor code style cleanup after recent merges (Philip Kaufmann)
    be32b5212b
  169. build: Fix "too many arguments" error
    Closes #5141
    70d80cc7bf
  170. Add "warmup mode" for RPC server.
    Start the RPC server before doing all the (expensive) startup
    initialisations like loading the block index.  Until the node is ready,
    return all calls immediately with a new error signalling "in warmup"
    with an appropriate status message (similar to the init message).
    
    This is useful for RPC clients to know that the server is there (e. g.,
    they don't have to start it) but not yet available.  It is used in
    Namecoin and Huntercoin already for some time, and there exists a UI
    hooked onto the RPC interface that actively uses this to its advantage.
    af82884ab7
  171. Merge pull request #5007
    af82884 Add "warmup mode" for RPC server. (Daniel Kraft)
    06037f3f46
  172. Avoid a bunch of copying/conversion in script/sign 1f847936c9
  173. depends: boost: hard-code hidden symbol visibility
    tl;dr: This solves boost visibility problems for default/release build configs
    on non-Linux platforms.
    
    When Bitcoin builds against boost's header-only classes, it ends up with
    objects containing symbols that the upstream boost libs also have. Since
    Bitcoin builds by default with hidden symbol visibility, it can end up trying
    to link against a copy of the same symbols with default visibility.
    This is not a problem on Linux because 3rd party static libs are un-exported
    by default (--exclude-libs,ALL), but that is not available for MinGW and OSX.
    
    Those platforms (and maybe others?) end up confused about which version to use.
    
    The OSX linker spews hundreds of: "ld: warning: direct access in <foo> to
    global weak symbol guard variable for <bar> means the weak symbol cannot be
    overridden at runtime. This was likely caused by different translation units
    being compiled with different visibility settings."
    
    MinGW's linker complains similarly.
    
    Since the default symbol visibility for Bitcoin is hidden and releases are
    built that way as well, build Boost with hidden visibility. Linux builds Boost
    this way also, but only for the sake of continuity.
    
    This means that the linker confusion logic is reversed, so the problem will
    will now be encountered if Bitcoin is built with --disable-reduce-exports, but
    that's better than the current situation.
    0246ab6088
  174. Merge pull request #5173
    50b43fd Be a bit more verbose during -loadblock if we already have blocks (Matt Corallo)
    8375e22 Fix -loadblock after shutdown during IBD (Matt Corallo)
    4ead850 Fix for crash during block download (Matt Corallo)
    0778333b8c
  175. Qt: Network-Traffic-Graph: make some distance between line and text
    Text directly glued on the graph-line looks not so good.
    93a3f0e7fe
  176. Qt: Add support for missing scrollbar in peers table 236d96e0a3
  177. Merge pull request #5218
    236d96e Qt: Add support for missing scrollbar in peers table (Jonas Schnelli)
    4e0e5e4bc8
  178. Merge pull request #5215
    93a3f0e Qt: Network-Traffic-Graph: make some distance between line and text (Jonas Schnelli)
    d064f7f3ee
  179. sipa commented at 8:15 pm on November 5, 2014: member
    @theuni Some help here would be welcome!
  180. sipa commented at 8:31 pm on November 5, 2014: member
    So without the unsetting of LDFLAGS/CFLAGS/LIBS, configuring libsecp256k1 fails. With unsetting all 3, bitcoind linking can’t find getaddrinfo/etc anymore. With unsetting just LDFLAGS/CFLAGS, but keeping LIBS, the above happens.
  181. Reduce bitcoin-cli dependencies 93a6022400
  182. Rearrange initial config checks: AC, AM, compiler, libtool.
    Removed some repeated and unused prog checks.
    eefb766c77
  183. theuni commented at 4:56 am on November 6, 2014: member

    @sipa See https://github.com/theuni/bitcoin/tree/5220, which is a handful of commits on top of this PR. I believe that should be working everywhere.

    Note that there are two patches for gmp to fix build issues (arm and darwin), both of which came from upstream.

    Including the lib as a subdir should eliminate the build problems we discussed on IRC, since that makes it “internal”. That’s only really possible if libsecp256k1 is non-optional for Bitcoin’s build.

  184. Always log number of threads for script verification
    Helps for troubleshooting.
    9bdec76037
  185. Change -genproclimit default to 1
    This is less surprising.
    
    Avoids the overload-the-CPU default of using N threads for script
    verification as well as N threads for generation where N is number of cores.
    f654f0040b
  186. Merge pull request #5221
    93a6022 Reduce bitcoin-cli dependencies (Pieter Wuille)
    df0a45503b
  187. sipa force-pushed on Nov 6, 2014
  188. Reduce bitcoin-tx dependencies bfe029feeb
  189. Merge pull request #5213
    0246ab6 depends: boost: hard-code hidden symbol visibility (Cory Fields)
    168de66a7e
  190. Merge pull request #5223
    bfe029f Reduce bitcoin-tx dependencies (Pieter Wuille)
    2f7601590b
  191. Merge pull request #5214
    eefb766 Rearrange initial config checks: AC, AM, compiler, libtool. Removed some repeated and unused prog checks. (kiwigb)
    2262415411
  192. laanwj added the label Wallet on Nov 6, 2014
  193. sipa force-pushed on Nov 6, 2014
  194. theuni commented at 8:37 pm on November 6, 2014: member
    @sipa Please take https://github.com/theuni/bitcoin/commit/8a6376ee3090f83a6e7c73f428952faa42722327 and squash it down if you’d prefer. I believe that’ll break native OSX builds otherwise.
  195. Fixing warning C4099: 'CExtPubKey' : type name first seen using 'class' now seen using 'struct' 5985ba9e61
  196. Fix node ranges in the test framework. 2db4c8a24d
  197. Merge pull request #5232
    5985ba9 Fixing warning C4099: 'CExtPubKey' : type name first seen using 'class' now seen using 'struct' (ENikS)
    a68bb4cdbe
  198. doc: Correct several typos in bootstrap.md
    - Also remove references to the blockchain size
    369be584f9
  199. Merge pull request #5225
    369be58 doc: Correct several typos in bootstrap.md (sandakersmann)
    9ea87f9e18
  200. 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
  201. gather_inputs: use correct variable in error message
    "amount" and "fee" do not exist (anymore?).
    5e2dcaebc4
  202. 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
  203. Merge pull request #5210
    1f84793 Avoid a bunch of copying/conversion in script/sign (Pieter Wuille)
    7b7c866160
  204. Adding license. a8a5e0133a
  205. Adding const. 38c62aec0d
  206. Make comments in /src/script doxygen compatible b9a36b15bf
  207. Merge pull request #5249
    38c62ae Adding const. (sinetek)
    5406f61373
  208. sipa force-pushed on Nov 10, 2014
  209. sipa commented at 12:35 pm on November 10, 2014: member
    @theuni rebased + cherry-picked 8a6376e
  210. Do signature-s negation inside the tests
    To avoid the need for libsecp256k1 to expose such functionality.
    f4e0aefadc
  211. sipa force-pushed on Nov 10, 2014
  212. sipa commented at 1:10 pm on November 10, 2014: member
    Rebased on top of #5256.
  213. Merge pull request #5239
    65e3a1e Make sure that GetRandomBytes never fails (Wladimir J. van der Laan)
    33d5ee6830
  214. Merge pull request #5246
    a8a5e01 Adding license. (sinetek)
    af3ec17f67
  215. sipa force-pushed on Nov 10, 2014
  216. Don't show wallet options in the preferences menu when running with -disablewallet d52f072605
  217. Merge pull request #5245
    d52f072 Don't show wallet options in the preferences menu when running with -disablewallet (sinetek)
    83f5daf2fe
  218. Add unauthenticated HTTP REST interface to public blockchain data. e2655e0ab1
  219. sipa force-pushed on Nov 12, 2014
  220. Merge pull request #5240
    5e2dcae gather_inputs: use correct variable in error message (dexX7)
    7ffb880775
  221. Merge pull request #5161
    845c86d Do not use third party services for IP detection. (Gregory Maxwell)
    0c7862e968
  222. Merge pull request #5256
    f4e0aef Do signature-s negation inside the tests (Pieter Wuille)
    60672a61ff
  223. travis: install less packages from apt-get 096efc5812
  224. theuni commented at 1:51 am on November 13, 2014: member
    build-side ACK, and the bitcoin code changes look sane, assuming they were correct to begin with and that the lib works as intended. I suspect @laanwj might prefer to see some of the &[0] move to begin_ptr() since the code is live now.
  225. 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
  226. 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
  227. travis: temporarily disable the forknotify test
    It appears to be breaking randomly on Windows
    c8b115e20b
  228. 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
  229. 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
  230. Merge pull request #5252
    b9a36b1 Make comments in /src/script doxygen compatible (Michael Ford)
    6c5c06eff7
  231. Merge pull request #5198
    1c0aa91 Update serialize comments to be doxygen compatible (Michael Ford)
    3d3ce7421e
  232. 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
  233. sipa force-pushed on Nov 14, 2014
  234. sipa commented at 5:38 pm on November 14, 2014: member
    Rebased after #5256 merge.
  235. 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
  236. 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
  237. script: check ScriptError values in script tests 219a1470c4
  238. [Qt] Fix height of BitcoinAmountField 7335ca1a05
  239. Fix typo in listreceivedbyaddress and listaccounts help text 5617267cd5
  240. Bugfix: Clarify coin control dialog labels 4ff81d6092
  241. Coin Control: Make list mode default 5d60b694e9
  242. Update comments in txmempool to be doxygen compatible
    Fix typo in Read() error message
    7329fdd1ba
  243. Update comments in util to be doxygen compatible c63a73d18a
  244. Merge pull request #5287
    7335ca1 [Qt] Fix height of BitcoinAmountField (Cozz Lovan)
    19f2aa9487
  245. [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
  246. Merge pull request #5282
    a7af983 don't override dir() in qa rpc tests (Bryan Bishop)
    09481eec88
  247. sipa force-pushed on Nov 17, 2014
  248. Merge pull request #5275
    1837987 Optimize -regtest setgenerate block generation (Gavin Andresen)
    
    Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
    d6479ffc6a
  249. Merge pull request #5292
    7329fdd Update comments in txmempool to be doxygen compatible (Michael Ford)
    47cb3606a3
  250. Merge pull request #5289
    5617267 Fix typo in listreceivedbyaddress and listaccounts  help text (Michael Ford)
    dbbe00f008
  251. Merge pull request #5293
    c63a73d Update comments in util to be doxygen compatible (Michael Ford)
    1f0436f8cb
  252. Merge pull request #5237
    2db4c8a Fix node ranges in the test framework. (Daniel Kraft)
    20e4f654f5
  253. 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
  254. Merge pull request #5297
    096efc5 travis: install less packages from apt-get (Cory Fields)
    3c1e10b161
  255. Merge pull request #5290
    5d60b69 Coin Control: Make list mode default (Luke Dashjr)
    4ff81d6 Bugfix: Clarify coin control dialog labels (Luke Dashjr)
    27b2288f33
  256. laanwj commented at 3:14 pm on November 18, 2014: member

    Doesn’t build for me on Ubuntu 14.04. I’m using:

     0$ contrib/devtools/github-merge.sh 5220
     1$ ./configure --with-gui=qt5 --with-incompatible-bdb
     2...
     3=== configuring in src/secp256k1 (/store/orion/projects/bitcoin/bitcoin/src/secp256k1)
     4configure: WARNING: no configuration information is in src/secp256k1
     5Fixing libtool for -rpath problems.
     6
     7$ make
     8Making all in src
     9...
    10make[1]: Entering directory `/store/orion/projects/bitcoin/bitcoin/src'
    11make[2]: Entering directory `/store/orion/projects/bitcoin/bitcoin/src'
    12make[3]: Entering directory `/store/orion/projects/bitcoin/bitcoin/src/secp256k1'
    13make[3]: *** No rule to make target `libsecp256k1.la'.  Stop.
    14make[3]: Leaving directory `/store/orion/projects/bitcoin/bitcoin/src/secp256k1'
    15make[2]: *** [secp256k1/libsecp256k1.la] Error 2
    16make[2]: Leaving directory `/store/orion/projects/bitcoin/bitcoin/src'
    17make[1]: *** [all-recursive] Error 1
    18make[1]: Leaving directory `/store/orion/projects/bitcoin/bitcoin/src'
    19make: *** [all-recursive] Error 1
    
  257. sipa commented at 3:16 pm on November 18, 2014: member
    Did you re-run ./autogen.sh?
  258. Merge pull request #2844 9445b876bd
  259. laanwj commented at 3:27 pm on November 18, 2014: member
    Oh, yes, that seems to have been the problem.
  260. HTTP REST: minor fixes
    1) const-ify internal helper ParseHashStr()
    
    2) use HTTPError() helper when returning HTTP_NOT_FOUND
    7715c84747
  261. laanwj commented at 4:28 pm on November 18, 2014: member
    Tested ACK commithash a52e11b2fb8c2b1ed7f1bd3f3837b23bf5f52b9e https://dev.visucore.com/bitcoin/acks/5220
  262. Delete src/secp256k1 before subtree import 7a7e109139
  263. Merge commit 'd48555b36ac512161b81f9b6bca7bea16a0cd806' as 'src/secp256k1' 2245a95ce8
  264. Always build and link libsecp256k1 07a9901703
  265. Do not use EC code in global constructors 4c97c64bf6
  266. Use libsecp256k1 in key.cpp dffb8f81b8
  267. Don't use bashisms in configure cf61b5441b
  268. depends: add gmp package ff1e5ba8c7
  269. depends: quit exporting in config.site 54566de29d
  270. build: fixup configure to not export anything 0dc8613864
  271. build: secp256k1 as a subdir, since it's required 4300876c81
  272. revert part of 9eda1620b
    This probably would've broken native OSX builds
    f9e40fb075
  273. sipa force-pushed on Nov 18, 2014
  274. sipa commented at 5:12 pm on November 18, 2014: member
    Sorry, I updated the secp256k1 code to a newer version. I’ll pull in further updates as extra commits instead.
  275. gmaxwell commented at 5:59 pm on November 18, 2014: contributor
    ugh. why does this the .patch for this PR write files all over src/ instead of putting them in secp256k1/src/ ? I guess this is just something screwy with github and subtrees?
  276. gmaxwell commented at 8:21 pm on November 18, 2014: contributor
    ACK.
  277. TheBlueMatt commented at 8:22 pm on November 18, 2014: member
    @gmaxwell thats a git bug, not a github bug (go try to rebase this pull, git will spew crap all over src/)
  278. laanwj merged this on Nov 19, 2014
  279. laanwj closed this on Nov 19, 2014

  280. laanwj referenced this in commit 271061242b on Nov 19, 2014
  281. Diapolo commented at 12:21 pm on November 19, 2014: none
    @sipa Is there a readme in the libs dir howto build without our toolchain used here?
  282. sipa commented at 12:25 pm on November 19, 2014: member
    Generally you would first build libsecp256k1.la inside the secp256k1 directory, and then link against it. What that translates to for $UNSPECIFIED_OTHER_BUILD_SYSTEM, no idea.
  283. cozz commented at 2:26 pm on November 19, 2014: contributor

    Why are there so many commits (250+) in this pull request, and 1122 files changed? It looks like a lot of old commits got remerged, is this intentional? I am no git-expert, it just looks weird here on github. To me it looks like we did something wrong when rebasing.

    Headline says “laanwj merged 7,292 commits into bitcoin:master”

  284. sipa commented at 2:28 pm on November 19, 2014: member
    Github just barfs at this for some reason. The actual commit in git is fine.
  285. cozz commented at 2:44 pm on November 19, 2014: contributor
    ok, fine with me. The old commit hashes are still the same, so it really looks like only github got confused.
  286. laanwj commented at 2:47 pm on November 19, 2014: member
    Indeed, Actual Git shows everything is fine. I’ve seen this before, not sure what causes it; maybe github gets confused by subtree as well.
  287. Diapolo commented at 2:14 pm on November 26, 2014: none

    @sipa I needed to build gmp with my MinGW-w64 compiler and used:

    Then I tried to build libsecp256k1 via:

    Now when trying to link to libsecp256k1 I get a bunch of these:

    Any idea for me?

    Seems it was my link order, changed from -lgmp -lsecp256k1 to -lsecp256k1 -lgmp!

    New question, does gmp NEED OpenSSL to work for what you are doing with it in secp256k1? Seems I was missing crypto.h during gmp build!

  288. laanwj commented at 2:27 pm on November 26, 2014: member

    gmp does certainly not require OpenSSL

    Doesn’t ‘make’ in depends work for you? You shouldn’t have to manually build dependencies anymore.

  289. Diapolo commented at 2:36 pm on November 26, 2014: none
    My MSYS + MinGW-w64 toolchain (that I manually setup on my Win machine) did give me headaches with what we now use as build system and because of that I’m still using Qt Creator and the .pro file, which I now upgraded to make use of libsecp256k1 ;).
  290. laanwj commented at 3:15 pm on November 26, 2014: member
    Where does it fail? At least in theory the depends system should work with any toolchain. Of course there may still be a few warts in it in practice, but it seems more constructive to solve those, also for other people that want to build with MinGW, than maintaining your own build system on the side. But of course it’s up to you.
  291. DrahtBot 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: 2024-11-22 12:12 UTC

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