aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-26tests: Add test case for std::ios_base::ateChun Kuan Lee
2018-09-26Move boost/std fstream to fsbridgeChun Kuan Lee
2018-09-26utils: Add fsbridge fstream function wrapperChun Kuan Lee
2018-09-25Merge #13877: utils: Make fs::path::string() always return utf-8 string on ↵MarcoFalke
Windows 2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee) Pull request description: Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`. Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118
2018-09-24Merge #13311: Don't edit Chainparams after initializationMarcoFalke
6fa901fb47 Don't edit Chainparams after initialization (Jorge Timón) 980b38f8a1 MOVEONLY: Move versionbits info out of versionbits.o (Jorge Timón) Pull request description: This encapsulates the "-vbparams" option, which is only meant for regtest, directly on CRegTestParams. This is a refactor and doesn't change functionality. Related to https://github.com/bitcoin/bitcoin/pull/8994 Tree-SHA512: 79771d729a63a720e743a9c77d5e2d80369f072d66202a43c1304e83a7d0ef7c6103d4968a03aea9666cc89a7203c618da972124a677b38cfe62ddaeb28f9f5d
2018-09-24Merge #13424: Consistently validate txid / blockhash length and encoding in ↵MarcoFalke
rpc calls 5eb20f81d9 Consistently use ParseHashV to validate hash inputs in rpc (Ben Woosley) Pull request description: ParseHashV validates the length and encoding of the string and throws an informative RPC error on failure, which is as good or better than these alternative calls. Note I switched ParseHashV to check string length first, because IsHex tests that the length is even, and an error like: "must be of length 64 (not 63, for X)" is much more informative than "must be hexadecimal string (not X)" in that case. Split from #13420 Tree-SHA512: f0786b41c0d7793ff76e4b2bb35547873070bbf7561d510029e8edb93f59176277efcd4d183b3185532ea69fc0bbbf3dbe9e19362e8017007ae9d51266cd78ae
2018-09-24Merge #14297: [RPC] Remove warning for removed estimatefee RPCMarcoFalke
1eb9a9b524 [RPC] Remove warning for removed estimatefee RPC (John Newbery) Pull request description: The RPC was removed in a previous version, but a warning was left for users to use the estimatesmartfee RPC. Remove that warning now that estimatefee has been gone for over one version. Tree-SHA512: 7fb440a354a5058f9e95930306d7fe0c1cba6563b9a44b7388a17d9e5c3cff42023f5aa1728fd94a1a11249ea4a8615a8a891afe4fa81ae46b61c2aa08e9cc47
2018-09-24Merge #14298: [REST] improve performance for JSON callsMarcoFalke
30973e9844 [REST] improve performance for JSON calls (Antoine Le Calvez) Pull request description: JSON calls do not use the raw data generated for the .bin and .hex calls. By moving the raw data creation into the .bin and .hex switch branches, JSON calls' performance is improved. Light benchmarking indicates that fetching 2000 JSON headers is ~25% faster, fetching large JSON blocks is ~4% faster. Tree-SHA512: 433552c89bac2469d041b48a4a991d5443e4026a3ad7dc5621685386029f22826484218642fa5130c268349a55524ecbc4e30d64c867bd6632e0edd24370cf11
2018-09-24Merge #13546: wallet: Fix use of uninitialized value bnb_used in ↵MarcoFalke
CWallet::CreateTransaction(...) a23a7f60aa wallet: Avoid potential use of unitialized value bnb_used in CWallet::CreateTransaction(...) (practicalswift) Pull request description: Avoid use of uninitialized value `bnb_used` in `CWallet::CreateTransaction(...)`. Tree-SHA512: 22faf0711ae35af44d9a0ab7f251bc01661ac88b40ad7b0a87a510427b46bbc8caf16868cab2e0a05e7d8518e93ce666d6bd1d48d3707d37bab2c0fb56a0a4a2
2018-09-23Don't edit Chainparams after initializationJorge Timón
2018-09-23MOVEONLY: Move versionbits info out of versionbits.oJorge Timón
2018-09-23[REST] improve performance for JSON callsAntoine Le Calvez
JSON calls do not use the raw data generated for the .bin and .hex calls. By moving the raw data creation into the .bin and .hex switch branches, JSON calls become faster.
2018-09-22[RPC] Remove warning for removed estimatefee RPCJohn Newbery
The RPC was removed in a previous version, but a warning was left for users to use the estimatesmartfee RPC. Remove that warning now that estimatefee has been gone for over one version.
2018-09-23Make fs::path::string() always return utf-8 stringChun Kuan Lee
2018-09-19Merge #14287: tests: Use MakeUnique to construct objects owned by unique_ptrsMarcoFalke
b6718e373e tests: Use MakeUnique to construct objects owned by unique_ptrs (practicalswift) Pull request description: A subset of #14211 ("Use MakeUnique to construct objects owned by unique_ptrs") as suggested by @MarcoFalke in https://github.com/bitcoin/bitcoin/pull/14211#issuecomment-423324019. Use `MakeUnique` to construct objects owned by `unique_ptr`s. Rationale: * `MakeUnique` ensures exception safety in complex expressions. * `MakeUnique` gives a more concise statement of the construction. Tree-SHA512: 1228ae6ce7beb178d79142c4e936b728178ccaa8aa35c6d8feeb33d1a667abfdd010c59996a9d833594611e913877ce5794e75953d11d9b1fdbac04aa491d9cf
2018-09-21tests: Use MakeUnique to construct objects owned by unique_ptrspracticalswift
2018-09-20Merge #14214: convert C-style (void) parameter lists to C++ style ()MarcoFalke
3ccfa34b32 convert C-style (void) parameter lists to C++ style () (Arvid Norberg) Pull request description: In C, an empty parameter list, `()`, means the function takes any arguments, and `(void)` means the function does not take any parameters. In C++, an empty parameter list means the function does not take any parameters. So, C++ still supports `(void)` parameter lists with the same semantics, why change to `()`? 1. removing the redundant `void` improves signal-to-noise ratio of the code 2. using `(void)` exposes a rare inconsistency in that a template taking a template `(T)` parameter list, cannot be instantiated with `T=void` Tree-SHA512: be2897b6c5e474873aa878ed6bac098382cd21866aec33752fe40b089a6331aa6263cae749aba1b4a41e8467f1a47086d32eb74abaf09927fd5a2f44a4b2109a
2018-09-19init: Remove deprecated args from hidden argsMarcoFalke
2018-09-19wallet: Avoid potential use of unitialized value bnb_used in ↵practicalswift
CWallet::CreateTransaction(...)
2018-09-18Merge #13152: [rpc] Add getnodeaddresses RPC commandMarcoFalke
a2eb6f5405 [rpc] Add getnodeaddresses RPC command (chris-belcher) Pull request description: Implements issue https://github.com/bitcoin/bitcoin/issues/9463 New getnodeaddresses call gives access via RPC to the peers known by the node. It may be useful for bitcoin wallets to broadcast their transactions over tor for improved privacy without using the centralized DNS seeds. getnodeaddresses is very similar to the getaddr p2p method. Please advise me on the best approach for writing an automated test. By my reading the getaddr p2p method also isn't really tested. Tree-SHA512: ad03abf518847476495b76a2f5394b8030aa86654429167fa618e21460abb505c10ef9817ec1b80472320d41d0aff5dc94a8efce023aaaaf5e81386aa92b852b
2018-09-17[rpc] Add getnodeaddresses RPC commandchris-belcher
New getnodeaddresses call gives access via RPC to the peers known by the node. It may be useful for bitcoin wallets to broadcast their transactions over tor for improved privacy without using the centralized DNS seeds. getnodeaddresses is very similar to the getaddr p2p method. Tests the new rpc call by feeding IP address to a test node via the p2p protocol, then obtaining someone of those addresses with getnodeaddresses and checking that they are a subset.
2018-09-17Fix crash bug with duplicate inputs within a transactionSuhas Daftuar
Introduced by #9049
2018-09-17Merge #13578: [depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid ↵Wladimir J. van der Laan
deprecated zeromq api functions f1bd03eb013b96ff040a8f835e4137fbd2a38cda [depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid deprecated zeromq api functions (mruddy) Pull request description: Upgrade the ZeroMQ dependency from version 4.2.3 to the latest stable version 4.2.5. This PR Follows the lead of https://github.com/bitcoin/bitcoin/pull/11986. I upgraded both patch files to correspond to the version `4.2.5` libzmq files. I assume doing so is still necessary and correct. Without updating the patch line numbers, things appear to work, but you get extra log messages while building `depends` because things don't exactly match, e.g.: ``` /bitcoin/depends> make zeromq Extracting zeromq... /bitcoin/depends/sources/zeromq-4.2.5.tar.gz: OK Preprocessing zeromq... patching file src/windows.hpp Hunk #1 succeeded at 58 (offset 3 lines). patching file src/thread.cpp Hunk #1 succeeded at 307 with fuzz 2 (offset 87 lines). Hunk #2 succeeded at 323 with fuzz 2 (offset 90 lines). ``` Updating the patches seemed cleaner, so I did it. Note that libzmq had some whitespace changes, so that's why the updated patches do too. More info: https://github.com/zeromq/libzmq/releases/tag/v4.2.5 tags: libzmq, zmq, 0mq Tree-SHA512: 78659dd276b5311e40634b1bbebb802ddd6b69662ba3c84995ef1e3795c49a78b1635112c7fd72a405ea36e2cc3bdeb84e6d00d4e491a349bba1dafff50e2fa5
2018-09-15use integer division instead of double conversion and multiplication for ↵Arvid Norberg
computing amounts
2018-09-15Merge #14212: build: Remove libssl from LDADD unless guiMarcoFalke
cccc362d62 build: Remove libssl from LDADD unless gui (MarcoFalke) Pull request description: libssl is only used by the gui, so no need to LDADD it to the other tools and binaries Follow up of the commit which removed rpcssl: 40b556d3742a1f65d67e2d4c760d0b13fe8be5b7 Tree-SHA512: 9dbdf4faf40699cea3a37349ac83dbcacdaa062f5338416ff4ba77924c47d9e148b27218165c5aa3584a1ef4899e0fa237ff571208aa0b98803761e802d1e5dc
2018-09-15Merge #14206: doc: Document -checklevel levelsWladimir J. van der Laan
8e1c13e6da2a5e1054503539664c139f1eb91e90 doc: Document -checklevel levels (Wladimir J. van der Laan) Pull request description: Document the various possible check levels for the command-line argument. The numbers say nothing on their own. Tree-SHA512: 8a526c53222b55304dde1d9350dd15a50f1dd62bf452a32dc886a4521e3ab49d5f0a86a4c5cbb0d52fb76b60222101045100f93fee5e1a5d5e3ab8e79b64cbe0
2018-09-15doc: Document -checklevel levelsWladimir J. van der Laan
Document the various possible check levels for the command-line argument. The numbers say nothing on their own.
2018-09-14Merge #12493: [wallet] Reopen CDBEnv after encryption instead of shutting downWladimir J. van der Laan
c1dde3a949b36ce9c2155777b3fa1372e7ed97d8 No longer shutdown after encrypting the wallet (Andrew Chow) d7637c5a3f1d62922594cdfb6272e30dacf60ce9 After encrypting the wallet, reload the database environment (Andrew Chow) 5d296ac810755dc47f105eb95b52b7e2bcb8aea8 Add function to close all Db's and reload the databae environment (Andrew Chow) a769461d5e37ddcb771ae836254fdc69177a28c4 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow) Pull request description: This is the replacement for #11678 which implements @ryanofsky's [suggestion](https://github.com/bitcoin/bitcoin/pull/11678#pullrequestreview-76464511). Shutting down the software was to prevent the BDB environment from writing unencrypted private keys to disk in the database log files, as was noted [here](https://bitcointalk.org/index.php?topic=51474.msg616068#msg616068). This PR replaces the shutdown behavior with a CDBEnv flush, close, and reopen which achieves the same effect: everything is cleanly flushed and closed, the log files are removed, and then the environment reopened to continue normal operation. To ensure that no unencrypted private keys are in the log files after encrypting the wallet, I wrote [this script](https://gist.github.com/achow101/7f7143e6c3d3fdc034d3470e72823e9d) to pull private keys from the original wallet file and searches for these keys in the log files (note that you will have to change your file paths to make it work on your own machine). As for concerns about private keys being written to slack space or being kept in memory, these behaviors no longer exist after the original wallet encryption PR and the shutting down solution from 2011. cc @ryanofsky Tree-SHA512: 34b894283b0677a873d06dee46dff8424dec85a2973009ac9b84bcf3d22d05f227c494168c395219d9aee3178e420cf70d4b3eeacc9785aa86b6015d25758e75
2018-09-13build: Remove libssl from LDADD unless guiMarcoFalke
2018-09-13convert C-style (void) parameter lists to C++ style ()Arvid Norberg
2018-09-13Merge #14192: utils: Convert fs::filesystem_error messages from local ↵Wladimir J. van der Laan
multibyte to utf-8 on Windows e2213689328f8ba42af1d32d12c7b78a71f1ddc7 utils: Convert fs error messages from multibyte to utf-8 (Chun Kuan Lee) Pull request description: Before: ![default](https://user-images.githubusercontent.com/11154118/45318798-8d83f480-b570-11e8-8cbb-c729a54f6b9e.png) After: ![2](https://user-images.githubusercontent.com/11154118/45318806-91177b80-b570-11e8-9474-a62342c92dbd.png) Tree-SHA512: 0a598bd159286f6784d117b8a24888b2650d5402d687ab0e8d0849e0c3d53797e266647d8177bb6614307c9598019cd7477311bb9895b1bb52a6bd77b460fda1
2018-09-13Merge #14208: [build] Actually remove ENABLE_WALLETWladimir J. van der Laan
e4ef4b459548b4032b9da03b3103525f935acb82 [build] remove #ifdef ENABLE_WALLET from interfaces/node (John Newbery) Pull request description: Adds a couple of redefinitions to dummywallet.cpp. Tree-SHA512: d226bcccc46d089eac88beb54c31f6f18817682994b371f9793a5d28bec5d60dbdffacc8fc281807e25cc7f89da23e1f8f36fd99d12f8a40f77a972840e8c1b4
2018-09-13[build] remove #ifdef ENABLE_WALLET from interfaces/nodeJohn Newbery
Removes the final #ifdef ENABLE_WALLET from libbitcoin_server by calling g_wallet_init_interface.HasWalletSupport(), and redifining GetWallets() and MakeWallet() in dummywallet.cpp.
2018-09-13Merge #13983: rpc: Return more specific reject reason for submitblockMarcoFalke
fa6ab8ada1 rpc: Return more specific reject reason for submitblock (MarcoFalke) Pull request description: The second commit in #13439 made the `TODO` in the first commit impossible to solve. The meaning of `fNewBlock` changed from "This is the first time we process this block" to "We are about to write the new *valid* block". So whenever `fNewBlock` is true, the block was valid. And whenever the `fNewBlock` is false, the block is either valid or invalid. If it was valid and not new, we know it is a `"duplicate"`. In all other cases, the `BIP22ValidationResult()` will return the reason why it is invalid. Tree-SHA512: 4b6edf7a912339c3acb0fccfabbdd6d812a0321fb1639c244c2714e58dc119aa2b8c6bf8f7d61ea609a1b861bbc23f920370fcf989c48452721e259a8ce93d24
2018-09-13Merge #13310: Report progress in ReplayBlocks while rolling forwardWladimir J. van der Laan
b16ab9af07f802cc769c2443df1c637e8e12ab80 Report progress in ReplayBlocks while rolling forward (João Barbosa) Pull request description: Fixes #13303. Tree-SHA512: 9375bda03bd2527018b9d24a25c82fa01a841e41ae2cb5307be61af19e2b759d3a7db76852baba9a286fbcb52f70f427a5ab4375df08215ac439e47e73633e54
2018-09-13Merge #13888: Call unicode API on WindowsWladimir J. van der Laan
d38bf9105d33147c899117a4c20ba7872733186f Call unicode API on Windows (Chun Kuan Lee) Pull request description: Call Unicode API on Windows Tree-SHA512: 93c290ee79c9d911fdada8ba45e184fc4f14d3cb56f33f39223286213878b08e8c4dd296a80099c57797d3b8589870e6cff622b22e76123d7452659d49dd8309
2018-09-13Merge #14207: doc: `-help-debug` implies `-help`Wladimir J. van der Laan
d0b1cee1fe95eba7b968bed2c33ab681d169c91f doc: `-help-debug` implies `-help` (Wladimir J. van der Laan) Pull request description: I don't understand why `-help-debug` would be useful without requesting the help, and I've made this particular mistake one time too many. Tree-SHA512: 370eab368d672fc09e66fcc440db3cb7e4c70c2988aab506cdc3f3e234c27c8f0fc7512c9cf86606ac43f5c6023b3618b7b0302b4b6e289b388559ba8010f27a
2018-09-13Merge #14195: Pass privkey export DER compression flag correctlyWladimir J. van der Laan
9a565a8282236f29334a6ec2de6a03358f5ce86e Pass export privkey DER compression flag correctly (liuyujun) Tree-SHA512: 3fa1d7568ce133cd22708f453f3252c1138b1c40a821e90546d83bee4aac117ac8d848fa46cb45efad1031ce03cd5ba2d6c89b459abca6703aa2a957531e7edf
2018-09-13Pass export privkey DER compression flag correctlyliuyujun
By passing a bitfield where a boolean was expected, the result was always compressed. Fix this.
2018-09-13Merge #14209: logging: Replace LogPrint macros with regular functionsWladimir J. van der Laan
fae3fbd61a89c7a35bc0eda91b1df61371dc0936 logging: Replace LogPrint macros with regular functions (MarcoFalke) Pull request description: It is not possible to run the full test suite when configured with `--enable-lcov`, since logging is disabled currently so that "unnecessary branches are not analyzed". (See c8914b9dbbf6106dac3c62769f7ce3bacd8fbf9b) Fix this instead by replacing the macros with functions. Tree-SHA512: 101aa4f4a3ffcefc38faf70c9d3deb5fc63e0b11ca54a164d0463931c79eaf53ab0b0c6ae92a45355574e3b1d2c32233874a6b24293e7a09d188fc6698e212a5
2018-09-13doc: `-help-debug` implies `-help`Wladimir J. van der Laan
I don't understand why `-help-debug` would be useful without requesting the help, and I've made this particular mistake one time too many. (ok, so apparently the original reason that -help-debug is an option is to show debug options in the GUI option overview? that seems very unlikely to ever be used, if someone wants to add a way to show debug options in the GUI it'd be better to have a check box)
2018-09-12logging: Replace LogPrint macros with regular functionsMarcoFalke
2018-09-12Merge #14204: build: Move interfaces/* to libbitcoin_serverWladimir J. van der Laan
e0664f7f54aa9cf99ba31ca4bd9de1db0a9310a4 build: Move interfaces/* to libbitcoin_server (Wladimir J. van der Laan) Pull request description: Move interfaces/* from libbitcoin_util to libbitcoin_server. Usage of these is shared between `bitcoind` and `bitcoin-qt`. It is unnecessary for them to be linked against the other utilities. Also semantically they belong with the server/node, I think. Tree-SHA512: f82f3a95d362051c0eb8092520715f77c2c75409d41f9c0fab9a15445ea9e79a2a36b5d00b1f5be09b266584051934a32a8b9b28f783f4d7be78885b4a29a383
2018-09-12Merge #13886: utils: run commands using utf-8 string on WindowsWladimir J. van der Laan
23db9546c16c2be264cfc4f695f5738a2f5beeeb utils: run commands using utf-8 string on Windows (Chun Kuan Lee) Pull request description: Use unicode string to call commans Tree-SHA512: 72f84e7b56cd947ad05176f10b5ddd5610f4641ba5e93ffd67777dea8f9734ec06e6ed3a63f67ae5e766767122c0dd2c441d0bad5572bdb9fb78758f02531feb
2018-09-12build: Move interfaces/* to libbitcoin_serverWladimir J. van der Laan
These are shared between bitcoind and bitcoin-qt. It is unnecessary for them to be linked against the other utilities.
2018-09-11[depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid deprecated zeromq api ↵mruddy
functions
2018-09-11Merge #14168: Remove ENABLE_WALLET from libbitcoin_server.aMarcoFalke
7d038dcb41 [build] remove ENABLE_WALLET ifdef from httprpc.cpp (John Newbery) 3076556cd0 [build] Move dummy wallet into its own .cpp file. (John Newbery) Pull request description: This removes the final instances of ENABLE_WALLET in libbitcoin_server and so completes #7965. Tree-SHA512: a49128b7c17f4f69940d5843e6b785f08687efb377b5157d5b267d1205e596eb5c1966f1afb8ab36bcc2491c46252099e3e844c91f5623da8ded2e358d46338d
2018-09-11Call unicode API on WindowsChun Kuan Lee
2018-09-11Merge #13734: gui: Drop boost::scoped_array and use wchar_t API explicitly ↵Wladimir J. van der Laan
on Windows bb6ca65f9890e8280ace32de5a37774e14705859 gui: get special folder in unicode (Chun Kuan Lee) 1c5d22585384c8bb05a27a04eab5c57b31d623fb Drop boost::scoped_array (Chun Kuan Lee) Pull request description: Drop boost::scoped_array and simplify the code. `TCHAR` should be defined as `wchar_t` if `UNICODE` is defined. So we can use `.toStdWString().c_str()` to get wchar_t C-style string. Fix #13819 Tree-SHA512: 3fd4aa784129c9d1576b01e6ee27faa42d793e152d132f2dde504d917dad3a8e95e065fcbc54a3895d74fb6b2a9ed4f5ec67d893395552f585e225486a84a454
2018-09-11Merge #13419: [tests] Speed up knapsack_solver_test by not recreating wallet ↵Wladimir J. van der Laan
100 times. a679109be40491222c458fdbef58f68509dae0bd Speed up knapsack_solver_test by not recreating wallet 100 times. (lucash.dev@gmail.com) Pull request description: Optimization of `knapsack_solver_test`by moving an expensive wallet creation to outside a 100x for loop. On my (slow) machine: ``` before: 9.8s after: 6.2s -------------------- saved: 3.6s (36%) ``` This PR was split from #13050. Also see #10026. Tree-SHA512: bde1a856b5f076a5845e14d1a924855c8c91742c3139b47903081289b21d01fef6f2d1fd8947058728a57de56f877bab3866af8cd1d25ba2daa44411752cdb2f