aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-10-02Merge #11193: [Qt] Terminate string *pszExePath after readlink and without ↵Wladimir J. van der Laan
using memset 3a4401a [Qt] Terminate string *pszExePath after readlink and without using memset (practicalswift) Pull request description: Terminate string `*pszExePath` after `readlink` and before passing to operator `<<`. * `ssize_t readlink(const char *pathname, char *buf, size_t bufsiz)` does not append a null byte to `buf`. * Operator `<<` expects a null-terminated string. Tree-SHA512: fc18844bb23059fead8db0cb9b4b4ba6188f58e3f19ab4719c2737cc5dd6df23ae7d4804ef2820d39b334204a48ee3de1d202c272bcd156e60761af2fcb9349d
2017-10-02Merge #11432: Remove unused fTry from push_lockWladimir J. van der Laan
92848e5 Remove unused fTry from push_lock (João Barbosa) Pull request description: After #9674 (618ee92) the `fTry` argument in `push_lock` is no longer needed. Tree-SHA512: a461f2ca9e590a9dfcc7814d9852d85f03712cb4735176b8b2db0e8dc731597c2a515650998ca7d53cf5a0c48b408a974a0704897036c6ed74788fc24c5e73ae
2017-10-02Merge #11399: Fix bip68-sequence rpc testWladimir J. van der Laan
49f869f Fix bip68-sequence rpc test (Johnson Lau) Pull request description: The test mined 1 extra block for the ACTIVE state. Test added to catch the right moment of LOCKED_IN->ACTIVE transaction Tree-SHA512: a42477cf0b137e7e3b7c6c7b2530101cfad4e4f59866170b8fc0d655c43b3144aad6bca4287a4a8df4c28d7cf08d3f8df166975ad2e8dcb7d2cc15de60cf11cd
2017-10-02Merge #11284: Fix invalid memory access in CScript::operator+= ↵Wladimir J. van der Laan
(guidovranken, ajtowns) d601f16 Fix invalid memory access in CScript::operator+= (Anthony Towns) Pull request description: This is a fix for #11114 -- invoking "s += s" gets turned into "s.insert(s.end(), s.begin(), s.end())" which can result in an invalid memory access is s.capacity() < 2*s.size() (because s gets resized and possibly moved, so s.begin() and s.end() become invalid references when reading the values to be appended). The fix is straightforward: reserve enough space in advance, so that insert() doesn't need to resize and thus its arguments remain valid. A simple test case is added as well; though you probably need to run it via valgrind to actually catch the problem when it's not fixed... Tree-SHA512: 4720d0c17463fdc43b344c45fe603423d20b30d48da1b9d85eeedc505d7f34db1ed5495ef1556459ae962a94717e3c6e8fc441763771901efea210d01322b7ef
2017-10-02Merge #11422: qa: Verify DBWrapper iterators are taking snapshotsWladimir J. van der Laan
bb8376b Verify DBWrapper iterators are taking snapshots (Matt Corallo) Pull request description: The LevelDB docs seem to indicate that an iterator will not take snapshots (even providing instructions on how to do so yourself). In several of the places we use them, we assume snapshots to have been taken. In order to make sure LevelDB doesn't change out from under us (and to prevent the next person who reads the docs from having the same fright I did), verify that snapshots are taken in our tests. Tree-SHA512: 54f24dabc294962e9c20882f61809604421a661208d1568bb107102248603e8e7c12e929ccb0812a73d4e4f23fea61f1b48e7cc24da5a7260f1d14d89ba88cd6
2017-09-30Remove unused fTry from push_lockJoão Barbosa
2017-09-30Verify DBWrapper iterators are taking snapshotsMatt Corallo
The LevelDB docs seem to indicate that an iterator will not take snapshots (even providing instructions on how to do so yourself). In several of the places we use them, we assume snapshots to have been taken. In order to make sure LevelDB doesn't change out from under us (and to prevent the next person who reads the docs from having the same fright I did), verify that snapshots are taken in our tests.
2017-09-30Merge #11303: Fix estimatesmartfee rounding display issueMarcoFalke
1789e4675 Force explicit double -> int conversion for CFeeRate constructor (Matt Corallo) 53a6590f4 Make float <-> int casts explicit outside of test, qt, CFeeRate (Matt Corallo) 0b1b9148c Remove countMaskInv caching in bench framework (Matt Corallo) Pull request description: This fixes an issue where estimatesmartfee which matches at the min relay fee will return 999 sat/byte instead of 1000 sat/byte due to a float rounding issue. I went ahead and made all float <-> int conversion outside of test/qt explicit (test only had one or two more, Qt had quite a few, including many in the Qt headers themselves) and added overloads to CFeeRate to force callers to do an explicit round themselves. Easy to test with -Wfloat-conversion. Tree-SHA512: 66087b08e5dfca67506da54ae057c2f9d86184415e8fa4fa0199e38839e06a3ce96c836fcb7593b7d960065f5240c594ff3a0cfa14333ac528421f5aeac835c9
2017-09-30Merge #11391: Remove lxcbr0 lines from gitian-build.shMarcoFalke
884913041 Remove lxcbr0 lines from gitian-build.sh (MeshCollider) Pull request description: The `gitian-build.sh` script crashes with an error when I tried to use it, @kallewoof also had this same issue: lxcbr0: ERROR while getting interface flags: No such device SIOCSIFADDR: No such device lxcbr0: ERROR while getting interface flags: No such device And then: lxc-execute: failed to find gateway addresses lxc-execute: failed to spawn 'gitian' ./bin/gbuild:21:in `system!': failed to run make-clean-vm --suite trusty --arch amd64 (RuntimeError) I believe it's because of the two lines which this PR removes, I tested it and seems to work as expected now. These lines are unique to this script and aren't mentioned in `gitian-building.md` or `release-process.md`. We discussed it on IRC, @achow101 agrees removing these lines would probably fix it: https://botbot.me/freenode/bitcoin-core-dev/2017-09-19/?msg=91299782&page=2 Has anyone successfully used this script as-is? Or does everyone else manually run the builds/write their own script like I have up til this point? Tree-SHA512: 0cffd3df307ad107fb1d4bae45094fc5002b56c2fe64f03642d968659fdc62f586ba249dbc540b69058b276f2456962e5bc4d665cab21ef1f561735eb78afcc2
2017-09-29Merge #11418: Add error string for CLEANSTACK script violationPieter Wuille
cee28fbc3 Add error string for CLEANSTACK script violation, preventing an "unknown error" if the CLEANSTACK error condition is set. (Mark Friedenbach) Pull request description: This prevents an unhelpful "unknown error" from being printed in test logs if the CLEANSTACK error condition is set. Tree-SHA512: cd6764e930184aef3d662e40c67f2ea8aea8552a26d33a567d0315a19d707a82aa2afad9f48ecbb731aa5b77fbbfbd7a6a3a989fdb1424a1181350052ff2a9b5
2017-09-29Merge #11319: [qa] Fix error introduced into p2p-segwit.py, and prevent ↵MarcoFalke
future similar errors f97ab35fa qa: Fix bug introduced in p2p-segwit.py (Suhas Daftuar) a7820422e qa: Treat mininode p2p exceptions as fatal (Suhas Daftuar) Pull request description: #11121 inadvertently broke the constructor for the `TestNode()` object in `p2p-segwit.py`, silently breaking at least one of the tests. Although the python code was raising exceptions due to a `TestNode()` object not existing (or having the right type), mininode was masking these from anyone running the test through the test_runner (like travis), because it catches all exceptions during message delivery and just prints a log message and continues. Such "graceful" handling of errors is almost certainly something we don't want in our test suite, so the first commit here attempts to prevent that type of failure from ever being masked. The second commit fixes the particular bug in `p2p-segwit.py`. Tree-SHA512: b6646e3cb1e05c35c28e8899c44104bf2e2d0384643ca87042ab7f6ec0960d89f5bf25a7b95bab6e32d401c20a6018226160500f6ddceb923e81ffb04adb4f2f
2017-09-29Merge #10552: [Test] Tests for zmqpubrawtx and zmqpubrawblockMarcoFalke
d3677ab75 Tests for zmqpubrawtx and zmqpubrawblock (Andrew Chow) Pull request description: Tree-SHA512: 9e367fd8936514bfb567ef3f3d83770d374287354b59c9187e844056dd086e8aa2de32ce55d35486cecd706e7c93cd1c1e2709ee82d3dddb805827be8d2bcb14
2017-09-29Merge #11309: Minor cleanups for AcceptToMemoryPoolMarcoFalke
bf64c3cb3 Ignore transactions added to mempool during a reorg for fee estimation purposes. (Alex Morcos) 04f78ab5b Do not reject based on mempool min fee when bypass_limits is set. (Alex Morcos) fd849e1b0 Change AcceptToMemoryPool function signature (Alex Morcos) Pull request description: First commit just removes default arguments from `AcceptToMemoryPool` and consolidates two arguments, it does not change behavior. Second commit finally fixes the fact that we're not meant to reject based on mempool min fee when adding a transaction from a disconnected block during a reorg as mentioned [here](https://github.com/bitcoin/bitcoin/pull/9602#issue-202197849) Third commit makes fee estimation ignore transactions added from a disconnected block during a reorg. I think this was another source of fee estimates returning estimates below 1000 sat/kB as in #11303. Tree-SHA512: 30925ca8b341915bb214f1d2590b36b7931f2e125b7660150e38ae70338f00db5aa7f1608546dddb181446924177eb7cf62ea8bd2583068acc074d6c3f86bc0c
2017-09-29Add error string for CLEANSTACK script violation, preventing an "unknown ↵Mark Friedenbach
error" if the CLEANSTACK error condition is set.
2017-09-29Merge #11414: [docs] Remove partial gitian build instructions from ↵Wladimir J. van der Laan
descriptors dir. bb174e1 [docs] Remove partial gitian instructions from descriptors dir (fanquake) Pull request description: Cleanup after #11401. Tree-SHA512: 9378463d3dd7a3c5b41388749002aef767581de28c92c19c89cc39c4e8ec5959f91d0232c6333e440c157d448be2f686dbcc7099aedd9510e4b36807690201fc
2017-09-29Merge #11417: Correct typo in commentsWladimir J. van der Laan
6f33d8c Correct typo in comments (Johnson Lau) Pull request description: I think this is a search and replace mistake Tree-SHA512: a83e081b817f1607496bfdcee47593d45d75cbe72effe944cdb5494b49a341eeeebdeb954f6db59dfa1ddfa350a117a4b26c754725a3459be78f2a1a093c6fde
2017-09-29Merge #11167: Full BIP173 (Bech32) supportWladimir J. van der Laan
8213838 [Qt] tolerate BIP173/bech32 addresses during input validation (Jonas Schnelli) 06eaca6 [RPC] Wallet: test importing of native witness scripts (NicolasDorier) fd0041a Use BIP173 addresses in segwit.py test (Pieter Wuille) e278f12 Support BIP173 in addwitnessaddress (Pieter Wuille) c091b99 Implement BIP173 addresses and tests (Pieter Wuille) bd355b8 Add regtest testing to base58_tests (Pieter Wuille) 6565c55 Convert base58_tests from type/payload to scriptPubKey comparison (Pieter Wuille) 8fd2267 Import Bech32 C++ reference code & tests (Pieter Wuille) 1e46ebd Implement {Encode,Decode}Destination without CBitcoinAddress (Pieter Wuille) Pull request description: Builds on top of #11117. This adds support for: * Creating BIP173 addresses for testing (through `addwitnessaddress`, though by default it still produces P2SH versions) * Sending to BIP173 addresses (including non-v0 ones) * Analysing BIP173 addresses (through `validateaddress`) It includes a reformatted version of the [C++ Bech32 reference code](https://github.com/sipa/bech32/tree/master/ref/c%2B%2B) and an independent implementation of the address encoding/decoding logic (integrated with CTxDestination). All BIP173 test vectors are included. Not included (and intended for other PRs): * Full wallet support for SegWit (which would include automatically adding witness scripts to the wallet during automatic keypool topup, SegWit change outputs, ...) [see #11403] * Splitting base58.cpp and tests/base58_tests.cpp up into base58-specific code, and "address encoding"-code [see #11372] * Error locating in UI for BIP173 addresses. Tree-SHA512: 238031185fd07f3ac873c586043970cc2db91bf7735c3c168cb33a3db39a7bda81d4891b649685bb17ef90dc63af0328e7705d8cd3e8dafd6c4d3c08fb230341
2017-09-29Correct typo in commentsJohnson Lau
2017-09-28[Qt] tolerate BIP173/bech32 addresses during input validationJonas Schnelli
This eases the during-type validation to allow Bech32 chars. Once the focus has been lost, the address will be properly verified through IsValidDestinationString
2017-09-28[RPC] Wallet: test importing of native witness scriptsNicolasDorier
Integration into segwit.py test by Pieter Wuille.
2017-09-28Use BIP173 addresses in segwit.py testPieter Wuille
2017-09-28Support BIP173 in addwitnessaddressPieter Wuille
2017-09-28Implement BIP173 addresses and testsPieter Wuille
2017-09-28Add regtest testing to base58_testsPieter Wuille
2017-09-28Convert base58_tests from type/payload to scriptPubKey comparisonPieter Wuille
2017-09-28Import Bech32 C++ reference code & testsPieter Wuille
This includes a reformatted version of the Bech32 reference code (see https://github.com/sipa/bech32/tree/master/ref/c%2B%2B), with extra documentation.
2017-09-28Merge #11318: Put back inadvertently removed copyright noticesWladimir J. van der Laan
d552ed6 Put back inadvertently removed copyright notices (Paul Berg) Pull request description: In an abundance of caution this restores "Bitcoin Developers" to the COPYING file in case there were contributors before that point in time that would object to the current label. It's harmless and more pedantically correct. (Change extracted from the Bitcoin-abc github) Tree-SHA512: ea71645fbca5548bcae750b9bb7c7cc56791d8c8d2574b778fa1666e09abad23b30fcb434f0d92c52a2eb7d7e89caa32695dff3a5a99a2ab43ed0f3636436677
2017-09-28Merge #10663: net: split resolve out of connectWladimir J. van der Laan
b887676 net: remove now-unused functions (Cory Fields) 45fd754 net: remove now-superfluous numeric resolve (Cory Fields) 2416dd7 net: separate resolving and conecting (Cory Fields) Pull request description: This is a greatly simplified version of #10285, which only aims to address async resolving. It essentially breaks up two wrapper functions for things only used in one place (ConnectSocketDirectly/ConnectThroughProxy) in favor of calling them directly. This allows us to fully handle resolves before attempting a connection, as is necessary for async connections. As a bonus, I believe the logic is now much easier to follow than before. Tree-SHA512: f03f618107379edf3efe2a9f3e3677e8f075017ab140a0b4fdc3b8263e6beff148d55256263ab10bc2125ef089ca68e0d8e865beeae176f1eca544e769c976d3
2017-09-28Merge #10858: [RPC] Add "errors" field to getblockchaininfo and unify ↵Wladimir J. van der Laan
"errors" field in get*info RPCs 395cef7 Change getmininginfo errors field to warnings (Andrew Chow) 8502b20 Unify help text for GetWarnings output in get*info RPCs (Andrew Chow) f77f0e4 Add warnings field to getblockchaininfo (Andrew Chow) Pull request description: The `getblockchaininfo` output does not contain the `errors` field which the `getinfo`, `getmininginfo`, and `getnetworkinfo` RPCs have. It should have it as the errors pertain to the blockchain. This PR adds that field. This PR also unifies the help text for the `errors` field and its output position so that all of the `get*info` commands are consistent. `getnetworkinfo`'s `errors` field is named `warnings`. I did not change this even though it is inconsistent since this naming has been in use for a long time. Tree-SHA512: 385ab6acfee67fc8816f4d51ab2bd7a623264c7973906dfbab0a171f199e9db16fde19093a5bc3dfbdd4ff5f19d2186b646eb6b3bae0a4d7c9add43650a4a9d9
2017-09-28[docs] Remove partial gitian instructions from descriptors dirfanquake
2017-09-28Merge #11401: doc: move gitian building to external repoWladimir J. van der Laan
fa082b4 doc: move gitian building to external repo (MarcoFalke) Pull request description: The guide was moved to [the Bitcoin Core documentation repository](https://github.com/bitcoin-core/docs/blob/master/gitian-building.md). It now includes not only instructions to run on a debian host, but also on any recent fedora host. This is an ongoing effort to reduce the fraction caused by incoming pull requests to docs (usually fixups, typo fixes, version bumps). This is especially important for documentation that is independent of any release cycles and should thus be up-to-date regardless of a tag on a non-master branch. Finally, fetching a shallow copy of the source is less heavy, as many binary png files are moved out of the repo. Tree-SHA512: c88a11667826d44f90af41e50f9e8d5b3132ae83b278597f13be694872212e7eff99fd877feec0308e00259c69fd4e0ebaf3ff5ab45e08a1e41336aa505bb72b
2017-09-28Merge #10871: Handle getinfo in bitcoin-cli w/ -getinfo (revival of #8843)Wladimir J. van der Laan
5e69a43 Add test for bitcoin-cli -getinfo (John Newbery) 3826253 rpc: Handle `getinfo` locally in bitcoin-cli w/ `-getinfo` (Wladimir J. van der Laan) Pull request description: Since @laanwj doesn't want to maintain these changes anymore, I will. This PR is a revival of #8843. I have addressed @jnewbery's comments. Regarding atomicity, I don't think that is a concern here. This is explicitly a new API and those who use it will know that this is different and that it is not atomic. Tree-SHA512: 9664ed13a5557bda8c43f34d6527669a641f260b7830e592409b28c845258fc7e0fdd85dd42bfa88c103fea3ecdfede5f81e3d91870e2accba81c6d6de6b21ff
2017-09-27Merge #11397: net: Improve and document SOCKS codeJonas Schnelli
22f816ef4 net: Improve and document SOCKS code (Wladimir J. van der Laan) Pull request description: Make the SOCKS code more consistent, and document the constants used. Tree-SHA512: 1bb04fcd6aacb6bfd2c54989d8298c892036466a895efb88be36fbace041af67c964ae0f5fb76c96f813f20a040109de4e0aac49a20844640e4d7633fcb22f25
2017-09-27Add test for bitcoin-cli -getinfoJohn Newbery
Extra-Author: Andrew Chow <achow101@gmail.com>
2017-09-27rpc: Handle `getinfo` locally in bitcoin-cli w/ `-getinfo`Wladimir J. van der Laan
This adds the infrastructure `BaseRequestHandler` class that takes care of converting bitcoin-cli arguments into a JSON-RPC request object, and converting the reply into a JSON object that can be shown as result. This is subsequently used to handle the `-getinfo` option, which sends a JSON-RPC batch request to the RPC server with `["getnetworkinfo", "getblockchaininfo", "getwalletinfo"]`, and after reply combines the result into what looks like a `getinfo` result. There have been some requests for a client-side `getinfo` and this is my PoC of how to do it. If this is considered a good idea some of the logic could be moved up to rpcclient.cpp and used in the GUI console as well. Extra-Author: Andrew Chow <achow101@gmail.com>
2017-09-27Change getmininginfo errors field to warningsAndrew Chow
Changes the errors field to warnings. To maintain compatibility, the errors field is deprecated and enabled by starting bitcoind with -deprecatedrpc=getmininginfo
2017-09-27Unify help text for GetWarnings output in get*info RPCsAndrew Chow
2017-09-27Add warnings field to getblockchaininfoAndrew Chow
2017-09-27Merge #11031: [rpc] deprecate estimatefeeMarcoFalke
048e0c3e2 [rpc] [tests] Add deprecated RPC test (Cristian Mircea Messel) d4cdbd6fb [rpc] Deprecate estimatefee RPC (John Newbery) Pull request description: Deprecates estimatefee in v0.16, for final removal in v0.17. This commit introduces a phased removal of RPC methods. RPC method is disabled by default in version x, but can be enabled by using the `-deprecatedrpc=<methodname>` argument. RPC method is removed entirely in version (x+1). This gives users fair warning that an RPC is to be removed, and time to change client software if necessary. Deprecation warnings in RPC return values or release notes are easily ignored. This is a more generic version of the approach I tried to use in #10841, which too late to make it into v0.15. Tree-SHA512: 9695a600e84b812974387333e4a6805d18972da30befb754e9e4da77cd9815d00c5cc2ee0b0350bdbbdb5fdc6ba47789f8b2c6f5b15c8cd5a1deefcc4832da30
2017-09-27Merge #11408: Trivial: Fix parameter name typo in ErasePurpose walletdb methodMarcoFalke
603efe9fc Fix parameter name typo in ErasePurpose walletdb method. (Pierre Rochard) Pull request description: The header file has the correct method signature and the one usage in CWallet::DelAddressBook is correctly passing in EncodeDestination(address) Tree-SHA512: ee0808a74111fd23a1c47ba5ab51de151fdd33a01d92895671e562ac184cbcb33180a3ff26c22e5717595592097b9fa33deca9878d89ce8d34687f09cfadfcf0
2017-09-27Fix bip68-sequence rpc testJohnson Lau
2017-09-26Fix parameter name typo in ErasePurpose walletdb method.Pierre Rochard
2017-09-26Merge #11015: [Qt] Add delay before filtering transactionsJonas Schnelli
7b137aced [Qt] Add delay before filtering transactions Fixes 3141 (Lucas Betschart) Pull request description: As discussed in https://github.com/bitcoin/bitcoin/issues/3141. This adds a QTimer pause of 200ms before start to filter so it should be possible to filter big data sets easier. Tree-SHA512: ee599367794eac2c5b8bc7ecac47f44295e40c0ff543ff2f2c4860590f917b59b1cfb273fa564e6eb4c44016c0ef412d49f1a8f1b36b07e034022f51bb76653c
2017-09-26[rpc] [tests] Add deprecated RPC testCristian Mircea Messel
2017-09-26[rpc] Deprecate estimatefee RPCJohn Newbery
Deprecate estimatefee in v0.16, for final removal in v0.17. This commit introduces a phased removal of RPC methods. RPC method is disabled by default in version x, but can be enabled by using the `-deprecatedrpc=<method>` argument. RPC method is removed entirely in version (x+1).
2017-09-26Merge #11225: wallet: update stored witness in AddToWalletWladimir J. van der Laan
d01a968 wallet: update stored witness in AddToWallet (Suhas Daftuar) Pull request description: Replace witness-stripped wallet transactions with full transactions; this can happen when upgrading from a pre-segwit wallet to a segwit- aware wallet. Tree-SHA512: a348b16b38ae738fa75cf7d3ff50ebd0d0071d5d6061c9a10dc3325fc34f6bc96a67aea21fde460ca20f6178768ee0af04d6d8785b35647f436a9083c4270b07
2017-09-26Merge #11288: More user-friendly error message when partially signingWladimir J. van der Laan
df10edf More user-friendly error message when partially signing (MeshCollider) Pull request description: When partially signing a transaction using `signrawtransaction`, if the wallet doesn't have access to a key, it will output a scary error message `"error": "Operation not valid with the current stack size"`, yet it will partially sign the transaction anyway. This puts a lot of users off, because they don't realise the signing actually succeeded for some inputs. This catches that specific error when signing, and outputs a friendlier message which says `Unable to sign input, invalid stack size (possibly missing key)`. This is the best way I could think of to fix the issue, but please let me know if you come up with a better way to do it :) Fixes https://github.com/bitcoin/bitcoin/issues/9988 Tree-SHA512: 65e1d4a49caa4202e1357b0b3f42329d76456c7b4286d63232226e03267809027b0c44e0faaa1da8b86c9ad677e3a3d655698a24fc870d6a661203c9f56ef95b
2017-09-26net: Improve and document SOCKS codeWladimir J. van der Laan
Make the SOCKS code more consistent, and document the constants used.
2017-09-26Merge #11377: Disallow uncompressed pubkeys in bitcoin-tx [multisig] output addsWladimir J. van der Laan
28d4542 Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (Matt Corallo) Pull request description: Does what it says on the tin. Tree-SHA512: 324b8da8a9f9a35d3ade74f6c587f981894a085dfea9d64f78de745d5e6ec05c3a7bced487e9aad9c8a48151cd14969a0806f30f80b621edfce0da082fe6f4be
2017-09-25doc: move gitian building to external repoMarcoFalke
This reduces the overhead in the git repo due to binary blobs of the png files. Also, the documentation can be updated independent of any tags and release cycles.