aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-26ci: use codespell 2.2.6fanquake
2024-03-26doc: fix some typoscrazeteam
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-26doc: Fix typosRoboSchmied
Fix three typos.
2024-03-26CalculateFeerateDiagramsForRBF: update misleading description of old diagram ↵Greg Sanders
contents
2024-03-26Merge bitcoin/bitcoin#29695: guix: build GCC with ↵fanquake
--enable-standard-branch-protection 7850c5fe20a034438e00f6c12ce51efc6af3a1aa guix: build GCC with --enable-standard-branch-protection (fanquake) Pull request description: This is one change extracted from #24123 (which now produces fully BTI & PAC enabled bins), which will mean that everything in depends, for Guix builds, is compiled using `-mbranch-protection=standard`. Turning this on by default, is similar to what we already do with `--enable-default-ssp`, `--enable-default-pie` etc. See: https://gcc.gnu.org/install/specific.html#aarch64-x-x > To enable Branch Target Identification Mechanism and Return Address Signing by default at configure time use the `--enable-standard-branch-protection` option. > This is equivalent to having `-mbranch-protection=standard` during compilation. This can be explicitly disabled during compilation by passing the `-mbranch-protection=none` option which turns off all types of branch protections. ACKs for top commit: TheCharlatan: ACK 7850c5fe20a034438e00f6c12ce51efc6af3a1aa Tree-SHA512: 18f898da27021bab502e708ea5fa9b325352f8f6e23d9488a2a0feda87e0af2ac0e4f87b3af9ad6a9a37bbfc99ab0285de4f0bdc174dcd38163d92c122e958e2
2024-03-26CompareFeerateDiagram: short-circuit comparison when detected as incomparableGreg Sanders
2024-03-26remove erroneous CompareFeerateDiagram comment about slopeGreg Sanders
2024-03-26unit test: clarify unstated assumption for calc_feerate_diagram_rbf chunkingGreg Sanders
2024-03-26s/effected/affected/Greg Sanders
2024-03-26CalculateFeerateDiagramsForRBF: remove size tie-breaking from chunking conflictsGreg Sanders
2024-03-26fuzz: Add more invariant checks for package_rbfGreg Sanders
2024-03-26fuzz: finer grained ImprovesFeerateDiagram check on error resultGreg Sanders
2024-03-26unit test: improve ImprovesFeerateDiagram coverage with one less vb caseGreg Sanders
2024-03-26unit test: make calc_feerate_diagram_rbf less brittleGreg Sanders
2024-03-26fuzz: add PrioritiseTransaction coverage in diagram checksGreg Sanders
2024-03-26unit test: add coverage showing priority affects diagram check resultsGreg Sanders
2024-03-26unit test: add CheckConflictTopology case for not the only childGreg Sanders
2024-03-26build, macos: Drop unused `osx_volname` targetHennadii Stepanov
2024-03-26unit test: check tx4 conflict error messageGreg Sanders
2024-03-26unit test: have CompareFeerateDiagram tested with diagrams both waysGreg Sanders
2024-03-26ImprovesFeerateDiagram: Spelling fix and removal of unused diagram vectorsGreg Sanders
2024-03-26doc: fix comment about non-existing CompareFeeFracGreg Sanders
2024-03-26test: Refactor subtree exclusion in lint testsBrandon Odiwuor
2024-03-26depends: switch to building libqrencode with CMakefanquake
2024-03-26guix: make cmake-minimal a global requirementfanquake
Needed for switching to building miniupnpc with CMake.
2024-03-26Merge bitcoin/bitcoin#29722: 28950 followupsglozow
7b29119d79efbc8c4148f350cc86531fde8b7251 use const ref for client_maxfeerate (Greg Sanders) f10fd07320da302e8d038213c85e2b16e77d5dc2 scripted-diff: Rename max_sane_feerate to client_maxfeerate (Greg Sanders) Pull request description: Follow-ups to https://github.com/bitcoin/bitcoin/pull/28950 ACKs for top commit: glozow: utACK 7b29119d79efbc8c4148f350cc86531fde8b7251 stickies-v: ACK 7b29119d79efbc8c4148f350cc86531fde8b7251 Tree-SHA512: b9e13509c6e9d7c08aa9d4e759f9707004c1c7b8f3e521fe2ec0037160b87c7fb02528966b9f26eaca6291621df9300e84b5aec66dbc2e97d13bf2f3cd7f979c
2024-03-26Merge bitcoin/bitcoin#29242: Mempool util: Add RBF diagram checks for single ↵glozow
chunks against clusters of size 2 72959867784098137a50c34f86deca8235eef4f8 Unit tests for CalculateFeerateDiagramsForRBF (Greg Sanders) b767e6bd47cb0fb8f7aea3fb10c597e59a35bf74 test: unit test for ImprovesFeerateDiagram (Greg Sanders) 7e89b659e1ddd0c04fa2bddba9706b5d1a1daec3 Add fuzz test for FeeFrac (Greg Sanders) 4d6528a3d6bf3821c216c68f99170e2faab5d63c fuzz: fuzz diagram creation and comparison (Greg Sanders) e9c5aeb11d641b8cae373452339760809625021d test: Add tests for CompareFeerateDiagram and CheckConflictTopology (Greg Sanders) 588a98dccc5dbb6e331f28d83a4a10a13d70eb31 fuzz: Add fuzz target for ImprovesFeerateDiagram (Greg Sanders) 2079b80854e2595f6f696e7c13a56c7f2a7da9f4 Implement ImprovesFeerateDiagram (Greg Sanders) 66d966dcfaad3638f84654e710f403cb0a0a2ac7 Add FeeFrac unit tests (Greg Sanders) ce8e22542ed0b4fa5794d3203207146418d59473 Add FeeFrac utils (Greg Sanders) Pull request description: This is a smaller piece of https://github.com/bitcoin/bitcoin/pull/28984 broken off for easier review. Up to date explanation of diagram checks are here: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553 This infrastructure has two near term applications prior to cluster mempool: 1) Limited Package RBF(https://github.com/bitcoin/bitcoin/pull/28984): We want to allow package RBF only when we know it improves the mempool. This narrowly scoped functionality allows use with v3-like topologies, and will be expanded at some point post-cluster mempool when diagram checks can be done efficiently against bounded cluster sizes. 2) Replacement for single tx RBF(in a cluster size of up to two) against conflicts of up to cluster size two. `ImprovesFeerateDiagram` interface will have to change for this use-case, which is a future direction to solve certain pins and improve mempool incentive compatibility: https://delvingbitcoin.org/t/ephemeral-anchors-and-mev/383#diagram-checks-fix-this-3 And longer-term, this would be the proposed way we would compute incentive compatibility for all conflicts, post-cluster mempool. ACKs for top commit: sipa: utACK 72959867784098137a50c34f86deca8235eef4f8 glozow: code review ACK 72959867784098137a50c34f86deca8235eef4f8 murchandamus: utACK 72959867784098137a50c34f86deca8235eef4f8 ismaelsadeeq: Re-ACK https://github.com/bitcoin/bitcoin/commit/72959867784098137a50c34f86deca8235eef4f8 willcl-ark: crACK 72959867784098137a50c34f86deca8235eef4f8 sdaftuar: ACK 72959867784098137a50c34f86deca8235eef4f8 Tree-SHA512: 79593e5a087801c06f06cc8b73aa3e7b96ab938d3b90f5d229c4e4bfca887a77b447605c49aa5eb7ddcead85706c534ac5eb6146ae2396af678f4beaaa5bea8e
2024-03-25Merge bitcoin/bitcoin#28928: test: add coverage for bech32m in ↵Ava Chow
`wallet_keypool_topup` a8bfc3dea1d986b458202bf5e49cf1944392d676 test: add coverage for bech32m in `wallet_keypool_topup` (brunoerg) Pull request description: 0dcac51049cdd924a50d62629757effc8d542046 added coverage for all keypool addresses types in `wallet_keypool_topup` (4y ago). Now we have bech23m, so this PR adds it. ACKs for top commit: achow101: ACK a8bfc3dea1d986b458202bf5e49cf1944392d676 marcofleon: ACK a8bfc3dea1d986b458202bf5e49cf1944392d676. Definitely a more straightfoward addition to the test. Reviewed the code, built the PR branch and ran all functional tests without issues. furszy: utACK a8bfc3dea Tree-SHA512: aa830b723a7a54b23744f9fb3cf5214452c4ffc8e3bbe0e8bd980bdf902e61c3dd2fd57361b82c5c0c5224aa0774158daf34b6b2188edda0a971f82111976051
2024-03-25Merge bitcoin/bitcoin#29706: depends: set two CMake options globallyfanquake
76045bb9d6808931cd0f2933203b5b611e032ec8 depends: always set CMAKE_POSITION_INDEPENDENT_CODE=ON (fanquake) d04623678c70ff58a20fb5c35d33cb8f483f1efb depends: always set CMAKE_INSTALL_LIBDIR=lib/ (fanquake) Pull request description: Set `CMAKE_INSTALL_LIBDIR=lib/` and `CMAKE_POSITION_INDEPENDENT_CODE=ON` globally in depends, rather than per-package. `CMAKE_INSTALL_LIBDIR=lib/` is needed to override the annoying [`GNUInstallDirs`](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html) `lib` vs `lib64` behaviour, and we always want PIC code. The PIC commit is the counterpart to the same Autotools change in #29488. I'm PRing these commits as I have a CMake branch building on top, and want to avoid adding the same workarounds to every package we are going to touch, but these can go in separately as the build should be tested for existing packages (i.e multiprocess). ACKs for top commit: hebasto: re-ACK 76045bb9d6808931cd0f2933203b5b611e032ec8. theuni: utACK 76045bb9d6808931cd0f2933203b5b611e032ec8. Both changes make sense to me, and both can be overridden if needed, though I can't imagine we'd need to. Tree-SHA512: 655a0b6b7ee5a5820f52e8e919ef03fc216d29f13f3904f72b64ce57436510e073c903039488d5740535c56e1f6221267229238c5231de5f8467d238fd562578
2024-03-25Merge bitcoin/bitcoin#29718: Correct '-dbcache' to '-prune'fanquake
416b9d9427c017fe7eb2975ca76f6a89ba24ab58 correct '-dbcache' to '-prune' (Ben Westgate) Pull request description: This looks like a typo, '-prune' is doubled not the '-dbcache' by my understanding. ACKs for top commit: Sjors: ACK 416b9d9427c017fe7eb2975ca76f6a89ba24ab58 fjahr: ACK 416b9d9427c017fe7eb2975ca76f6a89ba24ab58 Tree-SHA512: d954a8976f6e43e0af9bc2ba89fec1a1ccc90483cc005af3d2810379bd6bea7dbd87766af71c2a45b3d751a3f682f0f67a4525ec350bf6163bc4bb88fab6e4cb
2024-03-25use const ref for client_maxfeerateGreg Sanders
2024-03-25scripted-diff: Rename max_sane_feerate to client_maxfeerateGreg Sanders
-BEGIN VERIFY SCRIPT- git grep -l 'max_sane_feerate' | xargs sed -i 's/max_sane_feerate/client_maxfeerate/g' -END VERIFY SCRIPT-
2024-03-25Merge bitcoin/bitcoin#29660: lint: Fix COMMIT_RANGE issuesfanquake
fa1146d01b148dd60fcada36a3b37ed37532ce2b lint: Fix COMMIT_RANGE issues (MarcoFalke) Pull request description: `COMMIT_RANGE` has problems on forks or local branches: * When `LOCAL_BRANCH` is set, it assumes the presence of a `master` branch, and that the `master` branch is up-to-date. Both of which may be false. (See also discussion in https://github.com/bitcoin/bitcoin/pull/29274#discussion_r1504226422) * When `COMMIT_RANGE` isn't set in `lint-git-commit-check.py`, and `--prev-commits` isn't set either, it has the same (broken) assumptions. Fix all issues by simply assuming a merge commit exists. This allows to drop `LOCAL_BRANCH`. It also allows to drop `SKIP_EMPTY_NOT_A_PR`, because scripts will already skip an empty range. Finally, it allows to drop `--prev-commits n`, because one can simply say `COMMIT_RANGE='HEAD~n..HEAD'` to achieve the same. ACKs for top commit: Sjors: tACK fa1146d01b148dd60fcada36a3b37ed37532ce2b Tree-SHA512: f1477a38267fd4fdb8d396211a5d6bed5f418798c7edaba43487957aaf726cd45244ccf15187b3dd896d398fa1df3fe0a37323e49cf44d60a2018786ed41e5ba
2024-03-25Merge bitcoin/bitcoin#29696: tidy: remove todo, set minimum CMake to 3.22fanquake
11ee058ef5794de5f1b8e89d62bfa69c64693fff tidy: remove C compiler check (fanquake) c3a4ea19715de292517b932d0a3b24ace72e9919 tidy: set CMAKE_CXX_STANDARD to 20 (fanquake) 5b690aeb1583e207b083e83b8d882f7d1c2d2683 tidy: remove terminfo TODO (fanquake) 24410e560ac9add5dbae424964bc96554e6fd1a9 tidy: set minimum CMake to 3.22 (fanquake) Pull request description: See https://github.com/hebasto/bitcoin/pull/123 for the minimum version bump. ACKs for top commit: hebasto: re-ACK 11ee058ef5794de5f1b8e89d62bfa69c64693fff. Tree-SHA512: 94a508ea24bf17919961bbdbc2e9d17658858e179c3b2017d5932557af32530d9d6aab197453aa5444f5478c417129c5a8e39522ff82bafac0d5a6966c7246d3
2024-03-25depends: always set CMAKE_POSITION_INDEPENDENT_CODE=ONfanquake
Rather than potentially having to set this per-package, set it globally, as this should always be what we want. Without doing this, changes in later commits will have to add this per-package. Similar to https://github.com/bitcoin/bitcoin/pull/29488, which is the Autotools equivalent.
2024-03-25depends: always set CMAKE_INSTALL_LIBDIR=lib/fanquake
Rather than setting this per package, set it globally, as this is always what we want. Without doing this, later commit will have to add the same doc + change to more packages.
2024-03-25Merge bitcoin/bitcoin#29488: depends: always configure with `--with-pic`fanquake
e037c4fe0914d8fa9149ce7532c0d70f738e79e9 depends: always configure with --with-pic (fanquake) Pull request description: We currently do this sporadically. Not only amongst packages, but across OS's, i.e sometimes it's done for BSDs/Android, and sometimes not. Configure with `--with-pic` globally instead. I think this generally makes more sense, and should not have any downsides. See related discussion in https://github.com/bitcoin/bitcoin/pull/28846#discussion_r1399123100. ACKs for top commit: hebasto: ACK e037c4fe0914d8fa9149ce7532c0d70f738e79e9. Tree-SHA512: efc743ff92f9f99f3ac16514e98363ad395c6f956cd4be7e785b5c573685baf7fcd68c51d6a705ee8761fc676eb045b7e61676595be0eb0f70f34e99174cddc0
2024-03-25Merge bitcoin/bitcoin#29636: test: #29007 follow upsfanquake
9a44a20fb790f3be5d5d5d8f5d0f48aac633b2a4 init: clarify -test error (0xb10c) 3047c3e3a99112c38f118034daa672db70fa4a60 addrman: drop /*deterministic=*/ comment (0xb10c) 89b84ea91ae40876a52879c509c63d0bacbfaade test: check that addrman seeding is successful (0xb10c) Pull request description: A few, small follow-ups to #29007. See commit messages for details. ACKs for top commit: maflcko: lgtm ACK 9a44a20fb790f3be5d5d5d8f5d0f48aac633b2a4 stratospher: tested ACK 9a44a20. mzumsande: Code Review ACK 9a44a20fb790f3be5d5d5d8f5d0f48aac633b2a4 Tree-SHA512: 987245e035da08fa7fe541a1dc3b7c2d90f703a6f9813875048d286335c63ffa5201db702a3f368087c00fa02c3fdafb06cf54dc7a92922749a94588b1500e98
2024-03-25correct '-dbcache' to '-prune'Ben Westgate
2024-03-23init: clarify -test error0xb10c
See https://github.com/bitcoin/bitcoin/pull/29007#discussion_r1469388717
2024-03-23addrman: drop /*deterministic=*/ comment0xb10c
Just having deterministic is enough. See https://github.com/bitcoin/bitcoin/pull/29007#discussion_r1488241966
2024-03-23test: check that addrman seeding is successful0xb10c
The addpeeraddress calls can fail due to collisions. As we are using a deteministic addrman, they won't fail with the current bucket/position calculation. However, if the calculation is changed, they might collide and fail silently causing tests using `seed_addrman()` to fail. Assert that the addpeeraddress calls are successful.
2024-03-22Merge bitcoin/bitcoin#29672: validation: Make translations of fatal errors ↵Ava Chow
consistent 824f47294a309ba8e58ba8d1da0af15d8d828f43 node: Use log levels in noui_ThreadSafeMessageBox (TheCharlatan) ddc7872c08b7ddf9b1e83abdb97c21303f4a9172 node: Make translations of fatal errors consistent (TheCharlatan) Pull request description: The extra `bilingual_str` argument of the fatal error notifications and `node::AbortNode()` is often unused and when used usually contains the same string as the message argument. It also seems to be confusing, since it is not consistently used for errors requiring user action. For example some assumeutxo fatal errors require the user to do something, but are not translated. So simplify the fatal error and abort node interfaces by only passing a translated string. This slightly changes the fatal errors displayed to the user. ACKs for top commit: stickies-v: re-ACK 824f47294a309ba8e58ba8d1da0af15d8d828f43 maflcko: ACK 824f47294a309ba8e58ba8d1da0af15d8d828f43 🔎 achow101: ACK 824f47294a309ba8e58ba8d1da0af15d8d828f43 hebasto: re-ACK 824f47294a309ba8e58ba8d1da0af15d8d828f43. Tree-SHA512: 2868ee7b045fe7f3ac582ce5039141b398480b7627734976201dafaaef7544b8461635a7292fee4a7f32ff1bfc26f9bd4d0c292dca424ba42fb7fc4483d7ce8d
2024-03-22Merge bitcoin/bitcoin#28998: rpc: "addpeeraddress tried" return error on failureAva Chow
99954f914f031c80aa53daa367fc049c4c55bdf3 test: fix test to ensure hidden RPC is present in detailed help (stratospher) 0d01f6f0c6e53c9765f84e0616ab46b83923a6ad test: remove unused mocktime in test_addpeeraddress (0xb10c) 6205466512d4b94d1e507a77ab2151425790d29f rpc: "addpeeraddress tried" return error on failure (0xb10c) Pull request description: When trying to add an address to the IP address manager tried table, it's first added to the new table and then moved to the tried table. Previously, adding a conflicting address to the address manager's tried table with test-only `addpeeraddress tried=true` RPC would return `{ "success": true }`. However, the address would not be added to the tried table, but would remain in the new table. This caused, e.g., issue #28964. This is fixed by new returning `{ "success": false, "error": "..." }` for failed tried table additions. Since the address remaining in the new table can't be removed (the address manager interface does not support removing addresses at the moment and adding this seems to be a bigger effort), an error message is returned. This indicates to a user why the RPC failed and allows accounting for the extra address in the new table. This is done in the functional test for the `getrawaddrman` RPC. Fixes #28964 ACKs for top commit: achow101: ACK 99954f914f031c80aa53daa367fc049c4c55bdf3 stratospher: reACK 99954f9. 🚀 brunoerg: utACK 99954f914f031c80aa53daa367fc049c4c55bdf3 Tree-SHA512: 2f1299410c0582ebc2071271ba789a8abed905f9a510821f77afbcf2a555ec31397578ea55cbcd162fb828be27afedd3246c7b13ad8883f2f745bb8e04364a76
2024-03-22Merge bitcoin/bitcoin#29704: test: make p2p_handshake robust against ↵fanquake
timeoffset warnings 032a59748295859845b2a9181ceb1c4ae70bae5c test: make p2p_handshake robust against timeoffset warnings (stickies-v) Pull request description: The new `p2p_handshake` test requires that limited nodes are not peered with when the node's system time exceeds ~ 24h of the node's chaintip timestamp, as per [`PeerManagerImpl::GetDesirableServiceFlags`](https://github.com/bitcoin/bitcoin/blob/2ffaa927023f5dc2a7b8d6cfeb4f4810e573b18c/src/net_processing.cpp#L1717). By patching this test to modify the timestamp of the chaintip as opposed to mocking the node's system time, we make it resilient to future commits where the node raises a warning if it detects its system time is too much out of sync with its outbound peers. Resolves a silent merge conflict in https://github.com/bitcoin/bitcoin/pull/29623, that is changing the warning behaviour when significant time differences with outbound peers are detected, [failing the test as it's currently in master](https://cirrus-ci.com/task/6553996884705280?logs=ci#L4666). Considerations/alternatives I've thought of: - could add `self.setup_clean_chain = True` to `self.set_test_params()`, to avoid creating a new tip with a (much) older date, but it doesn't seem to matter? - could avoid using `setmocktime` altogether and instead use [`create_block`](https://github.com/bitcoin/bitcoin/blob/2ffaa927023f5dc2a7b8d6cfeb4f4810e573b18c/test/functional/test_framework/blocktools.py#L68) instead, but that seems like it'll be a lot more verbose and I don't think it's worth it? Big thanks to theStack for his time in discussing this with me offline. ACKs for top commit: maflcko: lgtm ACK 032a59748295859845b2a9181ceb1c4ae70bae5c theStack: ACK 032a59748295859845b2a9181ceb1c4ae70bae5c brunoerg: crACK 032a59748295859845b2a9181ceb1c4ae70bae5c BrandonOdiwuor: Code Review ACK 032a59748295859845b2a9181ceb1c4ae70bae5c Tree-SHA512: 407564754a100bc9252f5737182de2e111993944ec9a0463a4a43195ce98cd1119de982c8fe5f7531ddb56603043812bf7bf2163a780d30b6df03a072c3308c3
2024-03-22Merge bitcoin/bitcoin#29647: Avoid divide-by-zero in header sync logs when ↵Ava Chow
NodeClock is behind fa4d98b3c8e63f20c6f366fc9382039ba52614a4 Avoid divide-by-zero in header sync logs when NodeClock is behind (MarcoFalke) fa58550317c633c411009c1cc8fb692e3baf97e8 refactor: Modernize header sync logs (MarcoFalke) Pull request description: The log may be confusing, when the NodeClock is behind the current header tip. Fix it, by assuming the NodeClock is never behind the current header tip. ACKs for top commit: sipa: utACK fa4d98b3c8e63f20c6f366fc9382039ba52614a4 sr-gi: tACK [fa4d98b](https://github.com/bitcoin/bitcoin/pull/29647/commits/fa4d98b3c8e63f20c6f366fc9382039ba52614a4) achow101: ACK fa4d98b3c8e63f20c6f366fc9382039ba52614a4 tdb3: ACK fa4d98b3c8e63f20c6f366fc9382039ba52614a4 Tree-SHA512: 3c5aee4030af387695918c5238012c972ebf850b52e956b5f74590cd7fd4eff0b3e593d411e3eb2a0bb12294af8dc6fbe320f90e4c261399b65a404ff3c3cbd9
2024-03-22test: make p2p_handshake robust against timeoffset warningsstickies-v
The test requires that limited nodes are not peered with when the node's system time exceeds ~ 24h of the node's chaintip timestamp, as per PeerManagerImpl::GetDesirableServiceFlags. By patching this test to modify the timestamp of the chaintip as opposed to mocking the node's system time, we make it resilient to future commits where the node raises a warning if it detects its system time is too much out of sync with its outbound peers. See https://github.com/bitcoin/bitcoin/pull/29623
2024-03-22tidy: remove C compiler checkfanquake
Also requires disabling FFI.
2024-03-22tidy: set CMAKE_CXX_STANDARD to 20fanquake
2024-03-22tidy: remove terminfo TODOfanquake
At the same time, also disable searching for CURL, LibEdit, LibXml2, ZLIB and zstd none of which we use.