aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-10-25cli -netinfo: make age column variable-widthJon Atack
as it has a wide possible range and the new name ("age" instead of "uptime") is much shorter.
2020-10-25cli -netinfo: various quick updates and fixesJon Atack
- add new signet chain - update change "uptime" column name to "age" per suggestion by 0xB10C (Timo) - add an additional digit to mping field width - change m_networks_size from size_t to uint8_t, as size_t was a holdover from m_networks_size being defined as size_t m_networks.size() in a draft - order Peer struct members by decreasing memory size
2020-10-25net: Hardcoded seeds update for 0.21Wladimir J. van der Laan
Stats: ``` IPv4 IPv6 Onion Pass 426728 59523 7900 Initial 426728 59523 7900 Skip entries with invalid address 426728 59523 7900 After removing duplicates 426727 59523 7900 Skip entries from suspicious hosts 123226 51785 7787 Enforce minimal number of blocks 121710 51322 7586 Require service bit 1 4706 1427 3749 Require minimum uptime 4124 1098 3681 Require a known and recent user agent 4033 1075 3681 Filter out hosts with multiple bitcoin ports 512 140 512 Look up ASNs and limit results per ASN and per net ```
2020-10-25wallet: fix SetFeeEstimateMode() error messageJon Atack
to clarify for the user the confusing error message that the missing fee rate needs to be set in the conf_target param/option.
2020-10-24wallet, bugfix: fix bumpfee with explicit fee rate modesJon Atack
2020-10-24Merge bitcoin-core/gui#43: bugfix: Call setWalletActionsEnabled(true) only ↵MarcoFalke
for the first wallet 20c9e035543892e322c7134e89eb33115678bb30 gui: Call setWalletActionsEnabled(true) only for the first wallet (Hennadii Stepanov) Pull request description: On master (a78742830aa35bf57bcb0a4730977a1e5a1876bc) there is a bug: - open an encrypted wallet; please note that the "Encrypt Wallet..." menu item is disabled that is expected: ![Screenshot from 2020-08-03 12-38-37](https://user-images.githubusercontent.com/32963518/89169084-70060c80-d586-11ea-86b9-05ef38d08f41.png) - then open any other wallet; note that the "Encrypt Wallet..." menu item gets enabled that is wrong: ![Screenshot from 2020-08-03 12-42-36](https://user-images.githubusercontent.com/32963518/89169385-d68b2a80-d586-11ea-9813-a533a847e098.png) This PR fixes this bug. ACKs for top commit: jonasschnelli: Tested ACK 20c9e035543892e322c7134e89eb33115678bb30 - I could reproduce the issue on master and have verify that this PR fixes it. achow101: ACK 20c9e035543892e322c7134e89eb33115678bb30 Tree-SHA512: 2c9ab94bde8c4f413b0a95c05bf3a1a29f5910e0f99d6639a11dd77758c78af25b060b3fecd78117066ef15b113feb79870bc1347cc04289da915c00623e5787
2020-10-23wallet: Fix bug when just created encrypted wallet cannot get addressHennadii Stepanov
2020-10-23Merge bitcoin-core/gui#71: Fix visual quality of text in QR imageJonas Schnelli
6954156b4091bc1e561502f0eef0cece56c76eec qt: Fix visual quality of text in QR image (Hennadii Stepanov) 8071c75d45e12c2bca04b170c687bebd30ad19ac qt, refactor: Limit scope of QPainter object (Hennadii Stepanov) Pull request description: Master (197450f80868fe752c6107955e5da80704212b34): ![DeepinScreenshot_select-area_20200824001800](https://user-images.githubusercontent.com/32963518/90988962-96283680-e59f-11ea-8e20-42e9b23033f5.png) This PR (6954156b4091bc1e561502f0eef0cece56c76eec): - macOS 10.15.6 ![Screenshot from 2020-09-07 15-40-30](https://user-images.githubusercontent.com/32963518/92390251-2c716600-f123-11ea-96f0-0e9d35810c76.png) - Linux Mint 20 ![Screenshot from 2020-09-07 15-48-13](https://user-images.githubusercontent.com/32963518/92390272-36936480-f123-11ea-8fee-4de23bb40ed9.png) Fix #54 Fix https://github.com/bitcoin/bitcoin/issues/19103 --- The first commit is easy to review with [`git diff --word-diff`](https://github.com/bitcoin-core/gui/pull/71/commits/8071c75d45e12c2bca04b170c687bebd30ad19ac?w=1). ACKs for top commit: jonasschnelli: Tested ACK 6954156b4091bc1e561502f0eef0cece56c76eec - tested on macOS 10.15. Fixes the problem. Tree-SHA512: 6ecb3397d2a5094c5f00ee05fc09520751568404e000a8691b6de7e57f38c2d5da628694e5e45a2b4cc302a846bbc00014c40820233eb026d3ebd4f68c2c9913
2020-10-23Merge #20216: wallet: fix buffer over-read in SQLite file magic checkfanquake
56a461f72796ca60de28e78f144741eb1a4f5213 wallet: fix buffer over-read in SQLite file magic check (Sebastian Falbesoner) Pull request description: Looking at our new SQLite database code, I noticed that there is a potential problem in the method `IsSQLiteFile()`: If there is no terminating zero within the first 16 bytes of the file, the `magic` buffer would be over-read in the `std::string` constructor for `magic_str`. Fixed by using the "from buffer" variant of the string ctor (that also takes a size) rather than the "from c-string" variant (see http://www.cplusplus.com/reference/string/string/string/). The behaviour can be reproduced by the following steps: * Creating a file of at least 512 bytes in size (to pass the minimum size check) that doesn't contain zero bytes in the magic area, e.g. simply: `$ python3 -c "print('A'*512)" > /tmp/corrupt_wallet` * Showing content and size of the `magic_str` string in case the magic check fails * Create a simple unit test that simply calls `IsSQLiteFile` with the corrupt wallet file * Run the unit test and see the random gibberish output of `magic_str` after 16 `A`s :-) Or, TLDR variant, just get the branch https://github.com/theStack/bitcoin/tree/reproduce_sqlite_magic_overread, compile unit Tests and run the script `./reproduce_sqlite_magic_overread.sh`. Note that this is the minimal diff, probably it would be better to avoid `std::string` at all in this case and just use `memcmp`, strings that include null bytes are pretty confusing. ACKs for top commit: promag: Code review ACK 56a461f72796ca60de28e78f144741eb1a4f5213. practicalswift: ACK 56a461f72796ca60de28e78f144741eb1a4f5213: patch looks correct achow101: ACK 56a461f72796ca60de28e78f144741eb1a4f5213 Tree-SHA512: a7aadd4d38eb92337e6281df2980f4bde744dbb6cf112b9cd0f2cab8772730e302db9123a8fe7ca4e7e844c47e68957487adb2bed4518c40b4bed6a69d7922b4
2020-10-22Merge #20: Wrap tooltips in the intro windowJonas Schnelli
6ed4bcabc1a9103efb96685c447c07d0d2d2e0e0 qt: Wrap tooltips in the intro window (Hennadii Stepanov) Pull request description: On master (d6fe5b28dff4c512bad7c9576232d6def10608d4): ![DeepinScreenshot_select-area_20200702082514](https://user-images.githubusercontent.com/32963518/86319852-18e6e200-bc3e-11ea-902c-1b868540f4cf.png) With this PR: ![Screenshot from 2020-07-02 08-22-44](https://user-images.githubusercontent.com/32963518/86319881-28fec180-bc3e-11ea-9d76-522a5e71c32d.png) --- This is a move-only change. This was done while reviewing #15. ACKs for top commit: jonasschnelli: utACK 6ed4bcabc1a9103efb96685c447c07d0d2d2e0e0 Tree-SHA512: 67507c8c5628cd95fe8e377ce21e2c23d305faf1affa0b7579885553c20055ba07ed61e2aed3230d7cd22c3c90f76e0c58cb3238be9f153a8ca6e6d4e38753b0
2020-10-22wallet: fix buffer over-read in SQLite file magic checkSebastian Falbesoner
If there is no terminating zero within the 16 magic bytes, the buffer would be over-read in the std::string constructor. Fixed by using the "from buffer" variant of the ctor (that also takes a size) rather than the "from c-string" variant.
2020-10-21wallet: Make -wallet setting not create walletsRussell Yanofsky
This changes -wallet setting to only load existing wallets, not create new ones. - Fixes settings.json corner cases reported by sjors & promag: https://github.com/bitcoin-core/gui/issues/95, https://github.com/bitcoin/bitcoin/pull/19754#issuecomment-685858578, https://github.com/bitcoin/bitcoin/pull/19754#issuecomment-685858578 - Prevents accidental creation of wallets reported most recently by jb55 http://www.erisian.com.au/bitcoin-core-dev/log-2020-09-14.html#l-355 - Simplifies behavior after #15454. #15454 took the big step of disabling creation of the default wallet. This PR extends it to avoid creating other wallets as well. With this change, new wallets just aren't created on startup, instead of sometimes being created, sometimes not. #15454 release notes are updated here and are simpler. This change should be targeted for 0.21.0. It's a bug fix and simplifies behavior of the #15937 / #19754 / #15454 features added in 0.21.0.
2020-10-21Merge #20198: Show name, format and if uses descriptors in bitcoin-wallet toolMarcoFalke
fa4074b395a47c54069bd9f598244701505ff11d Show name, format and if uses descriptors in bitcoin-wallet tool (Jonas Schnelli) Pull request description: ACKs for top commit: MarcoFalke: ACK fa4074b395a47c54069bd9f598244701505ff11d jonatack: re-ACK fa4074b395a47c54069bd9f598244701505ff11d Tree-SHA512: cf6ee96ff21532fc4b0ba7a0fdfdc1fa485c9b1495447350fe65cd0bd919e0e0280613933265cdee069b8c29ccf015ac374535a70cac3d4fb89f4d08b3a03519
2020-10-21net: fix output of peer address in version messageVasil Dimov
If `-logips -debug=net` is specified then we print the contents of the version message we send to the peer, including his address. Because the addresses in the version message use pre-BIP155 encoding they cannot represent a Tor v3 address and we would actually send 16 `0`s instead (a dummy IPv6 address). However we would print the full address in the log message. Before this fix: ``` 2020-10-21T12:24:17Z send version message: version 70016, blocks=653500, us=[::]:0, them=xwjtp3mj427zdp4tljiiivg2l5ijfvmt5lcsfaygtpp6cw254kykvpyd.onion:8333, peer=0 ``` This is confusing because we pretend to send one thing while we actually send another. Adjust the printout to reflect what we are sending. After this fix: ``` 2020-10-21T12:26:54Z send version message: version 70016, blocks=653500, us=[::]:0, them=[::]:0, peer=0 ```
2020-10-21Merge #20157: Bugfix: chainparams: Add missing (always enabled) Taproot ↵MarcoFalke
deployment for Signet 2d5793c0161902730cde384dbdf3e3ba3e55c9e0 Bugfix: chainparams: Add missing (disabled) Taproot deployment for Signet (Luke Dashjr) Pull request description: Is there a way we can trigger compiler warnings if a deployment is undefined? ACKs for top commit: decryp2kanon: utACK 2d5793c0161902730cde384dbdf3e3ba3e55c9e0 MarcoFalke: review ACK 2d5793c0161902730cde384dbdf3e3ba3e55c9e0 Tree-SHA512: 135cefae0f8dc552b0f682c2b87cabca7a4716290a36410a55968850e803a5049234e3cc597c8ef8d7917ae5d5ea3fb851e160df171b6793114c6bc01c5ea3e7
2020-10-21Show name, format and if uses descriptors in bitcoin-wallet toolJonas Schnelli
2020-10-20RPC: createwallet: Nicer error message if descriptor wallet requested and ↵Luke Dashjr
sqlite support not compiled in
2020-10-20GUI: Create Wallet: Nicely disable descriptor wallet checkbox if sqlite ↵Luke Dashjr
support not compiled in
2020-10-20Make sqlite support optional (compile-time)Luke Dashjr
2020-10-20Bugfix: chainparams: Add missing (disabled) Taproot deployment for SignetLuke Dashjr
2020-10-20tests: Add fuzzing harness for CConnmanpracticalswift
2020-10-20Merge #20125: rpc, wallet: Expose database format in getwalletinfoSamuel Dobson
624bab00dd2cc8e2ebd77dc0a669bc8d507c3721 test: add coverage for getwalletinfo format field (Jon Atack) 5e737a009234cbd7cf53748d3d28a2da5221192f rpc, wallet: Expose database format in getwalletinfo (João Barbosa) Pull request description: Support for sqlite based wallets was added in #19077. This PR adds the `format` key in `getwalletinfo` response, that can be `bdb` or `sqlite`. ACKs for top commit: jonatack: Tested ACK 624bab00dd2cc8e2ebd77dc0a669bc8d507c3721 laanwj: Code review ACK 624bab00dd2cc8e2ebd77dc0a669bc8d507c3721. MarcoFalke: doesn't hurt ACK 624bab00dd2cc8e2ebd77dc0a669bc8d507c3721 hebasto: ACK 624bab00dd2cc8e2ebd77dc0a669bc8d507c3721, tested on Linux Mint 20 (x86_64). meshcollider: utACK 624bab00dd2cc8e2ebd77dc0a669bc8d507c3721 Tree-SHA512: a81f8530f040f6381d33e073a65f281993eccfa717424ab6e651c1203cbaf27794dcb7175570459e7fdaa211565bc060d0a3ecbe70d2b6f9c49b8d5071e4441c
2020-10-19Merge #20162: p2p: declare Announcement::m_state as uint8_t, add getter/setterMarcoFalke
c8abbc9d1fd8f77b5dcf31cf7a6dd6aac5d1c75c p2p: declare Announcement::m_state as uint8_t, add getter/setter (Jon Atack) Pull request description: Change `Announcement::m_state` in `tx_request.cpp` from type `State` to `uint8_t` and add a getter and setter for the conversion to/from `State`. This should silence these travis ci gcc compiler warnings: ``` txrequest.cpp:73:21: warning: ‘{anonymous}::Announcement::m_state’ is too small to hold all values of ‘enum class {anonymous}::State’ State m_state : 3; ^ ``` The gcc warnings are based on the maximum value held by the underlying uint8_t enumerator type, even though the intention of the bitfield declaration is the maximum declared enumerator value. They have apparently been silenced in gcc 8.4+ and 9.3+ according to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414. ACKs for top commit: sipa: utACK c8abbc9d1fd8f77b5dcf31cf7a6dd6aac5d1c75c ajtowns: ACK c8abbc9d1fd8f77b5dcf31cf7a6dd6aac5d1c75c -- quick code review hebasto: ACK c8abbc9d1fd8f77b5dcf31cf7a6dd6aac5d1c75c, tested on Bionic (x86_64, gcc 7.5.0): Tree-SHA512: 026721dd7a78983a72da77638d3327d2b252bef804e489278a852f000046c028d6557bbd6c2b4cea391d4e01f9264a1be842d502047cb90b2997cc37bee59e61
2020-10-19Merge #19624: Warn on unknown rw_settingsMarcoFalke
fa48405ef84985e5a9d38ec38e90d16596ea45b5 Warn on unknown rw_settings (MarcoFalke) Pull request description: Log a warning to debug log if unknown settings are encountered. This should probably only ever happen when the software is upgraded. Something similar is already done for the command line and config file. See: * test: Add test for unknown args #16234 (commit fa7dd88b71a1c6641bd450fae29a4a31849b1afd) ACKs for top commit: ryanofsky: Code review ACK fa48405ef84985e5a9d38ec38e90d16596ea45b5. Looks good and I could see this being helpful for debugging. Thanks for taking suggestions Tree-SHA512: cec7d88adf84fa0a842f56b26245157736eb50df433db951e622ea07fd145b899822b24cdab1d8b36c066415ce4f0ef09b493fa8a8d691532822a59c573aafa7
2020-10-19Merge #20180: test: Fix -Wunused-function warnings if configured --without-libsMarcoFalke
76bbcc414f3001b16ac0101f738ed0b3e6f1a372 test: Fix -Wunused-function warning if configured --without-libs (Hennadii Stepanov) Pull request description: On master (80c8a02f1b4f6ad2b5c02595d66a74db22373ed4) compiling with gcc: ``` $ ./configure --without-libs $ make clean && make ... test/script_tests.cpp:1369:23: warning: ‘CScriptWitness script_tests::ScriptWitnessFromJSON(const UniValue&)’ defined but not used [-Wunused-function] 1369 | static CScriptWitness ScriptWitnessFromJSON(const UniValue& univalue) | ^~~~~~~~~~~~~~~~~~~~~ test/script_tests.cpp:1357:28: warning: ‘std::vector<CTxOut> script_tests::TxOutsFromJSON(const UniValue&)’ defined but not used [-Wunused-function] 1357 | static std::vector<CTxOut> TxOutsFromJSON(const UniValue& univalue) | ^~~~~~~~~~~~~~ test/script_tests.cpp:1350:28: warning: ‘CMutableTransaction script_tests::TxFromHex(const string&)’ defined but not used [-Wunused-function] 1350 | static CMutableTransaction TxFromHex(const std::string& str) | ^~~~~~~~~ ... ``` This change is move-only (nice to review with `git diff --color-moved`). ACKs for top commit: practicalswift: ACK 76bbcc414f3001b16ac0101f738ed0b3e6f1a372: diff looks correct fanquake: ACK 76bbcc414f3001b16ac0101f738ed0b3e6f1a372 - verified that this fixes the warnings. As mentioned can be reviewed with `git diff HEAD~ --color-moved=dimmed_zebra`. Tree-SHA512: 7799ac190d1e3f15e38b36cfcd1f8d138be80cab6c6cfad8f7828e07deffc2037d52f1d967f7f233a3a8ed74eee184f5275076c2f364c3e363c77a1f40aa5030
2020-10-19Merge #20082: [bugfix] random: fixes read buffer to use min rather than maxfanquake
bd5215103eb3985c1622eddea45a040e6173829c random: fixes read buffer resizing in RandAddSeedPerfmon (Ethan Heilman) Pull request description: As shown below when resizing the read buffer `vData` `std::max((vData.size() * 3) / 2, nMaxSize)` is used. This means that the buffer size immediately jumps to `nMaxSize`. I believe the intend of this code is to grow the buffer size through several steps rather than immediately resize it to the max size. ```cpp std::vector<unsigned char> vData(250000, 0); long ret = 0; unsigned long nSize = 0; const size_t nMaxSize = 10000000; // Bail out at more than 10MB of performance data while (true) { nSize = vData.size(); ret = RegQueryValueExA(HKEY_PERFORMANCE_DATA, "Global", nullptr, nullptr, vData.data(), &nSize); if (ret != ERROR_MORE_DATA || vData.size() >= nMaxSize) break; vData.resize(std::max((vData.size() * 3) / 2, nMaxSize)); // Grow size of buffer exponentially } ``` vData always starts at size 250,000 and nMaxSize is always 10,000,000 so the first time this line is reached: ```cpp vData.resize(std::max((vData.size() * 3) / 2, nMaxSize)); ``` the effect will always be to resize vData to nMaxSize. Then because the loop terminates when vData.size >= 10,000,000 only one resize operation will take place. To fix this issue we replace `std::min` with `std::max` This PR also adds a comment clarifying the behavior of this function the first time it is called. ACKs for top commit: fanquake: ACK bd5215103eb3985c1622eddea45a040e6173829c - thanks for taking a look at this Ethan. Swapping from `std::max` to `std::min` here certainly seems correct. Tree-SHA512: 7c65f700e5bbe44bc2f1ffdcdc99ec19c542894c95b5ee9791facd09d02afae88d1f8f35af129719e4860db94bc790856e7adb1d218a395381e7c2913b95f1d0
2020-10-19wallet: Add GetClosestWalletFeature functionAndrew Chow
Given a version number, get the closest supported WalletFeature for a version number.
2020-10-19wallet: Add utility method for CanSupportFeatureAndrew Chow
2020-10-19Merge #19986: refactor: clean up -Wlogical-op warning in ↵fanquake
wallet/scriptpubkeyman.cp 95fedd33a23d6cb7542378afef229965f1ebfd68 refactor: Clean up -Wlogical-op warning (maskoficarus) Pull request description: This is a quick patch that fixes #19912 . This change prevents a -Wlogical-op warning that occurs because we're treating a const int value as a boolean. There's no sense checking if a non-zero constant has a value, so I've removed the check. #18836 also addresses the same warning, but has a larger scope and will require more review. This pull request will act as a patch to prevent this compile warning until 18836 is merged. ACKs for top commit: MarcoFalke: review ACK 95fedd33a23d6cb7542378afef229965f1ebfd68 hebasto: ACK 95fedd33a23d6cb7542378afef229965f1ebfd68, tested on Linux Mint 20 (x86_64): Tree-SHA512: 13a9d7f7cb472f4c22a01ca2f9771a75267ff769bdae9d0dc6b2c7f3b05369f6dfa859be2b172b39c15ede6c44cddf556380b3565e42850faa65ccd3fe6e175b
2020-10-19Merge #19911: net: guard vRecvGetData with cs_vRecv and orphan_work_set with ↵fanquake
g_cs_orphans da0988daf1d665a4644ad3f1ddf3f8a8bdd88cde scripted-diff: rename vRecvGetData (Neha Narula) ba951812ec0cc8ebee5911a582f188525b76ff0a Guard vRecvGetData (now in net processing) with its own mutex (Neha Narula) 2d9f2fca43aadcdda4d644cddab36dca88b40b97 Move vRecvGetData to net processing (Neha Narula) 673247b58cd1252ab7e99f7d63ead05cc100cef2 Lock before checking if orphan_work_set is empty; indicate it is guarded (Neha Narula) 8803aee66813d27ddbdfce937ab9c35f8f7c35bc Move m_orphan_work_set to net_processing (Neha Narula) 9c47cb29f9f525ee58acc629825a97075156d764 [Rename only] Rename orphan_work_set to m_orphan_work_set. (Neha Narula) Pull request description: Add annotations to guard `vRecvGetData` and `orphan_work_set` and fix up places where they were accessed without a lock. There is no current data race because they happen to be accessed by only one thread, but this might not always be the case. Original discussion: https://github.com/bitcoin/bitcoin/pull/18861#discussion_r451778445 ACKs for top commit: MarcoFalke: review ACK da0988daf1d665a4644ad3f1ddf3f8a8bdd88cde 🐬 jnewbery: Code review ACK da0988daf1d665a4644ad3f1ddf3f8a8bdd88cde hebasto: ACK da0988daf1d665a4644ad3f1ddf3f8a8bdd88cde, I have reviewed the code and it looks correct, I agree it can be merged. Tree-SHA512: 31cadd319ddc9273a87e77afc4db7339fd636e816b5e742eba5cb32927ac5cc07a672b2268d2d38a75a0f1b17d93836adab9acf7e52f26ea9a43f54efa57257e
2020-10-18test: Fix -Wunused-function warning if configured --without-libsHennadii Stepanov
This is a move-only change.
2020-10-17Merge #20169: Taproot follow-up: Make ComputeEntrySchnorr and ↵fanquake
ComputeEntryECDSA const to clarify contract 51365674e828ae95477570019738ab32aa572241 script: Make ComputeEntrySchnorr and ComputeEntryECDSA const to clarify contract (practicalswift) Pull request description: Make `ComputeEntrySchnorr` and `ComputeEntryECDSA` `const` to clarify contract. ACKs for top commit: benthecarman: ACK 51365674e828ae95477570019738ab32aa572241 theStack: ACK 51365674e828ae95477570019738ab32aa572241 :ok_hand: sipa: utACK 51365674e828ae95477570019738ab32aa572241 Tree-SHA512: 0f7a72bf6df7a97d21045ead9db398d2a9527c358aeeb894dec34a5386da4cc316e2f3326716e960ef8aa47bf73b99d1f92bb6d45dfa7871c84624bcad8a79f1
2020-10-16p2p: declare Announcement::m_state as uint8_t, add getter/setterJon Atack
to silence these Travis CI GCC compiler warnings: txrequest.cpp:73:21: warning: ‘{anonymous}::Announcement::m_state’ is too small to hold all values of ‘enum class {anonymous}::State’ State m_state : 3; ^ The warnings are based on the maximum value held by the underlying uint8_t enumerator type, though the intention of the bitfield declaration is the maximum declared enumerator value. The warning been silenced in GCC 8.4+ and 9.3+ according to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414
2020-10-16Merge bitcoin-core/gui#97: Relax GUI freezes during IBD (when using wallets)MarcoFalke
0d9d2a1f7c26dc9c7b233ea8c3182fe1f8936bca Only update the updateSmartFeeLabel once in sync (Jonas Schnelli) Pull request description: Calling `updateSmartFeeLabel` and therefore `estimateSmartFee` is pointless during IBD. GUI freezes appear because `estimateSmartFee` competes with `processBlock` for the `m_cs_fee_estimator` lock leading to multiple seconds of blocking the GUI thread in `updateSmartFeeLabel`. ACKs for top commit: ryanofsky: Code review ACK 0d9d2a1f7c26dc9c7b233ea8c3182fe1f8936bca. Clever fix. Didn't test but I remember I could reproduce the startup issue easily before by putting a sleep in estimateSmartFee. promag: Code review ACK 0d9d2a1f7c26dc9c7b233ea8c3182fe1f8936bca. hebasto: ACK 0d9d2a1f7c26dc9c7b233ea8c3182fe1f8936bca, tested on Linux Mint 20 (x86_64) with `QT_FATAL_WARNINGS=1` and `-debug=qt`. Tree-SHA512: 85ec2266f06ddd7b523e24d2a462f10ed965d5b4d479005263056f81b7fe49996e1568dafb84658af406e9202ed3bfa846d59c10bb951e0f97cee230e30fafd5
2020-10-16Merge #20035: signet: Fix uninitialized read in validationWladimir J. van der Laan
fa723e3d43e63e8424d97d21d8f2cc8136aba206 Initialize default-initialized uint256 consensus params to zero explicitly (MarcoFalke) fa729cdb2cee26850663746517e136e5317b121f doc: Move assumed-values doxygen comments to header (MarcoFalke) fa64892b8296208380341c2c1d8c3f6c1a915475 signet: Fix uninitialized read in validation (MarcoFalke) Pull request description: ACKs for top commit: practicalswift: re-ACK fa723e3d43e63e8424d97d21d8f2cc8136aba206: patch still looks correct kallewoof: ReACK fa723e3d43e63e8424d97d21d8f2cc8136aba206 theStack: re-ACK fa723e3d43e63e8424d97d21d8f2cc8136aba206 🍐 Tree-SHA512: db562bcc15af23bbcbf485f0bbf7564c64c144a4368230fd7682e8861d9500f6f5240351e31c560140df43b2e8456eafd9d27d1e8dd682b20afcc279a39dc329
2020-10-16script: Make ComputeEntrySchnorr and ComputeEntryECDSA const to clarify contractpracticalswift
2020-10-16Initialize default-initialized uint256 consensus params to zero explicitlyMarcoFalke
2020-10-16Merge #19836: rpc: Properly deserialize txs with witness before signingfanquake
33330778230961cfbf2a24de36b5877e395cc596 rpc: Adjust witness-tx deserialize error message (MarcoFalke) cccc7525697e7b8d99b545e34f0f504c78ffdb94 rpc: Properly deserialize txs with witness before signing (MarcoFalke) Pull request description: Signing a transaction can only happen when the transaction has inputs. A transaction with inputs can always be deserialized as witness-transaction. If `try_no_witness` decoding is attempted, this will lead to rare intermittent failures. Fixes #18803 ACKs for top commit: achow101: ACK 33330778230961cfbf2a24de36b5877e395cc596 ajtowns: ACK 33330778230961cfbf2a24de36b5877e395cc596 Tree-SHA512: 73f8a5cdfe03fb0e68908d2fa09752c346406f455694a020ec0dd1267ef8f0a583b8e84063ea74aac127106dd193b72623ca6d81469a94b3f5b3c766ebf2c42b
2020-10-15Merge #20090: [doc] Tiny followups to new getpeerinfo connection type fieldWladimir J. van der Laan
41dca087b73a3627107603694f5a982ea2a53189 [trivial] Extract connection type doc into file where it is used. (Amiti Uttarwar) 3069b56a456d98fca7c4a4ccd329581bd1f0b853 [doc] Improve help for getpeerinfo connection_type field. (Amiti Uttarwar) Pull request description: two commits addressing small followups from #19725 * first commit adds a clarification in the release notes that this field shouldn't be expected to be stable (suggested by sdaftuar in https://github.com/bitcoin/bitcoin/pull/19725#issuecomment-697421878) * second commit moves the `CONNECTION_TYPE_DOC` object out of the header file to reduce the size of the binary (suggested by MarcoFalke in https://github.com/bitcoin/bitcoin/pull/19725#discussion_r495467895, he tested and found a decrease of 10kB) ACKs for top commit: achow101: ACK 41dca087b73a3627107603694f5a982ea2a53189 laanwj: Code review ACK 41dca087b73a3627107603694f5a982ea2a53189 Tree-SHA512: a555df978b4341fbe05deeb40a8a655f0d3c5c1c0adcc1737fd2cf61b204a5a24a301ca0c2b5a3616554d4abf8c57074d22dbda5a50d8450bc22c57679424985
2020-10-15Merge #17428: p2p: Try to preserve outbound block-relay-only connections ↵Wladimir J. van der Laan
during restart a490d074b3491427afbd677f5fa635b910f8bb34 doc: Add anchors.dat to files.md (Hennadii Stepanov) 0a85e5a7bc8dc6587963e2e37ac1b087a1fc97fe p2p: Try to connect to anchors once (Hennadii Stepanov) 5543c7ab285e90256cbbf9858249e028c9611cda p2p: Fix off-by-one error in fetching address loop (Hennadii Stepanov) 4170b46544231e7cf1d64ac3baa314083be37502 p2p: Integrate DumpAnchors() and ReadAnchors() into CConnman (Hennadii Stepanov) bad16aff490dcf87722fbfe202a869fb24c734e1 p2p: Add CConnman::GetCurrentBlockRelayOnlyConns() (Hennadii Stepanov) c29272a157d09a8125788c1b860e89b63b4cb36c p2p: Add ReadAnchors() (Hennadii Stepanov) 567008d2a0c95bd972f4031f31647c493d1bc2e8 p2p: Add DumpAnchors() (Hennadii Stepanov) Pull request description: This is an implementation of #17326: - all (currently 2) outbound block-relay-only connections (#15759) are dumped to `anchors.dat` file - on restart a node tries to connect to the addresses from `anchors.dat` This PR prevents a type of eclipse attack when an attacker exploits a victim node restart to force it to connect to new, probably adversarial, peers. ACKs for top commit: jnewbery: code review ACK a490d074b3 laanwj: Code review ACK a490d074b3491427afbd677f5fa635b910f8bb34 Tree-SHA512: 0f5098a3882f2814be1aa21de308cd09e6654f4e7054b79f3cfeaf26bc02b814ca271497ed00018d199ee596a8cb9b126acee8b666a29e225b08eb2a49b02ddd
2020-10-15rpc: update GetNetworksInfo() to not return unsupported networksJon Atack
2020-10-15net: update GetNetworkName() with all enum Network casesJon Atack
2020-10-15Merge #20002: net, rpc, cli: expose peer network in getpeerinfo; ↵Wladimir J. van der Laan
simplify/improve -netinfo 6272604bef3b409455b010d134b4b62c8f6ff49f refactor: enable -netinfo to add future networks (i2p, cjdns) (Jon Atack) 82fd40216c70037480150d2b62e2b58c57784546 refactor: promote some -netinfo localvars to class members (Jon Atack) 5133fab37e8679e1d0d08ead4f5cccf4979dc15b cli: simplify -netinfo using getpeerinfo network field (Jon Atack) 4938a109adf13f2c60a50f08d4cc9ddb8d7ded96 rpc, test: expose CNodeStats network in RPC getpeerinfo (Jon Atack) 6df7882029854f0427d84b22081018ae77e27e66 net: add peer network to CNodeStats (Jon Atack) Pull request description: This PR: - builds on #19991 and #19998 - exposes peer networks via a new getpeerinfo `network` field ("ipv4", "ipv6", or "onion"), and adds functional tests - updates -netinfo to use getpeerinfo `network` rather than detecting the peer networks client-side - refactors -netinfo to easily add future networks ACKs for top commit: laanwj: ACK 6272604bef3b409455b010d134b4b62c8f6ff49f Tree-SHA512: 28883487585135ceaaf84ce09131f2336e3193407f2e3df0960e3f4ac340f500ab94ffecb9d06a4c49bc05e3cca4f914ea4379860bea0bd5df2f834f74616015
2020-10-15wallet: fix importdescriptor silent failIvan Metlushko
2020-10-15Merge #20131: test: Remove unused nVersion=1 in p2p testsWladimir J. van der Laan
faad92fe1c3cca9795226bd167130976930ddab8 test: Remove unused nVersion=1 in p2p tests (MarcoFalke) Pull request description: After commit ddefb5c0b759950942ac03f28c43b548af7b4033 nVersion is no longer used in p2p logic when sending messages. Only when receiving messages, but in this test no messages are received. ACKs for top commit: laanwj: Code review ACK faad92fe1c3cca9795226bd167130976930ddab8 fanquake: ACK faad92fe1c3cca9795226bd167130976930ddab8 Tree-SHA512: 9a7029187aaa5a7929a4a2199646131ff1ea72df6a855ce7022dd3bb2647dd525356dbc5e460c77007eebcdeab400a689db8cb77e8239af3b539c117a4e0d16e
2020-10-15Merge #19770: RPC: getpeerinfo: Deprecate "whitelisted" field (replaced by ↵MarcoFalke
"permissions") 5b57dc5458800e56b4dddfeb32a1813804a62b0f RPC: getpeerinfo: Wrap long help line for bytesrecv_per_msg (Luke Dashjr) d681a28219d3876a2b6e3cd2fb0d92963674903e RPC: getpeerinfo: Deprecate "whitelisted" field (replaced by "permissions") (Luke Dashjr) Pull request description: If we were going to continue support for "whitelisted", we should have probably made it true if any permission flag was set, rather than only if "default permissions" were used. This corrects the description, and deprecates it. ACKs for top commit: laanwj: ACK 5b57dc5458800e56b4dddfeb32a1813804a62b0f Tree-SHA512: a2e2137f8be8110357c1b2fef2c923fa8c7c4a49b0b2b3a2d78aedf12f8ed5cc7e140018a21b37e6ec7770ed4007542aeef7ad4558973901b107e8e0f81d6003
2020-10-15Merge #20140: Restore compatibility with old CSubNet serializationWladimir J. van der Laan
886be97af5d4aba338b23a7b20b8560be8156231 Ignore incorrectly-serialized banlist.dat entries (Pieter Wuille) 883cea7dea3cedc9b45b6191f7d4e7be2d9a11ca Restore compatibility with old CSubNet serialization (Pieter Wuille) Pull request description: #19628 changed CSubNet for IPv4 netmasks, using the first 4 bytes of `netmask` rather than the last 4 to store the actual mask. Unfortunately, CSubNet objects are serialized on disk in banlist.dat, breaking compatibility with existing banlists (and bringing them into an inconsistent state where entries reported in `listbanned` cannot be removed). Fix this by reverting to the old format (just for serialization). Also add a sanity check to the deserializer so that nonsensical banlist.dat entries are ignored (which would otherwise be possible if someone added IPv4 entries after #19628 but without this PR). Reported by Greg Maxwell. ACKs for top commit: laanwj: Code review ACK 886be97af5d4aba338b23a7b20b8560be8156231 vasild: ACK 886be97af Tree-SHA512: d3fb91e8ecd933406e527187974f22770374ee2e12a233e7870363f52ecda471fb0b7bae72420e8ff6b6b1594e3037a5115984c023dbadf38f86aeaffcd681e7
2020-10-15doc: Move assumed-values doxygen comments to headerMarcoFalke
2020-10-15signet: Fix uninitialized read in validationMarcoFalke
2020-10-15Merge #17775: DecodeHexTx: Try case where txn has inputs firstWladimir J. van der Laan
27fc6a38f813b65e5110c77925a335214aec756a DecodeHexTx: Break out transaction decoding logic into own function (Gregory Sanders) 6020ce3c01fe5ee15a236c47da23342005b63055 DecodeHexTx: Try case where txn has inputs first (Gregory Sanders) Pull request description: Alternative/complementary to https://github.com/bitcoin/bitcoin/pull/17773 to avoid random `decoderawtransaction` failures. Most cases this is used now is on complete transactions, especially with the uptake of PSBT. ACKs for top commit: ajtowns: ACK 27fc6a38f813b65e5110c77925a335214aec756a achow101: ACK 27fc6a38f813b65e5110c77925a335214aec756a Tree-SHA512: 0a836d7c9951bf7d2764507788dbcc871d520f1ea9b77d6b22f051f4d6224ed779aba0e4f28c5c165040095ee0c70b67080c39164d82de61b19158f7ae6fddb2