aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-18test: fix intermittent timeouts in p2p_timeouts.pyMartin Zumsande
by checking that all nodes are added before the mocktime is bumped. Fixes #23800
2021-12-18Merge bitcoin/bitcoin#23806: fuzz: follow up for #22704MarcoFalke
8f79831ab57b8fce48bb7b01fce86fac338755a5 Refactor the chacha20 differential fuzz test (stratospher) Pull request description: This PR addresses [comments from #22704](https://github.com/bitcoin/bitcoin/pull/22704/files#discussion_r771510963) to make the following changes in `src/test/fuzz/crypto_diff_fuzz_chacha20.cpp`: - replace `memcmp()` with == - add a missing assert statement to compare the encrypted bytes Top commit has no ACKs. Tree-SHA512: 02338460fb3a89e732558bf00f3aebf8f04daba194e03ae0e3339bb2ff6ba35d06841452585b739047a29f8ec64f36b1b4ce2dfa39a08f6ad44a6a937e7b3acb
2021-12-18Merge bitcoin/bitcoin#23383: Update libsecp256k1 subtree to current masterfanquake
314195c8be3bd7db0d5817c4fb3aa85c84363ce9 Remove unnecessary cast in CKey::SignSchnorr (Pieter Wuille) a1f76cdb22e3278a48d63dd23c1fe3308daedd8c Remove --disable-openssl-tests for libsecp256k1 configure (Pieter Wuille) 86dbc4d075decb82fbba837aaa283cf0561897ad Squashed 'src/secp256k1/' changes from be8d9c262f..0559fc6e41 (Pieter Wuille) Pull request description: The motivation for this bump is getting rid of a cast in `CKey::SignSchnorr`; the `aux_rand` argument isn't modified by the `secp256k1_schnorrsig_sign` function, but was marked as non-`const` anyway. This is fixed now (bitcoin-core/secp256k1#966), and the cast is removed in this PR. There are a few other relevant changes: * (bitcoin-core/secp256k1#956): replaces a runtime-computed table with a precomputed one; this adds arouns 1 MiB to the binary size, but is a step towards significantly simplifying the API. If 1 MiB is too much, it can be reduced by 2 or 4 (or more) for a slight verification performance reduction. * (bitcoin-core/secp256k1#983): removes (test/bench only) OpenSSL support entirely, removing the need to pass `--disable-openssl-tests` (see #23314). * (bitcoin-core/secp256k1#810): mild performance increase for 64-bit non-x86 platforms. * (bitcoin-core/secp256k1#1002): Make aux_rnd32==NULL behave identical to 0x0000..00 (which impacts BIP341/BIP342 signing in Bitcoin Core, making it more strictly BIP340 compliant, though not in a manner that affects security). ACKs for top commit: fanquake: ACK 314195c8be3bd7db0d5817c4fb3aa85c84363ce9 - this includes a nice simplification to the lilbsecp build system (and thus our build system), and fixes issues like #22854. Did a Guix build on x86 (above), as well as a build on arm64 (except for the arm64 host): Tree-SHA512: 0e048390fc148fbbdf5b98d9cce8c71067564e7d69d97b68347808a9bc45a04f4fc653c392c880d79d5d8b9cf282195520955581ac4f1595f6a948080cf5949d
2021-12-18scripts: match on exe type over str in symbol-check.pyfanquake
2021-12-18scripts: match on exe type over str in security-check.pyfanquake
2021-12-18Merge bitcoin/bitcoin#23803: ci: Disable s390x gui tests for nowfanquake
fa6a548f5485ad5be0106e4727812559aefc5a20 ci: Disable s390x gui tests for now (MarcoFalke) Pull request description: ACKs for top commit: hebasto: ACK fa6a548f5485ad5be0106e4727812559aefc5a20, tested locally with Tree-SHA512: 077bcda0b4612dfbf538eb2999ce9f32ec3739c2ed5709f7c4c5d1a39738fbe6e549bd54b237152fd808736c15af1024e67c95dc87b4c3102738543522cb14d7
2021-12-17Merge bitcoin/bitcoin#23695: p2p: Always serialize local timestamp for ↵W. J. van der Laan
version msg fa1dc9b36a0ccf96cbaf106c060336d91b54579e p2p: Always serialize local timestamp for version msg (MarcoFalke) Pull request description: Currently we serialize the local time when connecting to outbound connections and the "adjusted network" time when someone connects to us. I presume the reason is to avoid a fingerprint in case the local time is misconfigured. However, the fingerprint still exits when: * The local time goes out-of-sync after timedata is filled up, in which case the adjusted time is *not* adjusted. See comment in `src/timedata.cpp`. (In practise I expect no adjustment to happen after timedata is filled up by one entry more than half its size). * The local time is off by more than 70 minutes. See `DEFAULT_MAX_TIME_ADJUSTMENT`. While there is a warning in this case, the warning might be missed by the node operator. * The adjusted time is poisoned by an attacker. This is only a theoretical concern after commit e457513eb1bad11482f0820feb0f5810324a9d06. Using the adjusted time does help in a the case where the local time is off by a constant less than 70 minutes and the node quickly connects to 5 outbound peers to retrieve the adjusted time. Still, I think using `GetAdjustedTime` here gives a false sense of security. It will be better for node operators to instead set the correct time. ACKs for top commit: naumenkogs: ACK fa1dc9b36a0ccf96cbaf106c060336d91b54579e laanwj: Code review ACK fa1dc9b36a0ccf96cbaf106c060336d91b54579e w0xlt: crACK fa1dc9b Tree-SHA512: 70a0f4ab3500e6ddcde291620e35273018cefd1d9e94b91ad333e360139ed18862718bb1a9854af2bf79990bf74b05d95492f77d0747c7b9bdd276c020116dcb
2021-12-17Merge bitcoin/bitcoin#22283: build: Replace $(AT) with .SILENTW. J. van der Laan
8494dcae0e32716fd7cc7abeacf0a795a1303e6a Replace $(AT) with .SILENCE. (Dmitry Goncharov) Pull request description: This reduces the amount of syntax noise in the makefiles. Setting V=1 still enables verbose logging. The only noticeable difference in behavior is that, unless V=1 is specified, make won't print its own messages like make: Nothing to be done for 'all', make: 'all' is up to date, or touch <file>, if -t is specified. ACKs for top commit: laanwj: Tested ACK 8494dcae0e32716fd7cc7abeacf0a795a1303e6a Tree-SHA512: 66b9111229995aa54a9e87f4571648727d89b8529caec651063cdfe5c00a64341371b648701d192b2334df0614617a00c28eaa56c7f08ee9c00127cada0293ab
2021-12-17Refactor the chacha20 differential fuzz teststratospher
2021-12-17ci: Disable s390x gui tests for nowMarcoFalke
2021-12-17Merge bitcoin/bitcoin#22704: fuzz: Differential fuzzing to compare Bitcoin ↵W. J. van der Laan
Core's and D. J. Bernstein's implementation of ChaCha20 4d0ac72f3ae78e3c6a0d5dc4f7e809583abd0546 [fuzz] Add fuzzing harness to compare both implementations of ChaCha20 (stratospher) 65ef93203cc6a977c8e96f07cb9155f46faf5004 [fuzz] Add D. J. Bernstein's implementation of ChaCha20 (stratospher) Pull request description: This PR compares Bitcoin Core's implementation of ChaCha20 with D. J. Bernstein's in order to find implementation discrepancies if any. ACKs for top commit: laanwj: Code review ACK 4d0ac72f3ae78e3c6a0d5dc4f7e809583abd0546 Tree-SHA512: f826144b4db61b9cbdd7efaaca8fa9cbb899953065bc8a26820a566303b2ab6a17431e7c114635789f0a63fbe3b65cb0bf2ab85baf882803a5ee172af4881544
2021-12-17refactor: Avoid integer overflow in ApplyStats when activating snapshotMarcoFalke
2021-12-17Move AdditionOverflow to util, Add CheckedAdd with unit testsMarcoFalke
2021-12-17Add dev doc to CCoinsStats::m_hash_type and make it constMarcoFalke
2021-12-17style: Remove unused whitespaceMarcoFalke
2021-12-17wallet: Strictly match tx change type to improve privacyMarcoFalke
2021-12-16Let test_runner.py start multiple jobs per timeslotPieter Wuille
2021-12-16contrib: add achow101 to trusted keysAndrew Chow
For maintaining the wallet and psbt things
2021-12-16[doc] CPFP carve out and single-conflict RBF exemptionglozow
2021-12-16[doc] clarify RBF difference from BIP125glozow
It can be argued that BIP125#1 signaling is honored because descendants of signaling transactions are replaceable by RBF. Regardless, since there are multiple details in our RBF policy that are not captured in BIP125, point to our doc instead.
2021-12-16[doc] current rbf policyglozow
2021-12-16refactor: Remove implicit-integer-sign-change suppressions in validation.cppMarcoFalke
2021-12-16test: check that pruneblockchain RPC fails for future block or timestampSebastian Falbesoner
2021-12-16Merge bitcoin/bitcoin#23785: refactor: Move stuff to ChainstateManagerMarcoFalke
fab6d6b2d154893ab422dda87f3535d42c3e06f4 Move pindexBestInvalid to ChainstateManager (MarcoFalke) facd2137eceacb95e1f71c87ddc704d752b37272 Move m_failed_blocks to ChainstateManager (MarcoFalke) fa47b5c100f81c65c15b5a6afaf6c91bc0861264 Move AcceptBlockHeader to ChainstateManager (MarcoFalke) fa3d62cf7b3501a056b34c5458c14d2fe6a55bd7 Move FindForkInGlobalIndex from BlockManager to CChainState (MarcoFalke) Pull request description: Move globals or members of the wrong class to the right class. ACKs for top commit: naumenkogs: ACK fab6d6b2d154893ab422dda87f3535d42c3e06f4 Sjors: ACK fab6d6b2d154893ab422dda87f3535d42c3e06f4 shaavan: ACK fab6d6b2d154893ab422dda87f3535d42c3e06f4 Tree-SHA512: 926cbdfa22838517497bacb79ed5f521f64117c2aacf96a0176f62831b4713314a32abc0213df5ee067edf63e4a4300f752a26006d36e5aab415bb91209a271f
2021-12-16Merge bitcoin/bitcoin#23720: test: Refactor addr_relay.py addr generation, ↵MarcoFalke
increase mocktime 261dddb92460f57d9a1e2409e7292da598787398 test: Combine addr generation helper functions (Martin Zumsande) aeeccd9aa699a913680aa9f5a96eca285e1703e0 test: Fix intermittent issue in p2p_addr_relay.py (Martin Zumsande) Pull request description: Fixes #22449 by increasing the mocktime jump (just as in https://github.com/bitcoin/bitcoin/commit/6168eb06b2044f00f18727b955b672fc91c60bd7), which prevents failures due to rare Poisson timer events, or at least makes them a lot more unlikely. The second commit combines the addr generation helper functions `setup_addr_msg` and `setup_rand_addr_msg`. It also changes the way `addr.time` is filled to random, because before, if too many addresses (>600) were created in a batch, they would stop being relayed because their timestamp would be too far in the future. ACKs for top commit: josibake: reACK https://github.com/bitcoin/bitcoin/pull/23720/commits/261dddb92460f57d9a1e2409e7292da598787398 jnewbery: utACK 261dddb92460f57d9a1e2409e7292da598787398 Tree-SHA512: d0eca887de4bc85092730284cf612193d2c12b0a3d624a2bfa5fef4a5890d3b6375c564333c5927425958e4b6ec86b8854b18b2233c7b6f1691d9ddc397948a9
2021-12-16test: Combine addr generation helper functionsMartin Zumsande
This combines the addr generation helper functions setup_addr_msg and setup_rand_addr_msg. It also changes the way addr.time is filled to random, because before, if too many addresses (>600) were created in a batch, they would stop being relayed because their timestamp would be too far in the future.
2021-12-16test: Fix intermittent issue in p2p_addr_relay.pyMartin Zumsande
by increasing the mocktime bump for m_next_addr_send, which is on a Poisson timer, and explain why. Closes #22449
2021-12-16Merge bitcoin/bitcoin#23777: doc: follow-ups from #23365 (index backwards ↵MarcoFalke
search) e4a8d561edf3cfb326e86c87155fed41a61e7333 doc: add explanations for assert in index and magic numbers in test (Martin Zumsande) Pull request description: This adds two explanations suggested in the review of #23365, that I didn't manage to address before that PR was merged: https://github.com/bitcoin/bitcoin/pull/23365#discussion_r763981042 https://github.com/bitcoin/bitcoin/pull/23365#discussion_r763982639 ACKs for top commit: jnewbery: ACK e4a8d561edf3cfb326e86c87155fed41a61e7333 Tree-SHA512: 0500c8abb37bb3e3694463ad5e74b2e1483615ccf1d7529b0d5faa694652ada17d242dc7fda6d995733766c627d54178a2c8fa21a570cdf13292f64ff5425b56
2021-12-16Merge bitcoin/bitcoin#23750: rpcwallet: mention labels are disabled for ↵MarcoFalke
ranged descriptors 65efbba45d817261f590d043c69a9981e6b637bd rpcwallet: mention labels are deactivated for ranged descriptors (Antoine Poinsot) Pull request description: It was confusing when trying to use it as a blackbox. So mention it so next ones don't have to open the said box :) See #23749 for context ACKs for top commit: Sjors: utACK 65efbba45d817261f590d043c69a9981e6b637bd achow101: ACK 65efbba45d817261f590d043c69a9981e6b637bd Tree-SHA512: d8a3d1f81c16d95855ac2b01e8fd20e83d6dac1721b3da464a9a890e46102992a6882918be87b2a28b929349ee7f1beb1af6c88b22f065fbbb6948275a6d2b8f
2021-12-16Merge bitcoin/bitcoin#23721: wallet, refactor: Move restorewallet() logic to ↵MarcoFalke
the wallet section 62fa61fa4a33ff4d108a65d656ffe2cac4330824 refactor: remove the wallet folder if the restore fails (w0xlt) abbb7eccef3fc1c36f34756458d2792f6661e29f refactor: Move restorewallet() RPC logic to the wallet section (w0xlt) 4807f73f48f4ff1084fcf7aee94e5b14592bfda8 refactor: Implement restorewallet() logic in the wallet section (w0xlt) Pull request description: Currently `restorewallet()` logic is written in the RPC layer and it can´t be reused by GUI. So it moves this to the wallet section and then, GUI can access it. This is necessary to implement the "Restore Wallet" menu item in the GUI (which is already implemented in https://github.com/bitcoin-core/gui/pull/471 ). This commit also simplifies error handling and adds a new behavior: if the restore fails, the invalid wallet folder is removed. ACKs for top commit: achow101: ACK 62fa61fa4a33ff4d108a65d656ffe2cac4330824 shaavan: crACK 62fa61fa4a33ff4d108a65d656ffe2cac4330824 Tree-SHA512: 7ccfbad5943f38616ba0c2dd443c97a4b5bc1f6612dbf5a9e7a0263100aba36671fae929a2e7688442667be394645f44484af137a4802f204a33c4689eb27c39
2021-12-16Merge bitcoin/bitcoin#23782: test: include two more interruptions pointsMarcoFalke
618f4d289053ad7b8802c709f1d55e516b465573 test: re-organized array according to order of logs and included 2 more interruption events (seaona) 71115a5e23be63ec18729eaaba09316c3b2cbfb9 test: include two more interruptions points (seaona) Pull request description: This PR aims to introduce 2 more interruption points in the process of initialization, in order to make the` feature_init `testcase more complete. These are the following: -` Checking all blk files are present` -` init message: Starting network threads` It is a small improvement for increasing the coverage of potential interruptions, and making sure that the node can restart successfully after these interruptions. ACKs for top commit: jamesob: ACK https://github.com/bitcoin/bitcoin/pull/23782/commits/618f4d289053ad7b8802c709f1d55e516b465573, pending CI jarolrod: ACK 618f4d289053ad7b8802c709f1d55e516b465573 Tree-SHA512: 9d709734e298e955709094bb97478ca7f18859874f1ba026f7c9014d87205aea63f6cf2093ebee600eaf82d3245adb11e77fae24a1ae48b69efefd57f3def921
2021-12-16test: Fix intermittent test failure in feature_backwards_compatibilityMarcoFalke
2021-12-16test: previous releases: add v22.0Sjors Provoost
2021-12-16test: bump sandbox argument minimum versionSjors Provoost
The -sandbox argument is not present in the v22.0 release. Changing the minimum version to 229900 ensures it's used when testing the master branch. If the argument is backported, the minimum version can be adjusted to e.g. 220100.
2021-12-16test: previous releases: add v0.21.0Sjors Provoost
2021-12-16test: v0.20.1 backwards compatibilitySjors Provoost
The file checksums were added in an earlier commit. Since the DMG file is never downloaded, we drop that checksum.
2021-12-16test: backwards compatibility: misc fixesSjors Provoost
This cleanup may slightly impact test coverage. Reduce code repition by looping over the list of nodes. Reduce brittleness by refering to nodes by name rather than index. Add helper method nodes_wallet_dir.
2021-12-16test: Remove i686 from test/get_previous_releases.pyMarcoFalke
It is not possible to run the compatibility tests on i686 because the releases v20+ are missing for that arch. It would be possible to self-compile those releases, but then one can also self-compile 0.15-0.19.
2021-12-15refactor: remove the wallet folder if the restore failsw0xlt
2021-12-15refactor: Move restorewallet() RPC logic to the wallet sectionw0xlt
It also simplifies restorewallet() and loadwallet() RPC error handling.
2021-12-15Merge bitcoin/bitcoin#23744: build, qt: Drop support for i686-linux-android hostW. J. van der Laan
66a20a54a2a8446e6257b872a161089e0eed1688 build, qt: Drop support for `i686-linux-android` host (Hennadii Stepanov) Pull request description: There are no reasons to keep support for `i686-linux-android` host, which is actually broken in master (50c502f54abd9eb15c8ddca013f0fdfae3d132a9), and this fact has been unnoticed for months :) https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-986206434: > I'm surprised `i686-linux-android` ABI is still supported. I would love to drop it... https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-991340132 > What is `i686-linux-android`? 32-bit x86 android? is that really a thing? ACKs for top commit: prusnak: utACK 66a20a54a2a8446e6257b872a161089e0eed1688 Tree-SHA512: 211f794de2fc569f0ade2a4da805b8bfd4ce2ab0930c5d427acc4f5d015fcdc4911f02fc64f6401197f7641aed79944a9594be80c817547be3269cdd721cf79b
2021-12-15Merge bitcoin/bitcoin#22674: validation: mempool validation and submission ↵W. J. van der Laan
for packages of 1 child + parents 046e8ff264be6b888c0f9a9d822e32aa74e19b78 [unit test] package submission (glozow) e12fafda2dfbbdf63f125e5af797ecfaa6488f66 [validation] de-duplicate package transactions already in mempool (glozow) 8310d942e046c5a9b6bd90afdcd3af68dd91e081 [packages] add sanity checks for package vs mempool limits (glozow) be3ff151a1f9665720cdf70d072b098a2f9726a9 [validation] full package accept + mempool submission (glozow) 144a29099a865ac1dc3e5291d9529fbcca9c83a4 [policy] require submitted packages to be child-with-unconfirmed-parents (glozow) d59ddc5c3d1c035474d7bc9fa9f8a0eeb1c8498c [packages/doc] define and document package rules (glozow) ba26169f6035c238378a3c9647213328a006fa23 [unit test] context-free package checks (glozow) 9b2fdca7f03911ac40fe0f8a0b5da534bee4554b [packages] add static IsChildWithParents function (glozow) Pull request description: This is 1 chunk of [Package Mempool Accept](https://gist.github.com/glozow/dc4e9d5c5b14ade7cdfac40f43adb18a); it restricts packages to 1 child with its parents, doesn't allow conflicts, and doesn't have CPFP (yet). Future PRs (see #22290) will add RBF and CPFP within packages. ACKs for top commit: laanwj: Code review ACK 046e8ff264be6b888c0f9a9d822e32aa74e19b78 Tree-SHA512: 37dbba37d527712f8efef71ee05c90a8308992615af35f5e0cfeafc60d859cc792737d125aac526e37742fe7683ac8c155ac24af562426213904333c01260c95
2021-12-15Move pindexBestInvalid to ChainstateManagerMarcoFalke
A private member is better than a global.
2021-12-15Move m_failed_blocks to ChainstateManagerMarcoFalke
The member is unrelated to block storage (BlockManager). It is related to validation. Fix the confusion by moving it. Can be reviewed with --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space
2021-12-15Move AcceptBlockHeader to ChainstateManagerMarcoFalke
This is needed for the next commit.
2021-12-15Move FindForkInGlobalIndex from BlockManager to CChainStateMarcoFalke
The helper was moved in commit b026e318c39f59a06e29f1b25c7f577e01b25ccb, which also mentioned that it could be moved to CChainState. So do that, as the functionality is not block-storage related. This also allows to drop one function argument.
2021-12-15test: re-organized array according to order of logs and included 2 more ↵seaona
interruption events
2021-12-15Merge bitcoin/bitcoin#23769: Disallow copies of CChainMarcoFalke
faf2614f60efe972b47b6fa00cfbc22d04ea7239 style: Use 4 spaces for indendation, not 5 (MarcoFalke) fada66fc2c716fc148104b6180da12efc5d05e41 Disallow copies of CChain (MarcoFalke) Pull request description: Creating a copy of the chain is not a valid use case in normal operation. Also, it massively degrades performance. However, it seems to be a mistake that no one looks out for during review: * https://github.com/bitcoin/bitcoin/pull/22677#discussion_r760400537 Fix this by disallowing it. ACKs for top commit: jamesob: ACK faf2614f60efe972b47b6fa00cfbc22d04ea7239 ([`jamesob/ackr/23769.1.MarcoFalke.disallow_copies_of_cchai`](https://github.com/jamesob/bitcoin/tree/ackr/23769.1.MarcoFalke.disallow_copies_of_cchai)) glozow: utACK faf2614f60efe972b47b6fa00cfbc22d04ea7239, nice. prusnak: utACK faf2614 Tree-SHA512: 27b908c78842e4700e118adb876c09c3d1ec04662310e983309e2cd6fa8ad38c9359ff45f36a804359b9f117e351c4739e651b3e6754c14e6c6fcd7ae5e68342
2021-12-15Remove unnecessary cast in CKey::SignSchnorrPieter Wuille
2021-12-15Remove --disable-openssl-tests for libsecp256k1 configurePieter Wuille