aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-10-13Merge bitcoin/bitcoin#22392: scripts: use LIEF for ELF security & symbol checksW. J. van der Laan
ce69e18947dd917d54eb036e732ac7f7bceede76 scripts: remove pixie.py (fanquake) 00b85d0b13e419c1b48f47a90236cb4ed7fab491 scripts: only parse the binary once in security-check.py (fanquake) cad40a5b167c5300564bd7b4505cf6650780084b scripts: use LIEF for ELF checks in security-check.py (fanquake) 8242ae230e1ff362a4e16f1503e503317471c790 scripts: only parse the binary once in symbol-check.py (fanquake) 309eac9019c224dfd79a78e381cfcb70fee190f3 scripts: use LIEF for ELF checks in symbol-check.py (fanquake) 610a8a8e39c1d94839dfb7e1c66c01f13f946657 test-*-check: Pass in *FLAGS and compile with them (Carl Dong) Pull request description: This finishes the transition to using LIEF for the ELF symbol and security checks. Note that there's currently a work around used for identifying RISCV binaries (just checking the interpreter). I've sent a PR upstream, https://github.com/lief-project/LIEF/pull/562, and we should be able to drop that when using LIEF 0.12.0 and onwards. ACKs for top commit: dongcarl: Code Review ACK ce69e18947dd917d54eb036e732ac7f7bceede76 laanwj: Code review ACK ce69e18947dd917d54eb036e732ac7f7bceede76 Tree-SHA512: 911ba693cd9777ad1fc1f66dff6c4d3630a907351215380cbde5b14a4bbf5cf7eebf52eafa7e86b27deabd2d93d1b403f34aabd356b5ceaab3cc6e9941a01dd4
2021-10-13Merge bitcoin/bitcoin#23253: bitcoin-tx: Reject non-integral and out of ↵W. J. van der Laan
range int strings fa6f29de516c7af5206b91b59ada466032329250 bitcoin-tx: Reject non-integral and out of range multisig numbers (MarcoFalke) fafab8ea5e6ed6b87fac57a5cd16a8135236cdd6 bitcoin-tx: Reject non-integral and out of range sequence ids (MarcoFalke) fa53d3d8266ad0257315d07b71b4f8a711134622 test: Check that bitcoin-tx accepts whitespace around sequence id and multisig numbers (MarcoFalke) Pull request description: Seems odd to silently accept arbitrary strings that don't even represent integral values. Fix that. ACKs for top commit: practicalswift: cr ACK fa6f29de516c7af5206b91b59ada466032329250 laanwj: Code review ACK fa6f29de516c7af5206b91b59ada466032329250 Empact: Code review ACK https://github.com/bitcoin/bitcoin/pull/23253/commits/fa6f29de516c7af5206b91b59ada466032329250 promag: Code review ACK fa6f29de516c7af5206b91b59ada466032329250. Tree-SHA512: e31f7f21fe55ac069e755557bdbcae8d5d29e20ff82e441ebdfc65153e3a31a4edd46ad3e6dea5190ecbd1b8ea5a8f94daa5d59a3b7558e46e794e30db0e6c79
2021-10-13Merge bitcoin/bitcoin#23003: multiprocess: Make ↵MarcoFalke
interfaces::Chain::isTaprootActive non-const 7e88f61b285e6a356ea4f6ba384858f109559985 multiprocess: Make interfaces::Chain::isTaprootActive non-const (Russell Yanofsky) Pull request description: `interfaces::Chain` is an abstract class, so declaring the method const would be exposing internal implementation details of subclasses to interface callers. And specifically this doesn't work because the multiprocess implementation of the `interfaces::Chain::isTaprootActive` method can't be const because IPC connection state and request state is not constant during the call. --- This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10). ACKs for top commit: jamesob: ACK https://github.com/bitcoin/bitcoin/pull/23003/commits/7e88f61b285e6a356ea4f6ba384858f109559985 Tree-SHA512: 1c5ed89870aeb7170b9048c41299ab650dfa3d0978088e08c4c866fa0babb292722710b16f25540f26667220cb4747b1c256c4bd42893c552291eccc155346a3
2021-10-12bitcoin-tx: Reject non-integral and out of range multisig numbersMarcoFalke
2021-10-12bitcoin-tx: Reject non-integral and out of range sequence idsMarcoFalke
2021-10-12rest: Return error when header count is not integralMarcoFalke
2021-10-12Merge bitcoin/bitcoin#23132: test: Change background_cs from pointer to ↵MarcoFalke
reference in validation_chainstate_tests fa4d0aacf2bbddaf1709660ffd8d520570533aa8 test: * -> & (MarcoFalke) Pull request description: This changes background_cs from being a pointer to a reference to work around a gcc false warning. Also, this makes the test easier to read. Fixes bitcoin#23101 Can be reviewed with --ignore-all-space. ACKs for top commit: practicalswift: cr ACK fa4d0aacf2bbddaf1709660ffd8d520570533aa8 jamesob: ACK https://github.com/bitcoin/bitcoin/pull/23132/commits/fa4d0aacf2bbddaf1709660ffd8d520570533aa8 hebasto: ACK fa4d0aacf2bbddaf1709660ffd8d520570533aa8, tested on Linux Mint 20.2 (x86_64) by merging this PR on top of the current master. Tree-SHA512: 93a0d8859201f7074bea52fab8f6701409148bc50cfbb142cacfa6c991fc12c07584df04fead645f11703883df99535423d154f9945202e1c5aff49540d9b607
2021-10-12Merge bitcoin/bitcoin#23227: bitcoin-tx: Avoid treating integer overflow as OP_0Samuel Dobson
fa43e7c2d9dc5e2df70acd2019bdd24023c1d333 bitcoin-tx: Avoid treating overflow as OP_0 (MarcoFalke) fa053c0019bc8b2174c485f4885f894f2b5de472 style: Fix whitespace in Parse* functions (MarcoFalke) fa03dec7e98bdda8aa596ef7943cf0a8d0bcb127 refactor: Use C++11 range based for loop in ParseScript (MarcoFalke) fad55e79ca18a5894a8da6db6309c323eecbb178 doc: Fixup ToIntegral docs (MarcoFalke) Pull request description: Seems odd to treat integer overflow as `OP_0`, so fix that. ACKs for top commit: theStack: re-ACK fa43e7c2d9dc5e2df70acd2019bdd24023c1d333 shaavan: ACK fa43e7c2d9dc5e2df70acd2019bdd24023c1d333 Tree-SHA512: 1bbe2de62d853badc18d57d169c6e78ddcdff037e5a85357995dead11c8e67a4fe35087e08a181c60753f8ce91058b7fcc06f5b7901afedc78fbacea8bc3ef4f
2021-10-12Fix outdated comments referring to ::ChainActive()Samuel Dobson
2021-10-12scripts: use LIEF for ELF checks in symbol-check.pyfanquake
Co-authored-by: Carl Dong <contact@carldong.me>
2021-10-12Modify copyright header on Bech32 codeSamuel Dobson
2021-10-12Add lots of comments to Bech32Samuel Dobson
2021-10-12Add boost tests for bech32 error detectionMeshCollider
2021-10-12Add error_locations to validateaddress RPCSamuel Dobson
2021-10-12Add Bech32 error location functionSamuel Dobson
2021-10-12More detailed error checking for base58 addressesSamuel Dobson
2021-10-11util: Add mincore and clone3 to syscall sandboxMarcoFalke
2021-10-11Integrate univalue into our buildsystemCory Fields
This addresses issues like the one in #12467, where some of our compiler flags end up being dropped during the subconfigure of Univalue. Specifically, we're still using the compiler-default c++ version rather than forcing c++17. We can drop the need subconfigure completely in favor of a tighter build integration, where the sources are listed separately from the build recipes, so that they may be included directly by upstream projects. This is similar to the way leveldb build integration works in Core. Core benefits of this approach include: - Better caching (for ex. ccache and autoconf) - No need for a slow subconfigure - Faster autoconf - No more missing compile flags - Compile only the objects needed There are no benefits to Univalue itself that I can think of. These changes should be a no-op there, and to downstreams as well until they take advantage of the new sources.mk. This also removes the option to use an external univalue to avoid similar ABI issues with mystery binaries. Co-authored-by: fanquake <fanquake@gmail.com>
2021-10-11Update univalue subtree to latest upstreamfanquake
2021-10-11Fix typo and grammarHeebs
Fix typo and grammar in the coin selection algorithm's description.
2021-10-11validation: put coins cache write log into bench debug logAnthony Towns
2021-10-11blockstorage: use debug log categoryAnthony Towns
2021-10-11validation: move header validation error logging to VALIDATION debug categoryAnthony Towns
2021-10-11validation: include block hash when reporting prev block not found errorsAnthony Towns
2021-10-11bitcoin-tx: Avoid treating overflow as OP_0MarcoFalke
2021-10-11Merge bitcoin/bitcoin#23199: refactor: use `{Read,Write}BE32` helpers for ↵fanquake
BIP32 nChild (de)serialization 7fc487afd1249eee97651a0eec0630d7e421924f refactor: use `{Read,Write}BE32` helpers for BIP32 nChild (de)serialization (Sebastian Falbesoner) Pull request description: This small refactoring PR replaces manual bit-fiddling (de)serialization of the BIP32 child number (nChild) by the helpers `ReadBE32`/`WriteBE32`. Note that those were first introduced in #4100, almost one year _after_ the BIP32 derivation implementation has been merged (#2829, eb2c9990). ACKs for top commit: sipa: utACK 7fc487afd1249eee97651a0eec0630d7e421924f laanwj: Code review ACK 7fc487afd1249eee97651a0eec0630d7e421924f Tree-SHA512: bbe3e411fb0429fa74c8a5705a91f4d6ed704dac9d6623ecb633563f22acf8e21f3189a16f1d0cf1aeedfc56a5b695df54ae51e9577e34eb6d7dc335de2da6de
2021-10-11Merge bitcoin/bitcoin#23214: Replace stoul with ToIntegral in dbwrapperfanquake
fa165e954579436fe4b636e4222d8ce0c1269786 Replace stoul with ToIntegral in dbwrapper (MarcoFalke) Pull request description: The string is created with `%llu`. See: https://github.com/bitcoin/bitcoin/blob/7fcf53f7b4524572d1d0c9a5fdc388e87eb02416/src/leveldb/db/db_impl.cc#L1436-L1437 So it seems odd to silently accept when parsing: whitespace, a sign character, trailing chars, overflow, .... Fix that by using the stricter ToIntegral. ACKs for top commit: laanwj: Code review ACK fa165e954579436fe4b636e4222d8ce0c1269786 practicalswift: cr ACK fa165e954579436fe4b636e4222d8ce0c1269786 theStack: Code-review ACK fa165e954579436fe4b636e4222d8ce0c1269786 Tree-SHA512: b87f01431ca0b971ff84610022da8679d3c33470b88cfc3f4a337e6e176a0455715588aefd40e8e2bbe7459d902dc89d7bfe34e7fd66755f631cc18dc039fa2f
2021-10-09Merge bitcoin-core/gui#448: Add helper to load fontHennadii Stepanov
d54ec27bac388d7b84cf7b6cb4506bb0c25f2f88 qt: Add helper to load font (João Barbosa) Pull request description: Originally submitted as https://github.com/bitcoin-core/gui-qml/pull/49. ACKs for top commit: hebasto: re-ACK d54ec27bac388d7b84cf7b6cb4506bb0c25f2f88 stratospher: Tested ACK d54ec27. Refactoring the code and defining `loadFont()` in `src/qt/guiutil.cpp` reduces redundant imports of the `QFontDatabase` and is a better design. shaavan: ACK d54ec27bac388d7b84cf7b6cb4506bb0c25f2f88 Tree-SHA512: b156bb6ffb08dd57476f383a29bbb0a1108b62794d430debb77252f7d09df1409a7532b09d17d8836d1c2ab7c126a6618231164b9d0def1b8f361a81ef22d107
2021-10-08fees: Always round up fee calculated from a feerateAndrew Chow
When calculating the fee for a given tx size from a fee rate, we should always round up to the next satoshi. Otherwise, if we round down (via truncation), the calculated fee may result in a fee with a feerate slightly less than targeted. This is particularly important for coin selection as a slightly lower feerate than expected can result in a variety of issues.
2021-10-08qt: hide Create Unsigned button behind an expert mode optionAndrew Chow
2021-10-08style: Fix whitespace in Parse* functionsMarcoFalke
2021-10-08refactor: Use C++11 range based for loop in ParseScriptMarcoFalke
2021-10-08doc: Fixup ToIntegral docsMarcoFalke
2021-10-08Merge bitcoin/bitcoin#23185: test: Add ParseMoney and ParseScript testsMarcoFalke
fa1477e706504f45a7a0f51b9f4b8014ee6a7d8d test: Add ParseMoney and ParseScript tests (MarcoFalke) Pull request description: Add missing tests ACKs for top commit: practicalswift: cr ACK fa1477e706504f45a7a0f51b9f4b8014ee6a7d8d shaavan: tACK fa1477e706504f45a7a0f51b9f4b8014ee6a7d8d Tree-SHA512: e57b4e8da4abe075b4ad7e7abd68c4d0eecf0c805acd2c72076aac4993d3ec5748fd02b721c4c110494db56fdbc199301e5cfd1dc0212f2002f355b47f70e539
2021-10-08Disable lock contention logging in checkqueue_testsJon Atack
as some of these tests are designed to be heavily contested to trigger race conditions or other issues. This created very large log files when run with DEBUG_LOCKCONTENTION defined (up to v22) or with lock logging enabled by default in current master. Examples running the following command: ./src/test/test_bitcoin -t checkqueue_tests/test_CheckQueue_Correct_Random -- DEBUG_LOG_OUT > testlog.txt -rw-r--r-- 87042178 Oct 8 12:41 testlog-with-DEBUG_LOCKCONTENTION-at-v22-run1.txt -rw-r--r-- 73879896 Oct 8 12:42 testlog-with-DEBUG_LOCKCONTENTION-at-v22-run2.txt -rw-r--r-- 65150518 Oct 8 12:51 testlog-with-DEBUG_LOCKCONTENTION-at-bb9f76a-run1.txt -rw-r--r-- 65774554 Oct 8 12:52 testlog-with-DEBUG_LOCKCONTENTION-at-bb9f76a-run2.txt -rw-r--r-- 73493309 Oct 8 13:00 testlog-current-master-at-991753e-run1.txt -rw-r--r-- 65616977 Oct 8 13:01 testlog-current-master-at-991753e-run2.txt -rw-r--r-- 5093 Oct 8 13:04 testlog-with-this-commit-run1.txt -rw-r--r-- 5093 Oct 8 13:05 testlog-with-this-commit-run2.txt
2021-10-08Merge bitcoin/bitcoin#23053: [fuzz] Use public methods in addrman fuzz testsfanquake
44452110f0fa7cc1bcb941a3c7b5db4b492a7b9c [fuzz] Update comment in FillAddrman() (John Newbery) 640476eb0e17fd4c64d4840ceab229642f1d79d9 [fuzz] Make Fill() a free function in fuzz/addrman.cpp (John Newbery) 90ad8ad61a38dbb1f247a5f3d5f649a856d9938a [fuzz] Make RandAddr() a free function in fuzz/addrman.cpp (John Newbery) 491975c596ebce93ae8de192c9ef171f002fac7c [fuzz] Pass FuzzedDataProvider& into Fill() in addrman fuzz tests (John Newbery) 56303e382e26ac7096c09152c66894dc3bb4d1fd [fuzz] Create a FastRandomContext in addrman fuzz tests (John Newbery) Pull request description: #22974 improved the performance of `CAddrMan::Good()` significantly so that it could be used directly in the fuzz tests, instead of those tests reaching directly into addrman's internal data structures. This PR continues the work of making the fuzz tests only use `CAddrMan`'s public methods and pulls the `Fill()` and `RandAddr()` methods from `CAddrManDeterministic` into free functions, since they no longer need access to `CAddrMan` internals. ACKs for top commit: theuni: utACK 44452110f0fa7cc1bcb941a3c7b5db4b492a7b9c. Agree the failure seems unrelated, looks like some startup race. mzumsande: ACK 44452110f0fa7cc1bcb941a3c7b5db4b492a7b9c vasild: ACK 44452110f0fa7cc1bcb941a3c7b5db4b492a7b9c Tree-SHA512: fcf994e1dedd0012b77f632720b6423d51ceda4eb85c9efe572f2a1150117f9e511114a5206738dd94409137287577f3b01a9998f5237de845410d3d96e7cb7f
2021-10-08Merge bitcoin/bitcoin#23188: wallet: fund transaction external input cleanupsfanquake
43568782c23185a0599a6e60d61db4716da1cda1 External input fund support cleanups (Gregory Sanders) Pull request description: Minor cleanups to https://github.com/bitcoin/bitcoin/pull/17211 ACKs for top commit: achow101: ACK 43568782c23185a0599a6e60d61db4716da1cda1 meshcollider: utACK 43568782c23185a0599a6e60d61db4716da1cda1 benthecarman: ACK 43568782c23185a0599a6e60d61db4716da1cda1 Tree-SHA512: 865f8a3804f8c0027f5393a0539041158166a919378f2c3bc99b936843eee2329372bcc2af888fa62babfa5f6baf4f13d4cfef7b4e26a7265a82a908f9719ad6
2021-10-07qt: Add Create Unsigned button to SendConfirmationDialogAndrew Chow
Instead of having different buttons or changing button behavior for making a PSBT, just have SendConfirmationDialog return whether the user wants a PSBT or a broadcasted transaction. Since this dialog is used by both the bumpFeeAction and the SendCoinsDialog, changes to both to support the different behavior is needed. They will check the return value of the SendConfirmationDialog for whether a PSBT needs to be created instead of checking whether private keys are disabled. Strings used in this dialog are being slightly modified to work with both private keys enabled and disabled wallets.
2021-10-07GUI/Options: Restore "S" accelerator for "Start on system login" optionLuke Dashjr
Shift RPC server option to use "P" instead
2021-10-07qt: Add helper to load fontJoão Barbosa
2021-10-07Merge bitcoin/bitcoin#23196: util: Make syscall sandbox compilable with ↵W. J. van der Laan
kernel 4.4.0 ac402e749c91d40ce7066993f72f426b67196bd7 util: Conditionalize some syscalls in syscall name table (W. J. van der Laan) 64085b37f8d5c018372f013e925a725b67b527fc util: Add __NR_copy_file_range syscall constant for sandbox (W. J. van der Laan) Pull request description: Make the new syscall sandbox compilable with kernel 4.4.0. This defines a further syscall constant `__NR_copy_file_range` to make sure all syscalls used in the profile are available even if not defined in the kernel headers. Also, make a few syscalls optional in the syscall name table: - `__NR_pkey_alloc` - `__NR_pkey_free` - `__NR_pkey_mprotect` - `__NR_preadv2` - `__NR_pwritev2` ACKs for top commit: practicalswift: cr ACK ac402e749c91d40ce7066993f72f426b67196bd7 Tree-SHA512: be6c55bf0a686bcdfad0b80b950d0d7d77a559ac234fc997b47514bdba44865a371c96dd8d34a811ba46424a84f410e23f75485b9b1e69e529b7d40e0b4b91b8
2021-10-07Merge bitcoin/bitcoin#22539: Re-include RBF replacement txs in fee estimationW. J. van der Laan
3b613722f6b895d7b268b3f878fddfc888381226 Add release notes for fee est with replacement txs (Antoine Poinsot) 45564065627ada5dfadff13bc32bc672a4edf152 qa: test fee estimation with replacement transactions (Antoine Poinsot) 053415b297b8665f2d2c4dce7c2c54bcc5298ef4 qa: split run_test into smaller parts (Antoine Poinsot) 06c5ce9714f7090bfb494309980f375975b7a00e Re-include RBF replacement txs in fee estimation (Antoine Poinsot) Pull request description: This effectively reverts #9519. RBF is now largely in use on the network (signaled for by around 20% of all transactions on average) and replacement logic is implemented in most end-user wallets. The rate of replaced transactions is also expected to rise as fee-bumping techniques are being developed for pre-signed transaction ("L2") protocols. ACKs for top commit: prayank23: reACK https://github.com/bitcoin/bitcoin/pull/22539/commits/3b613722f6b895d7b268b3f878fddfc888381226 Zero-1729: re-ACK 3b613722f6b895d7b268b3f878fddfc888381226 benthecarman: reACK 3b613722f6b895d7b268b3f878fddfc888381226 glozow: ACK 3b613722f6b895d7b268b3f878fddfc888381226 theStack: re-ACK 3b613722f6b895d7b268b3f878fddfc888381226 🍪 Tree-SHA512: a6146d15c80ff4ba9249314b0ef953a66a15673e61b8f98979642814f1b169b5695e330e3ee069fa9a7e4d1f8aa10e1dcb7f9aa79181cea5a4c4dbcaf5483023
2021-10-07p2p: Use mocktime for ping timeoutMarcoFalke
2021-10-07Replace stoul with ToIntegral in dbwrapperMarcoFalke
2021-10-07Merge bitcoin/bitcoin#23172: doc: Extract FundTxDoc in rpcwalletfanquake
fafff132cf4e5c2950d28f63cb4320236d1a5495 doc: Extract FundTxDoc (MarcoFalke) Pull request description: No need to duplicate the documentation for the same field(s) three times. Fix that by de-duplicating it for the fields: conf_target, estimate_mode, replaceable, and solving_data. Can be reviewed with `--color-moved=dimmed-zebra --color-moved-ws=ignore-all-space`. ACKs for top commit: fanquake: ACK fafff132cf4e5c2950d28f63cb4320236d1a5495 Tree-SHA512: 098ddad3904b80b24c9e7b57ca8e807a6ccc3899eac2c9986d71ba3873c2b580bbb95f2fdfbf94b2db02f81c7b0ebf438a90324c23389b7b968ca85ae8475373
2021-10-07Merge bitcoin/bitcoin#23208: util: Add mremap syscall to AllowAddressSpaceAccessfanquake
fab360aa0027a274681eff3f00ac1972bcfa126c util: Add mremap syscall to AllowAddressSpaceAccess (MarcoFalke) Pull request description: Fixes https://github.com/bitcoin/bitcoin/issues/23206 ACKs for top commit: practicalswift: cr ACK fab360aa0027a274681eff3f00ac1972bcfa126c laanwj: Code review ACK fab360aa0027a274681eff3f00ac1972bcfa126c fanquake: ACK fab360aa0027a274681eff3f00ac1972bcfa126c - confirmed that the GUIX build is working with this change: Tree-SHA512: 9cf808b3e04830e87bca49b27914993929be3c27eb674d89739b8ea5e5c848c87713d638506c1cd2b80b0129c3dff0c488eb240eef3bbf3d7508ece3c934fb54
2021-10-07refactor: move `update_*` structs from txmempool.h to .cpp fileSebastian Falbesoner
These helpers are exclusively used in txmempool.cpp, hence they should also be moved there. Can be reviewed with "--color-moved=dimmed-zebra".
2021-10-07refactor: use const reference for parents in `CTxMemPool::UpdateAncestorsOf`Sebastian Falbesoner
2021-10-06Merge bitcoin-core/gui#409: Fix window title of wallet loading windowHennadii Stepanov
01bff8f0494ba1c02c087b7186c892785f326fd9 qt: Fix WalletControllerActivity progress dialog title (Shashwat) Pull request description: Throughout the GUI, the title of the window, tells about the purpose of the window. This was not true for the title of wallet loading wallet. This PR fixes this issue by renaming the wallet loading window title to 'Open Wallet' Changes introduced in this PR (Runned Bitcoin-GUI on signet network) |Master|PR| |---|---| |![Screenshot from 2021-08-24 00-02-18](https://user-images.githubusercontent.com/85434418/130500309-2f0af2c9-55f0-4609-a92b-3156800fa92e.png)|![Screenshot from 2021-09-07 18-19-10](https://user-images.githubusercontent.com/85434418/132351394-1ee4a36c-3ba9-4d1a-a8f3-f17804fb856a.png)| ACKs for top commit: jarolrod: ACK 01bff8f hebasto: ACK 01bff8f0494ba1c02c087b7186c892785f326fd9, tested on Linux Mint 20.2 (Qt 5.12.8). Tree-SHA512: cd21c40752eb1c0afb5ec61b8a40e900bc3aa05749963f7957ece6024e4957f5bb37e0eb4f95aac488f5e08aea51fe13b023b05d8302a08c88dcc6790410ba64
2021-10-06test: Add ParseMoney and ParseScript testsMarcoFalke