{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":1181927,"defaultBranch":"master","name":"bitcoin","ownerLogin":"bitcoin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-12-19T15:16:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/528860?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713369113.0","currentOid":""},"activityList":{"items":[{"before":"fdb41e08c4a4fb2743f8ca7c4b8dac52a460e864","after":"63d0b930f821132badd804822a46232a5f98bbef","ref":"refs/heads/master","pushedAt":"2024-05-06T16:24:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29845: rpc: return warnings as an array instead of just a single one\n\n42fb5311b19582361409d65c6fddeadbee14bb97 rpc: return warnings as an array instead of just a single one (stickies-v)\n\nPull request description:\n\n The RPC documentation for `getblockchaininfo`, `getmininginfo` and `getnetworkinfo` states that \"warnings\" returns \"any network and blockchain warnings\". In practice, only a single warning (i.e. the latest one that is set) is returned, the other ones are ignored.\n\n Fix that by returning all warnings as an array.\n\n As a side benefit, clean up the GetWarnings() logic.\n\n Since this PR changes the RPC result schema, I've added release notes. Users can temporarily revert to the old results by using `-deprecatedrpc=warnings`, until it's removed in a future version.\n\n ---\n\n Some historical context from git log:\n\n - when `GetWarnings` was introduced in 401926283a200994ecd7df8eae8ced8e0b067c46, it was used in the `getinfo` RPC, where only a [single error/warning was returned](https://github.com/bitcoin/bitcoin/commit/401926283a200994ecd7df8eae8ced8e0b067c46#diff-7442c48d42cd5455a79915a0f00cce5e13359db46437a32b812876edb0a5ccddR250) (similar to how it is now).\n - later on, \"warnings\" RPC response fields were introduced, e.g. in ef2a3de25c882396e1776b554878d2784b6b7391, with the description [stating](https://github.com/bitcoin/bitcoin/commit/ef2a3de25c882396e1776b554878d2784b6b7391#diff-1021bd3c74415ad9719bd764ad6ca35af5dfb33b1cd863c0be49bdf52518af54R411) that it returned \"any network warnings\" but in practice still only a single warning was returned\n\nACKs for top commit:\n achow101:\n re-ACK 42fb5311b19582361409d65c6fddeadbee14bb97\n tdb3:\n Re ACK for 42fb5311b19582361409d65c6fddeadbee14bb97\n TheCharlatan:\n ACK 42fb5311b19582361409d65c6fddeadbee14bb97\n maflcko:\n ACK 42fb5311b19582361409d65c6fddeadbee14bb97 🔺\n\nTree-SHA512: 4225ed8979cd5f030dec785a80e7452a041ad5703445da79d2906ada983ed0bbe7b15889d663d75aae4a77d92e302c93e93eca185c7bd47c9cce29e12f752bd3","shortMessageHtmlLink":"Merge #29845: rpc: return warnings as an array instead of just a sing…"}},{"before":"00ac1b963d08f2779d2197edcdb1e76392993378","after":"fdb41e08c4a4fb2743f8ca7c4b8dac52a460e864","ref":"refs/heads/master","pushedAt":"2024-05-06T13:02:40.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29773: build, bench, msvc: Add missing benchmarks\n\n31a15f0aff79d2b34a9640909b9e6fb39a647b60 bench: Disable WalletCreate* benchmarks when building with MSVC (Hennadii Stepanov)\n23dc0c19acd54cad1bed2f14df024b6b533f2330 msvc, bench: Add missing source files to bench_bitcoin project (Hennadii Stepanov)\n\nPull request description:\n\n On the master branch, the `bench_bitcoin.vcxproj` MSVC project misses wallet-specific source files.\n\n This PR fixes this issue.\n\n Benchmark run on Windows:\n ```\n > src\\bench_bitcoin.exe -filter=\"CoinSelection|BnBExhaustion|Wallet.*\"\n\n | ns/op | op/s | err% | total | benchmark\n |--------------------:|--------------------:|--------:|----------:|:----------\n | 398,800.00 | 2,507.52 | 1.5% | 0.01 | `BnBExhaustion`\n | 584,450.00 | 1,711.01 | 1.5% | 0.01 | `CoinSelection`\n | 86,603,650.00 | 11.55 | 0.4% | 1.91 | `WalletAvailableCoins`\n | 7,604.00 | 131,509.73 | 0.9% | 0.01 | `WalletBalanceClean`\n | 124,028.57 | 8,062.66 | 2.6% | 0.01 | `WalletBalanceDirty`\n | 7,587.12 | 131,802.30 | 1.9% | 0.01 | `WalletBalanceMine`\n | 48.58 | 20,583,872.99 | 0.9% | 0.01 | `WalletBalanceWatch`\n | 2,371,060.00 | 421.75 | 1.3% | 0.13 | `WalletCreateTxUseOnlyPresetInputs`\n | 96,861,760.00 | 10.32 | 0.9% | 5.31 | `WalletCreateTxUsePresetInputsAndCoinSelection`\n | 280.71 | 3,562,424.13 | 1.5% | 0.01 | `WalletIsMineDescriptors`\n | 1,033.47 | 967,618.32 | 0.3% | 0.01 | `WalletIsMineLegacy`\n | 282.36 | 3,541,599.91 | 0.5% | 0.01 | `WalletIsMineMigratedDescriptors`\n | 484,547,300.00 | 2.06 | 1.0% | 2.43 | `WalletLoadingDescriptors`\n | 29,924,300.00 | 33.42 | 0.4% | 0.15 | `WalletLoadingLegacy`\n ```\n\nACKs for top commit:\n maflcko:\n lgtm ACK 31a15f0aff79d2b34a9640909b9e6fb39a647b60\n\nTree-SHA512: 0241af06126edf612489322cdce66ba43792066b5400b1719a8b9d1ec62030e8a9d497e2f01e38290e94c387db59ccf2a458f4b35d3dc8030a1a1413d89eb792","shortMessageHtmlLink":"Merge #29773: build, bench, msvc: Add missing benchmarks"}},{"before":"f7b81c7e1edb1d2d972b8d1e81e40f381d9beb59","after":"00ac1b963d08f2779d2197edcdb1e76392993378","ref":"refs/heads/master","pushedAt":"2024-05-06T01:47:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29960: depends: pass verbose through to cmake based makefiles\n\n7c69baf227252511455bc06e315f6a3c7fc5a398 depends: pass verbose through to cmake based make (Max Edwards)\n\nPull request description:\n\n While testing https://github.com/bitcoin/bitcoin/pull/29708 I was not able to enable verbose output to check which flags were being given to the compiler.\n\n With this PR, running depends with V=1 will enable verbose output from makefiles generated by cmake.\n\n How to test:\n\n ```shell\n make -C depends libnatpmp V=1\n ```\n\nACKs for top commit:\n hebasto:\n ACK 7c69baf227252511455bc06e315f6a3c7fc5a398. Tested using the folowing command:\n fanquake:\n ACK 7c69baf227252511455bc06e315f6a3c7fc5a398\n\nTree-SHA512: 81cd1326e940c5f14cbde96735fd02b03c1150881ed88d1e8dfa9385dfa12284bfa2cdfe097ce5f43a726c1718afb76ae16f71552ab68c207d74fdc1f7bb46ae","shortMessageHtmlLink":"Merge #29960: depends: pass verbose through to cmake based makefiles"}},{"before":"eb0bdbdd753bca97120247b921fd29d606fea6e9","after":"f7b81c7e1edb1d2d972b8d1e81e40f381d9beb59","ref":"refs/heads/master","pushedAt":"2024-05-06T01:34:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30031: msvc: Compile `test\\fuzz\\miniscript.cpp`\n\n9155b733e153e799f09cc7f7e9199ad776b2cbb1 build, msvc: Compile test\\fuzz\\miniscript.cpp (Hennadii Stepanov)\n\nPull request description:\n\n This PR resolves the remained point from the https://github.com/bitcoin/bitcoin/pull/29774#issuecomment-2028808614:\n > What is the issue with the ... miniscript fuzz tests?\n\n From the CI [log](https://github.com/bitcoin/bitcoin/actions/runs/8941546183/job/24562123707?pr=30031#step:29:234):\n ```\n miniscript_script: succeeded against 721 files in 1s.\n Run miniscript_script with args ['D:\\\\a\\\\bitcoin\\\\bitcoin\\\\src\\\\fuzz.exe', WindowsPath('D:/a/_temp/qa-assets/fuzz_seed_corpus/miniscript_script')]\n miniscript_smart: succeeded against 1429 files in 2s.\n Run miniscript_smart with args ['D:\\\\a\\\\bitcoin\\\\bitcoin\\\\src\\\\fuzz.exe', WindowsPath('D:/a/_temp/qa-assets/fuzz_seed_corpus/miniscript_smart')]\n miniscript_stable: succeeded against 1871 files in 2s.\n Run miniscript_stable with args ['D:\\\\a\\\\bitcoin\\\\bitcoin\\\\src\\\\fuzz.exe', WindowsPath('D:/a/_temp/qa-assets/fuzz_seed_corpus/miniscript_stable')]\n miniscript_string: succeeded against 918 files in 3s.\n Run miniscript_string with args ['D:\\\\a\\\\bitcoin\\\\bitcoin\\\\src\\\\fuzz.exe', WindowsPath('D:/a/_temp/qa-assets/fuzz_seed_corpus/miniscript_string')]\n ```\n\nACKs for top commit:\n maflcko:\n ACK 9155b733e153e799f09cc7f7e9199ad776b2cbb1\n TheCharlatan:\n ACK 9155b733e153e799f09cc7f7e9199ad776b2cbb1\n\nTree-SHA512: 967f199aac41733265532518ff7b1d881ba5a7bbde9f827d6a0b6d984c94a65b20d5854ce0ea247158eaa17b21d4c9f7d25c79bac17960788bacd2586112630b","shortMessageHtmlLink":"Merge #30031: msvc: Compile test\\fuzz\\miniscript.cpp"}},{"before":"61d3280c3a36084a6fef17fcedb3de3555294424","after":"eb0bdbdd753bca97120247b921fd29d606fea6e9","ref":"refs/heads/master","pushedAt":"2024-05-04T01:13:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#28657: miniscript: make operator\"\"_mst consteval\n\n63317103c9f2b0635558da814567bb79c17ae851 miniscript: make operator_mst consteval (Pieter Wuille)\n\nPull request description:\n\n It seems modern compilers don't realize that all invocations of operator\"\"_mst can be evaluated at compile time, despite the `constexpr` keyword.\n\n Since C++20, we can force them to evaluate at compile time using `consteval`, turning all the miniscript type constants into actual compile-time constants.\n\n This should give a nice but not very important speedup for miniscript logic, but it's also a way to start testing C++20 features.\n\nACKs for top commit:\n hebasto:\n re-ACK 63317103c9f2b0635558da814567bb79c17ae851.\n theuni:\n utACK 63317103c9f2b0635558da814567bb79c17ae851\n\nTree-SHA512: bdc9f1a6499b8bb3ca04f1a158c31e6876ba97206f95ee5718f50efd58b5b4e6b8867c07f791848430bfaa130b9676d8a68320b763cda9a340c75527acbfcc9e","shortMessageHtmlLink":"Merge #28657: miniscript: make operator\"\"_mst consteval"}},{"before":"bd597c33e3e58cd3c6b22ed42f8f1fd7ff886bb2","after":"61d3280c3a36084a6fef17fcedb3de3555294424","ref":"refs/heads/master","pushedAt":"2024-05-04T01:07:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29907: test: Fix `test/streams_tests.cpp` compilation on SunOS / illumos\n\n976e5d8f7b2bc77cb1443b8bf0f38cb07db70e9b test: Fix `test/streams_tests.cpp` compilation on SunOS / illumos (Hennadii Stepanov)\n\nPull request description:\n\n On systems where `int8_t` is defined as `char`, the `{S,Uns}erialize(Stream&, signed char)` functions become undefined.\n\n This PR resolves the issue by testing `{S,Uns}erialize(Stream&, int8_t)` instead.\n\n No behavior change on systems where `int8_t` is defined as `signed char`, which is the case for most other systems.\n\n Fixes https://github.com/bitcoin/bitcoin/issues/29884.\n\n An alternative approach is mentioned in https://github.com/bitcoin/bitcoin/issues/29884#issuecomment-2058434577 as well.\n\nACKs for top commit:\n maflcko:\n lgtm ACK 976e5d8f7b2bc77cb1443b8bf0f38cb07db70e9b\n theuni:\n ACK 976e5d8f7b2bc77cb1443b8bf0f38cb07db70e9b. Nice to have the serialization concept actually tested :)\n\nTree-SHA512: 1033863e584fa8e99a281b236fa01fc919f610a024bcec792116762e28c1c16ee481bd01325c3a0ca9dd9d753176aa63bd9ac7e08a9bbce772db2949d06f6e61","shortMessageHtmlLink":"Merge #29907: test: Fix test/streams_tests.cpp compilation on SunOS…"}},{"before":"f5b6f621fff7540ca97974b26a66ca1cc6db018c","after":"bd597c33e3e58cd3c6b22ed42f8f1fd7ff886bb2","ref":"refs/heads/master","pushedAt":"2024-05-04T00:47:31.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#25972: build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set\n\nf0e22be69a15248c42964d57f44ce8c37a36081d build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set (fanquake)\nb088062e687d95deff28b0715fd4859449b56584 ci: remove -Wdocumentation from -Werror in multiprocess CI (fanquake)\nbec6a88fbcff0bd974e820cefd2be2d00b6f6c56 ci: remove -Warray-bounds from -Werror for win64 (fanquake)\n7469ac7032e26fe805c5d15ecded2d44253bc9c1 ci: disable -Werror=maybe-uninitialized for Windows builds (fanquake)\n\nPull request description:\n\n Now that `CXXFLAGS` are [back in user control](https://github.com/bitcoin/bitcoin/pull/24391), I don't think there's a\n reason to no-longer use our warning flags when `CXXFLAGS` has been\n overriden (this includes, by default, when building from depends).\n\n Anyone can suppress warnings from third-party code by\n passing the relevant `-Wno-` options in `CXXFLAGS`.\n\n Closes: #18092.\n\nACKs for top commit:\n maflcko:\n utACK f0e22be69a15248c42964d57f44ce8c37a36081d 🍡\n hebasto:\n ACK f0e22be69a15248c42964d57f44ce8c37a36081d.\n theuni:\n ACK f0e22be69a15248c42964d57f44ce8c37a36081d. It'll be nice to have this fixed.\n TheCharlatan:\n ACK f0e22be69a15248c42964d57f44ce8c37a36081d\n\nTree-SHA512: dcef4bd4a57bab6f586ca015fad725e7a38bf24b7a08808a74d8c8ca47cf68c5fca7b04ed38649a047c6929fb708e2c97f2000fc46d5a8d25da49951c5bb0f66","shortMessageHtmlLink":"Merge #25972: build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is…"}},{"before":"f9486de6a96b624982a2d45b895bfe4e865063d1","after":"f5b6f621fff7540ca97974b26a66ca1cc6db018c","ref":"refs/heads/master","pushedAt":"2024-05-03T16:37:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30024: doc: replace remaining \"520\" magic nums with MAX_SCRIPT_ELEMENT_SIZE\n\nffc674595cb19b2fdc5705b355bdd3e7f724b860 Replace remaining \"520\" magic numbers with MAX_SCRIPT_ELEMENT_SIZE (Jon Atack)\n\nPull request description:\n\n Noticed these while reviewing BIPs yesterday.\n\n It would be clearer and more future-proof to refer to their constant name.\n\nACKs for top commit:\n instagibbs:\n ACK ffc674595cb19b2fdc5705b355bdd3e7f724b860\n sipa:\n ACK ffc674595cb19b2fdc5705b355bdd3e7f724b860\n achow101:\n ACK ffc674595cb19b2fdc5705b355bdd3e7f724b860\n glozow:\n ACK ffc674595cb19b2fdc5705b355bdd3e7f724b860, agree it's clearer for these comments to refer to the greppable name of the limit rather than the number\n\nTree-SHA512: 462afc1c64543877ac58cb3acdb01d42c6d08abfb362802f29f3482d75401a2a8adadbc2facd222a9a9fefcaab6854865ea400f50ad60bec17831d29f7798afe","shortMessageHtmlLink":"Merge #30024: doc: replace remaining \"520\" magic nums with MAX_SCRIPT…"}},{"before":"70e4d6ff1d269abbda9dafae659e3da3ea17867a","after":"f9486de6a96b624982a2d45b895bfe4e865063d1","ref":"refs/heads/master","pushedAt":"2024-05-03T16:36:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30029: test: remove duplicate `WITNESS_SCALE_FACTOR` constant definition\n\naf3c18169a075222fe0795ab24b8b20ad5e30ae4 [test]: remove duplicate WITNESS_SCALE_FACTOR (ismaelsadeeq)\n\nPull request description:\n\n Notice this while working on #29523\n\n - `blocktools.py` and `messages.py` both define `WITNESS_SCALE_FACTOR` constant\n\n https://github.com/bitcoin/bitcoin/blob/99d7538cdb2a0ab7a7a2116cd5f33b95fc52b00e/test/functional/test_framework/blocktools.py#L48\n\n https://github.com/bitcoin/bitcoin/blob/99d7538cdb2a0ab7a7a2116cd5f33b95fc52b00e/test/functional/test_framework/messages.py#L68\n - This PR deletes the one in `blocktools.py` and update the tests to only use `WITNESS_SCALE_FACTOR` from `messages.py`\n\nACKs for top commit:\n maflcko:\n ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n sipa:\n ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n achow101:\n ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n glozow:\n lgtm ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n brunoerg:\n ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n willcl-ark:\n ACK af3c18169a075222fe0795ab24b8b20ad5e30ae4\n\nTree-SHA512: 6bd8060c9eea10e03940acee2aa4cd08e4e0afb6d26be3e6300ad405fd0af5b373a00e994eb39515a2dcafa1625562bcd57945049a84b9c9dcc7ea60c24f0911","shortMessageHtmlLink":"Merge #30029: test: remove duplicate WITNESS_SCALE_FACTOR constant …"}},{"before":"99d7538cdb2a0ab7a7a2116cd5f33b95fc52b00e","after":"70e4d6ff1d269abbda9dafae659e3da3ea17867a","ref":"refs/heads/master","pushedAt":"2024-05-03T13:55:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"ryanofsky","name":"Ryan Ofsky","path":"/ryanofsky","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7133040?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30026: refactor, test: Always initialize pointer\n\nbd2de7ac591d7704b79304089ad1fb57e085da8b refactor, test: Always initialize pointer (Hennadii Stepanov)\n\nPull request description:\n\n This change fixes MSVC warning [C4703](https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4703).\n\n All `DisableSpecificWarnings` dropped from `test_bitcoin.vcxproj` as all remained are inherited from `common.init.vcxproj`.\n\n Required to simplify warning suppression porting to the CMake-based build system.\n\nACKs for top commit:\n maflcko:\n utACK bd2de7ac591d7704b79304089ad1fb57e085da8b\n sipsorcery:\n utACK bd2de7ac591d7704b79304089ad1fb57e085da8b.\n ryanofsky:\n Code review ACK bd2de7ac591d7704b79304089ad1fb57e085da8b\n\nTree-SHA512: 006db041d3c3697a77d9df14de86cf7c8a10804b45789df01268b2236cf6452e77dc57e89f5d5a6bc26d4b5cd483f0722d6035649c8a523b57954bb1fc810d0c","shortMessageHtmlLink":"Merge #30026: refactor, test: Always initialize pointer"}},{"before":"5127844cabbe50236abc8d55015692515c49315e","after":"99d7538cdb2a0ab7a7a2116cd5f33b95fc52b00e","ref":"refs/heads/master","pushedAt":"2024-05-03T07:31:13.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30012: opportunistic 1p1c followups\n\n7f6fb73c82fdff2afe5edefcc335ba6707d5627d [refactor] use reference in for loop through iters (glozow)\n6119f76ef72c1adc55c1a384c20f8ba9e1a01206 Process every MempoolAcceptResult regardless of PackageValidationResult (glozow)\n2b482dc1f3fb248ccbe7eeb8c9c07d4bf1295a70 [refactor] have ProcessPackageResult take a PackageToValidate (glozow)\nc2ada0530719e044bb498e0d78907a208214a71e [doc] remove redundant PackageToValidate comment (glozow)\n9a762efc7a118c44556fa9ad404f6b54103bad41 [txpackages] use std::lexicographical_compare instead of sorting hex strings (glozow)\n8496f69e1c2d1961db2604829cb6a289eb8dd3d6 [refactor] make MempoolAcceptResult::m_replaced_transactions non-optional (glozow)\n\nPull request description:\n\n Followups from #28970:\n - https://github.com/bitcoin/bitcoin/pull/28970#discussion_r1568781077\n - https://github.com/bitcoin/bitcoin/pull/28970#discussion_r1585554972\n - https://github.com/bitcoin/bitcoin/pull/28970#discussion_r1581019326\n - https://github.com/bitcoin/bitcoin/pull/28970#discussion_r1581036209\n - https://github.com/bitcoin/bitcoin/pull/28970#discussion_r1586258730\n\nACKs for top commit:\n instagibbs:\n reACK https://github.com/bitcoin/bitcoin/pull/30012/commits/7f6fb73c82fdff2afe5edefcc335ba6707d5627d\n\nTree-SHA512: 9d8393d5f2fedbc6ebce582ff2a8ed074a02dd8e7dbf562c14d48b439fdc1ee6c3203b3609366d3c883d44655cc1a5c83a75ca56e490d25c1a34d95a0622d458","shortMessageHtmlLink":"Merge #30012: opportunistic 1p1c followups"}},{"before":"62ef33a718c9891d37d7c757968876033c4f794d","after":"5127844cabbe50236abc8d55015692515c49315e","ref":"refs/heads/master","pushedAt":"2024-05-03T02:47:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30017: refactor, fuzz: Make 64-bit shift explicit\n\nb50d127a7710d790c2ba4a08f01b832c2a0b1203 refactor: Make 64-bit shift explicit (Hennadii Stepanov)\n\nPull request description:\n\n This PR fixes MSVC warning [C4334](https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4334) in the fuzzing code. Similar to https://github.com/bitcoin/bitcoin/pull/26252.\n\n All `DisableSpecificWarnings` dropped from `fuzz.vcxproj` as all remained are inherited from `common.init.vcxproj`.\n\n Required to simplify warning suppression porting to the CMake-based build system.\n\nACKs for top commit:\n maflcko:\n utACK b50d127a7710d790c2ba4a08f01b832c2a0b1203\n sipsorcery:\n utACK b50d127a7710d790c2ba4a08f01b832c2a0b1203\n\nTree-SHA512: 18f6082b4234506ad2f9df54e577031b97cdf9f7ef64cad4162f275660716ab73587a97d3af0f778dfd48d2751d8676b5d3381d0aa837fcc60a09704473a9209","shortMessageHtmlLink":"Merge #30017: refactor, fuzz: Make 64-bit shift explicit"}},{"before":"81174d8a9b8060b35341d88d3b54c08d9f2bb079","after":"62ef33a718c9891d37d7c757968876033c4f794d","ref":"refs/heads/master","pushedAt":"2024-05-02T20:45:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29617: test: Validate UTXO snapshot with coin height > base height & amount > MAX_MONEY supply\n\nec1f1abfefa281e62bb876aa1c4738d576ef9a47 test:Validate UTXO snapshot with coin_height > base_height & amount > money_supply (jrakibi)\n\nPull request description:\n\n ### Ensure snapshot loading fails for coins exceeding base height\n\n **Objective**: This test verifies that snapshot loading is correctly rejected for coins with a height greater than the base height.\n\n **Update**:\n - Added `test_invalid_snapshot_wrong_coin_code` to `feature_assumeutxo.py`.\n - The test artificially sets a coin's height above 299 in a snapshot and checks for load failure.\n - Edit: Added a test case for outputs whose amounts surpass the MAX_MONEY supply limit.\n\n This implementation addresses the request for enhancing `assumeutxo` testing as outlined in issue #28648\n\n ---\n\n **Edit: This is an explanation on how I arrive at content values: b\"\\x84\\x58\" and b\"\\xCA\\xD2\\x8F\\x5A\"**\n\n You can use this tool to decode the utxo snapshot https://github.com/jrakibi/utxo-live\n Here’s an overview of how it’s done:\n The serialization format for a UTXO in the snapshot is as follows:\n 1. Transaction ID (txid) - 32 bytes\n 2. Output Index (outnum)- 4 bytes\n 3. VARINT (code) - A varible-length integer encoding the height and whether the transaction is a coinbase. The format of this VARINT is (height << 1) | coinbase_flag.\n 4. VARINT (amount_v) - A variable-length integer that represents a compressed format of the output amount (in satoshis).\n\n For the test cases mentioned:\n * **`b\"\\x84\\x58\"`** - This value corresponds to a VARINT representing the height and coinbase flag. Once we decode this code, we can extract the height and coinbase using `height = code_decoded >> 1` and `coinbase = code_decoded & 0x01`. In our case, with code_decoded = 728, it results in `height = 364` and `coinbase = 0`.\n * **`b\"\\xCA\\xD2\\x8F\\x5A\"`** - This byte sequence represents a compressed amount value. The decompression function takes this value and translates it into a full amount in satoshis. In our case, the decompression of this amount translates to a number larger than the maximum allowed value of coins (21 million BTC)\n\nACKs for top commit:\n fjahr:\n re-ACK ec1f1abfefa281e62bb876aa1c4738d576ef9a47\n maflcko:\n ACK ec1f1abfefa281e62bb876aa1c4738d576ef9a4 👑\n achow101:\n ACK ec1f1abfefa281e62bb876aa1c4738d576ef9a47\n\nTree-SHA512: 42b36fd1d76e9bc45861028acbb776bd2710c5c8bff2f75c751ed505995fbc1d4bc698df3be24a99f20bcf6a534615d2d9678fb3394162b88133eaec88ca2120","shortMessageHtmlLink":"Merge #29617: test: Validate UTXO snapshot with coin height > base he…"}},{"before":"3d28725134df09768780249dc1d974b9cdcc83f1","after":"81174d8a9b8060b35341d88d3b54c08d9f2bb079","ref":"refs/heads/master","pushedAt":"2024-05-02T20:33:29.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29961: refactor: remove remaining unused code from cpp-subprocess\n\n8b52e7f628304e83b0e36fd97e617de0f71c5a62 update comments in cpp-subprocess (check_output references) (Sebastian Falbesoner)\n97f159776ec06f767df1d4990aa7d0859140f52f remove unused method `Popen::kill` from cpp-subprocess (Sebastian Falbesoner)\n908c51fe4afeba0af500c6275027b1afa1b3bd19 remove commented out code in cpp-subprocess (Sebastian Falbesoner)\nff79adbe056220202f7a56d67f788c38fc49ef9f remove unused templates from cpp-subprocess (Sebastian Falbesoner)\n\nPull request description:\n\n This PR removes remaining code that is unused within the cpp-subprocess module (templates and commented out code). Happy to add more removals if anyone finds more unused parts. Note that there are some API functions of the `Popen` class that we don't use, e.g. `wait()`, `pid()`, `poll()`, `kill()`, but they sound IMHO common enough to be useful in the future, so not sure how deep we should go there.\n\nACKs for top commit:\n fjahr:\n Code review ACK 8b52e7f628304e83b0e36fd97e617de0f71c5a62\n achow101:\n ACK 8b52e7f628304e83b0e36fd97e617de0f71c5a62\n hebasto:\n ACK 8b52e7f628304e83b0e36fd97e617de0f71c5a62.\n\nTree-SHA512: 14c1cd2216185d941923f06fdc7acbeed66cd87e2691d9a352f7309b3e07fe4877b580f598a2e4106f9c48395ed6de00a0bfb5d3c3af9c4624d1956a0f543e99","shortMessageHtmlLink":"Merge #29961: refactor: remove remaining unused code from cpp-subprocess"}},{"before":"9d1a286f20b8a602ffe72928bcd79be09fdbf9d0","after":"3d28725134df09768780249dc1d974b9cdcc83f1","ref":"refs/heads/master","pushedAt":"2024-05-02T13:09:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29968: refactor: Avoid unused-variable warning in init.cpp\n\nfa9abf968840745e428a86a9545aaa6c923415e2 refactor: Avoid unused-variable warning in init.cpp (MarcoFalke)\n\nPull request description:\n\n Fixes https://github.com/bitcoin/bitcoin/pull/27679#discussion_r1580606777\n\nACKs for top commit:\n TheCharlatan:\n ACK fa9abf968840745e428a86a9545aaa6c923415e2\n\nTree-SHA512: dcf56d7aa68578ba611a2dc591de036ab1d08f7f4dfb35d325ecf7241d8e17abc0af7005b96c44da9777adc36961b4da7fdde282a1ab0e0a6f229c8108923101","shortMessageHtmlLink":"Merge #29968: refactor: Avoid unused-variable warning in init.cpp"}},{"before":"59b773f42a6730104e13904fb521e52023a997b5","after":"9d1a286f20b8a602ffe72928bcd79be09fdbf9d0","ref":"refs/heads/master","pushedAt":"2024-05-02T07:27:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29934: doc: add LLVM instruction for macOS < 13\n\n22574046c90c0662f3aa9b1baea074aff54f92a9 doc: add LLVM instruction for macOS < 13 (Sjors Provoost)\n\nPull request description:\n\n #29208 bumped clang to 14, which users of old macOS versions need to install manually. This PR adds instructions.\n\n Xcode 14.3.1 ships clang 14.0.3 (14.0.0 is broken, see #29918):\n https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)\n\n The system requirements for that is macOS Ventura 13.0 or later: https://developer.apple.com/documentation/xcode-release-notes/xcode-14_3_1-release-notes#\n\n Homebrew itself officially supports macOS 12 or later, but _may_ still work on macOS 11: https://docs.brew.sh/Installation\n\n Fwiw macOS 11 Big Sur last got an update in September 2023, so Apple has not _entirely_ written it off: https://en.wikipedia.org/wiki/MacOS_Big_Sur\n\nACKs for top commit:\n maflcko:\n utACK 22574046c90c0662f3aa9b1baea074aff54f92a9\n TheCharlatan:\n ACK 22574046c90c0662f3aa9b1baea074aff54f92a9\n\nTree-SHA512: 5b4bcc71966d1da84bc4da32da89e0dea9f519f37d9e14e169140c92af044b33f404f01ae7d10f53ab5345dd51ac404c161389efef93da5cacbfd52a43881695","shortMessageHtmlLink":"Merge #29934: doc: add LLVM instruction for macOS < 13"}},{"before":"1cc3aa4d21e3e4ff7a651bc71fec062ec5a9eb09","after":"59b773f42a6730104e13904fb521e52023a997b5","ref":"refs/heads/master","pushedAt":"2024-05-02T03:45:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30010: lint: [doc] Clarify Windows line endings (CR LF) not to be used\n\nfa9be2f79520fff9cfe2ed35ace05cb322680af3 lint: [doc] Clarify Windows line endings (CR LF) not to be used (MarcoFalke)\n\nPull request description:\n\n It has been this case since the linter was introduced years ago. Given a misunderstanding (https://github.com/bitcoin/bitcoin/pull/28074#issuecomment-2088028856), clarify the docs.\n\nACKs for top commit:\n brunoerg:\n ACK fa9be2f79520fff9cfe2ed35ace05cb322680af3\n\nTree-SHA512: be714db9df533e0962ed84102ffdb72717902949b930d58cf5a79cba36297f6b2b1f75e65a2c1f46bcb8e2f4ad5d025f3d15210f468a5ec9631a580b74f923ea","shortMessageHtmlLink":"Merge #30010: lint: [doc] Clarify Windows line endings (CR LF) not to…"}},{"before":"d73245abc70346a0e8805d50a1f395706084294c","after":"1cc3aa4d21e3e4ff7a651bc71fec062ec5a9eb09","ref":"refs/heads/master","pushedAt":"2024-05-02T03:21:30.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29707: depends: build miniupnpc with CMake\n\n5195baa60087ee366290887ad982fc491e14c111 depends: fix miniupnpc snprintf usage on Windows (fanquake)\n3c2d440f1497f60bb444326f51383df244dcdfe9 depends: switch miniupnpc to CMake (Cory Fields)\nf5618c79d9e7af05c2987044dc2da03697f8bb89 depends: add upstream CMake patch to miniupnpc (fanquake)\n6866b571ab96f03ca0775424e45458c5731f230f depends: miniupnpc 2.2.7 (fanquake)\n\nPull request description:\n\n This picks up one of the changes from #29232, which is a switch to building miniupnpc with CMake. It includes an update to the most recent version of miniupnpc (2.2.7), which means we can drop one patch from that commit, and includes a new patch for a change I've upstreamed https://github.com/miniupnp/miniupnp/pull/721, as well as some suggestions from the previous PR.\n\nACKs for top commit:\n theuni:\n ACK 5195baa60087ee366290887ad982fc491e14c111.\n TheCharlatan:\n utACK 5195baa60087ee366290887ad982fc491e14c111\n\nTree-SHA512: 5b27e132cd5eed285e9be34c8b96893417d92a1ae55c99345c9a89e1c1c5e40e4bc840bc061b879758b2b11fcb520cd98c3da985c1e153f2e5380cf63efe2d69","shortMessageHtmlLink":"Merge #29707: depends: build miniupnpc with CMake"}},{"before":"842f7fdf786fcbbdf3df40522945813404f8a397","after":"d73245abc70346a0e8805d50a1f395706084294c","ref":"refs/heads/master","pushedAt":"2024-05-01T18:44:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29120: test: Add test case for spending bare multisig\n\ne504b1fa1fa4d014b329dea81bfdf1aa55db238f test: Add test case for spending bare multisig (Brandon Odiwuor)\n\nPull request description:\n\n Fixes https://github.com/bitcoin/bitcoin/issues/29113\n\nACKs for top commit:\n ajtowns:\n ACK e504b1fa1fa4d014b329dea81bfdf1aa55db238f ; LGTM and just checking the 1-of-3 case seems fine\n maflcko:\n utACK e504b1fa1fa4d014b329dea81bfdf1aa55db238f\n achow101:\n ACK e504b1fa1fa4d014b329dea81bfdf1aa55db238f\n willcl-ark:\n reACK e504b1fa1fa4d014b329dea81bfdf1aa55db238f\n\nTree-SHA512: 641a12599efa34e1a3eb65b125318df326628fef3e6886410ea9e63a044664fad7bcad46d1d6f41ddc59630746b9963cedb569c2682b5940b32b9225883da8f2","shortMessageHtmlLink":"Merge #29120: test: Add test case for spending bare multisig"}},{"before":"4df2d0c4ce7697648ec724d2057a60bd8d7d032f","after":"842f7fdf786fcbbdf3df40522945813404f8a397","ref":"refs/heads/master","pushedAt":"2024-05-01T00:17:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29645: doc: update release-process.md\n\n1ea8674316f2dce0005f6094b6ee111b045dd770 [doc] update release-process.md and backports section of CONTRIBUTING (glozow)\n\nPull request description:\n\n While doing various release process things for the first time, I noticed some of our docs are outdated and/or confusing.\n\nACKs for top commit:\n achow101:\n ACK 1ea8674316f2dce0005f6094b6ee111b045dd770\n\nTree-SHA512: 4ad10d4ce2c33fe15cb02599353107bb72ecb867aefc6c120cfd5cdea42aa8fa3783f9e0218c2f3815f030e0694cc8fb24011ce88358a0206cb07416a256a962","shortMessageHtmlLink":"Merge #29645: doc: update release-process.md"}},{"before":"063072b86abcb2dff4db6861b63b5b1d19e93c62","after":"4df2d0c4ce7697648ec724d2057a60bd8d7d032f","ref":"refs/heads/master","pushedAt":"2024-05-01T00:14:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29983: msvc: Compile `test\\fuzz\\bitdeque.cpp`\n\n774359b4a96d2724dc70f900cb71e084a77164da build, msvc: Compile `test\\fuzz\\bitdeque.cpp` (Hennadii Stepanov)\n85f50a46c50e7e56b5ee2d7258021939cd80c550 refactor: Fix \"error C2248: cannot access private member\" on MSVC (Hennadii Stepanov)\n\nPull request description:\n\n This PR resolves one point from the https://github.com/bitcoin/bitcoin/pull/29774#issuecomment-2028808614:\n > What is the issue with the bitdeque... ?\n\nACKs for top commit:\n maflcko:\n lgtm ACK 774359b4a96d2724dc70f900cb71e084a77164da\n sipa:\n utACK 774359b4a96d2724dc70f900cb71e084a77164da\n achow101:\n ACK 774359b4a96d2724dc70f900cb71e084a77164da\n dergoegge:\n utACK 774359b4a96d2724dc70f900cb71e084a77164da\n\nTree-SHA512: dba5c0217b915468af08475795437a10d8e8dedfadeb319f36d9b1bf54a91a8b2c61470a6047565855276c2bc8589c7776dc19237610b65b57cc841a303de8b3","shortMessageHtmlLink":"Merge #29983: msvc: Compile test\\fuzz\\bitdeque.cpp"}},{"before":"326e563360671c568534ff72f45dec6b607e4b36","after":"063072b86abcb2dff4db6861b63b5b1d19e93c62","ref":"refs/heads/master","pushedAt":"2024-04-30T23:01:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29813: doc: i2p: improve `-i2pacceptincoming` mention\n\n2179e2c3209a41c1419f1f5ed6270a0dad68b50d doc: i2p: improve `-i2pacceptincoming` mention (brunoerg)\n\nPull request description:\n\n In i2p documentation, it says that \"the first time Bitcoin Core connects to the I2P router,\n it automatically generates a persistent I2P address and its corresponding private key by\n default _**or if `-i2pacceptincoming=1` is set**_\". This is weird, because `-i2pacceptincoming=1`\n by itself does not have any effect. Moreover, `-i2pacceptincoming` is 1 by default anyway.\n\nACKs for top commit:\n laanwj:\n This documentation change is correct and makes the documentation slightly shorter, thus easier to read. ACK 2179e2c3209a41c1419f1f5ed6270a0dad68b50d\n davidgumberg:\n ACK https://github.com/bitcoin/bitcoin/pull/29813/commits/2179e2c3209a41c1419f1f5ed6270a0dad68b50d\n achow101:\n ACK 2179e2c3209a41c1419f1f5ed6270a0dad68b50d\n byaye:\n ACK 2179e2c3209a41c1419f1f5ed6270a0dad68b50d\n\nTree-SHA512: 18a6a627343fb0aa824029d99df8a232153ba288ce94ec8c5da25693885237381fba505ea1e71c756b2a611243a302d319ca7ae03b526020cd6588710fc2ac17","shortMessageHtmlLink":"Merge #29813: doc: i2p: improve -i2pacceptincoming mention"}},{"before":"0c3a3c9394e608c4beb92722ad034648af81dee7","after":"326e563360671c568534ff72f45dec6b607e4b36","ref":"refs/heads/master","pushedAt":"2024-04-30T23:00:25.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#28016: p2p: gives seednode priority over dnsseed if both are provided\n\n82f41d76f1c6ad38290917dad5499ffbe6b3974d Added seednode prioritization message to help output (tdb3)\n3120a4678ab2a71a381e847688f44068749cfa97 Gives seednode priority over dnsseed if both are provided (Sergi Delgado Segura)\n\nPull request description:\n\n This is a follow-up of #27577\n\n If both `seednode` and `dnsseed` are provided, the node will start a race between them in order to fetch data to feed the `addrman`.\n\n This PR gives priority to `seednode` over `dnsseed` so if some nodes are provided as seeds, they can be tried before defaulting to the `dnsseeds`\n\nACKs for top commit:\n davidgumberg:\n untested reACK https://github.com/bitcoin/bitcoin/commit/82f41d76f1c6ad38290917dad5499ffbe6b3974d\n itornaza:\n tested re-ACK 82f41d76f1c6ad38290917dad5499ffbe6b3974d\n achow101:\n ACK 82f41d76f1c6ad38290917dad5499ffbe6b3974d\n cbergqvist:\n ACK 82f41d76f1c6ad38290917dad5499ffbe6b3974d\n\nTree-SHA512: 4e39e10a7449af6cd9b8f9f6878f846b94bca11baf89ff2d4fbcd4f28293978a6ed71a3a86cea36d49eca891314c834e32af93f37a09c2cc698a878f84d31c62","shortMessageHtmlLink":"Merge #28016: p2p: gives seednode priority over dnsseed if both are p…"}},{"before":"d813ba1bc4b4da3ad1f3812b61ff125d1d664625","after":"0c3a3c9394e608c4beb92722ad034648af81dee7","ref":"refs/heads/master","pushedAt":"2024-04-30T22:49:41.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29623: Simplify network-adjusted time warning logic\n\nc6be144c4b774a03a8bcab5a165768cf81e9b06b Remove timedata (stickies-v)\n92e72b5d0d49aa395e626c238bc28aba8e4c3d44 [net processing] Move IgnoresIncomingTxs to PeerManagerInfo (dergoegge)\n7d9c3ec622d73a98d07ab3cee78751718982a5bc [net processing] Introduce PeerManagerInfo (dergoegge)\nee178dfcc1175e0af8163216c9c024f4bfc97965 Add TimeOffsets helper class (stickies-v)\n55361a15d1aa6984051441bce88112000688fb43 [net processing] Use std::chrono for type-safe time offsets (stickies-v)\n038fd979effb54ee76ce1b7cf078e920c652326a [net processing] Move nTimeOffset to net_processing (dergoegge)\n\nPull request description:\n\n [An earlier approach](https://github.com/bitcoin/bitcoin/commits/1d226ae1f984c5c808f5c24c431b959cdefa692e/) in #28956 involved simplifying and refactoring the network-adjusted time calculation logic, but this was eventually [left out](https://github.com/bitcoin/bitcoin/pull/28956#issuecomment-1904214370) of the PR to make it easier for reviewers to focus on consensus logic changes.\n\n Since network-adjusted time is now only used for warning/informational purposes, cleaning up the logic (building on @dergoegge's approach in #28956) should be quite straightforward and uncontroversial. The main changes are:\n\n - Previously, we would only calculate the time offset from the first 199 outbound peers that we connected to. This limitation is now removed, and we have a proper rolling calculation. I've reduced the set to 50 outbound peers, which seems plenty.\n - Previously, we would automatically use the network-adjusted time if the difference was < 70 mins, and warn the user if the difference was larger than that. Since there is no longer any automated time adjustment, I've changed the warning threshold to ~~20~~ 10 minutes (which is an arbitrary number).\n - Previously, a warning would only be raised once, and then never again until node restart. This behaviour is now updated to 1) warn to log for every new outbound peer for as long as we appear out of sync, 2) have the RPC warning toggled on/off whenever we go in/out of sync, and 3) have the GUI warn whenever we are out of sync (again), but limited to 1 messagebox per 60 minutes\n - no more globals\n - remove the `-maxtimeadjustment` startup arg\n\n Closes #4521\n\nACKs for top commit:\n sr-gi:\n Re-ACK [c6be144](https://github.com/bitcoin/bitcoin/pull/29623/commits/c6be144c4b774a03a8bcab5a165768cf81e9b06b)\n achow101:\n reACK c6be144c4b774a03a8bcab5a165768cf81e9b06b\n dergoegge:\n utACK c6be144c4b774a03a8bcab5a165768cf81e9b06b\n\nTree-SHA512: 1063d639542e882186cdcea67d225ad1f97847f44253621a8c4b36c4d777e8f5cb0efe86bc279f01e819d33056ae4364c3300cc7400c087fb16c3f39b3e16b96","shortMessageHtmlLink":"Merge #29623: Simplify network-adjusted time warning logic"}},{"before":"2d3056751bb7d742a802a30503f07dbeb07310ee","after":"d813ba1bc4b4da3ad1f3812b61ff125d1d664625","ref":"refs/heads/master","pushedAt":"2024-04-30T22:41:03.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#28970: p2p: opportunistically accept 1-parent-1-child packages\n\ne518a8bf8abf3d7b83c9013f56d0dca18ae04d6f [functional test] opportunistic 1p1c package submission (glozow)\n87c5c524d63c833cf490c7f2f73d72695ad480df [p2p] opportunistically accept 1-parent-1-child packages (glozow)\n6c51e1d7d021ed6523107a6db87a865aaa8fc4c9 [p2p] add separate rejections cache for reconsiderable txns (glozow)\n410ebd6efaf20fe4715c9b825103b74db69f35ac [fuzz] break out parent functions and add GetChildrenFrom* coverage (glozow)\nd095316c1c23e9460dfbd9fdbaf292063adcd080 [unit test] TxOrphanage::GetChildrenFrom* (glozow)\n2f51cd680fb4323f1c792dae37d4c4e0e0e35804 [txorphanage] add method to get all orphans spending a tx (glozow)\n092c978a42e8f4a02291b994713505ba8aac8b28 [txpackages] add canonical way to get hash of package (glozow)\nc3c1e15831c463df7968b028a77e787da7e6256d [doc] restore comment about why we check if ptx HasWitness before caching rejected txid (glozow)\n6f4da19cc3b1b7cd23cb4be95a6bb9acb79eb3bf guard against MempoolAcceptResult::m_replaced_transactions (glozow)\n\nPull request description:\n\n This enables 1p1c packages to propagate in the \"happy case\" (i.e. not reliable if there are adversaries) and contains a lot of package relay-related code. See https://github.com/bitcoin/bitcoin/issues/27463 for overall package relay tracking.\n\n Rationale: This is \"non-robust 1-parent-1-child package relay\" which is immediately useful.\n - Relaying 1-parent-1-child CPFP when mempool min feerate is high would be a subset of all package relay use cases, but a pretty significant improvement over what we have today, where such transactions don't propagate at all. [1]\n - Today, a miner can run this with a normal/small maxmempool to get revenue from 1p1c CPFP'd transactions without losing out on the ones with parents below mempool minimum feerate.\n - The majority of this code is useful for building more featureful/robust package relay e.g. see the code in #27742.\n\n The first 2 commits are followups from #29619:\n - https://github.com/bitcoin/bitcoin/pull/29619#discussion_r1523094034\n - https://github.com/bitcoin/bitcoin/pull/29619#discussion_r1519819257\n\n Q: What makes this short of a more full package relay feature?\n\n (1) it only supports packages in which 1 of the parents needs to be CPFP'd by the child. That includes 1-parent-1-child packages and situations in which the other parents already pay for themselves (and are thus in mempool already when the package is submitted). More general package relay is a future improvement that requires more engineering in mempool and validation - see #27463.\n\n (2) We rely on having kept the child in orphanage, and don't make any attempt to protect it while we wait to receive the parent. If we are experiencing a lot of orphanage churn (e.g. an adversary is purposefully sending us a lot of transactions with missing inputs), we will fail to submit packages. This limitation has been around for 12+ years, see #27742 which adds a token bucket scheme for protecting package-related orphans at a limited rate per peer.\n\n (3) Our orphan-handling logic is somewhat opportunistic; we don't make much effort to resolve an orphan beyond asking the child's sender for the parents. This means we may miss packages if the first sender fails to give us the parent (intentionally or unintentionally). To make this more robust, we need receiver-side logic to retry orphan resolution with multiple peers. This is also an existing problem which has a proposed solution in #28031.\n\n [1]: see this writeup and its links https://github.com/bitcoin/bips/blob/02ec218c7857ef60914e9a3d383b68caf987f70b/bip-0331.mediawiki#propagate-high-feerate-transactions\n\nACKs for top commit:\n sr-gi:\n tACK e518a8bf8abf3d7b83c9013f56d0dca18ae04d6f\n instagibbs:\n reACK e518a8bf8abf3d7b83c9013f56d0dca18ae04d6f\n theStack:\n Code-review ACK e518a8bf8abf3d7b83c9013f56d0dca18ae04d6f :package:\n dergoegge:\n light Code review ACK e518a8bf8abf3d7b83c9013f56d0dca18ae04d6f\n achow101:\n ACK e518a8bf8abf3d7b83c9013f56d0dca18ae04d6f\n\nTree-SHA512: 632579fbe7160cb763bbec6d82ca0dab484d5dbbc7aea90c187c0b9833b8d7c1e5d13b8587379edd3a3b4a02a5a1809020369e9cd09a4ebaf729921f65c15943","shortMessageHtmlLink":"Merge #28970: p2p: opportunistically accept 1-parent-1-child packages"}},{"before":"15f696b454047f5dafc3c95e36fcd677c1901de9","after":"2d3056751bb7d742a802a30503f07dbeb07310ee","ref":"refs/heads/master","pushedAt":"2024-04-30T16:19:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29906: Disable util::Result copying and assignment\n\n6a8b2befeab25e4e92d8e947a23e78014695e06c refactor: Avoid copying util::Result values (Ryan Ofsky)\n834f65e82405bbed336f98996bc8cef366bbed0f refactor: Drop util::Result operator= (Ryan Ofsky)\n\nPull request description:\n\n This PR just contains the first two commits of #25665.\n\n It disables copying of `util::Result` objects because unnecessary copies are inefficient and not possible after #25665, which makes `util::Result` object move-only.\n\n It disables the assignment operator and replaces it with an `Update()` method, because #25665 adds more information to `util::Result` objects (warning and error messages and failure values) and having an assignment operator that overwrites data instead of merging it would make it easy to accidentally erase existing information while trying to assign new information.\n\nACKs for top commit:\n stickies-v:\n re-ACK 6a8b2befeab25e4e92d8e947a23e78014695e06c\n achow101:\n ACK 6a8b2befeab25e4e92d8e947a23e78014695e06c\n furszy:\n re-ACK https://github.com/bitcoin/bitcoin/commit/6a8b2befeab25e4e92d8e947a23e78014695e06c\n\nTree-SHA512: 3f21af9031d50d6c68cca69133de03080f69b1ddcf8b140bdeb762069f14645209b2586037236d15b6ebd8973af0fbefd7e83144aeb7b84078a4cb4df812f984","shortMessageHtmlLink":"Merge #29906: Disable util::Result copying and assignment"}},{"before":"36e660fc234b8c327e56144bd331b1181dc94940","after":"15f696b454047f5dafc3c95e36fcd677c1901de9","ref":"refs/heads/master","pushedAt":"2024-04-30T09:01:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"glozow","name":"Gloria Zhao","path":"/glozow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25183001?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29986: test: Don't rely on incentive incompatible replacement in mempool_accept_v3.py\n\nf8a141c2dae2471a7ce7248e28a0bbeb8a291acd test: Don't rely on incentive incompatible replacement in mempool_accept_v3.py (Suhas Daftuar)\n\nPull request description:\n\n In the sibling eviction test, we're currently testing that a transaction with ancestor feerate (and mining score) of 179 s/b is able to replace a transaction with ancestor feerate (and mining score) of 300 s/b, due to a shortcoming in our current RBF rules.\n\n In preparation for fixing our RBF rules to not allow such replacements, fix the test by bumping the fee of the replacement to be a bit higher.\n\nACKs for top commit:\n glozow:\n ACK f8a141c2dae2471a7ce7248e28a0bbeb8a291acd\n instagibbs:\n ACK f8a141c2dae2471a7ce7248e28a0bbeb8a291acd\n\nTree-SHA512: 0babe60be2f41634301e434fedb7abc765daaa37c2c280acb569eaf02a793369d81401ab02b8ae1689bda4872f475bd4c2f48cae4a54a61ece20db0a014e23ac","shortMessageHtmlLink":"Merge #29986: test: Don't rely on incentive incompatible replacement …"}},{"before":"ad42d63519839b5751db0f294b5de7cfdc332e61","after":"36e660fc234b8c327e56144bd331b1181dc94940","ref":"refs/heads/master","pushedAt":"2024-04-30T08:52:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"glozow","name":"Gloria Zhao","path":"/glozow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25183001?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29990: fuzz: don't allow adding duplicate transactions to the mempool\n\ncc15c5bfd1eb3903de246c124702a7c66c687008 fuzz: don't allow adding duplicate transactions to the mempool (Suhas Daftuar)\n\nPull request description:\n\n Filter duplicate transaction ids from being added to the mempool in the `partially_downloaded_block` fuzz target.\n\n I think a prerequisite for calling `CTxMemPool::addUnchecked` should be that the underlying txid doesn't already exist in the mempool (otherwise `addUnchecked` would need a way to return failure, which we don't currently have).\n\nACKs for top commit:\n glozow:\n utACK cc15c5bfd1eb3903de246c124702a7c66c687008 makes sense to me\n maflcko:\n lgtm ACK cc15c5bfd1eb3903de246c124702a7c66c687008\n brunoerg:\n ACK cc15c5bfd1eb3903de246c124702a7c66c687008\n dergoegge:\n utACK cc15c5bfd1eb3903de246c124702a7c66c687008\n\nTree-SHA512: 85f84ce405aba584e6d00391515f0a86c5648ce8b2da69036e50a6c1f6833d050d09b1972cc5ffbe7c4edb3e5f7f965ef34bd839deeddac27a889cc8d2e53b8f","shortMessageHtmlLink":"Merge #29990: fuzz: don't allow adding duplicate transactions to the …"}},{"before":"19865a8350a8181ab658bef48976a728bae6a8bd","after":"ad42d63519839b5751db0f294b5de7cfdc332e61","ref":"refs/heads/master","pushedAt":"2024-04-30T06:19:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29985: depends: Fix build of Qt for 32-bit platforms with recent glibc\n\n2e266f33b5d2be5c233c2c692481f75785714fa1 depends: Fix build of Qt for 32-bit platforms (laanwj)\n\nPull request description:\n\n The 32 to 64-bit `time_t` transition causes a build failure in the built-in zlib about conflicting `_TIME_BITS` and `_FILE_OFFSET_BITS`.\n\n Note that zlib doesn't use `time_t` at all, so it is a false alarm.\n\n Take the following patch from upstream zlib:\n https://github.com/madler/zlib/commit/a566e156b3fa07b566ddbf6801b517a9dba04fa3.patch\n\n Closes #29980.\n\nACKs for top commit:\n hebasto:\n re-ACK 2e266f33b5d2be5c233c2c692481f75785714fa1.\n fanquake:\n ACK 2e266f33b5d2be5c233c2c692481f75785714fa1 - at some point qt's open source 5.15.x branch will catch up to where they bumped the internal zlib to >= 1.3 (which contains this change), and we'll be able to drop this patch. Checked that it fixes the build issue in the interim.\n\nTree-SHA512: b297aed8b299c671ff439b5b7b410832ff5004fd9b13c3b4a5fb5bde9dcf24a5eda08cd0a39565ae0641d9533711142bdc2889a32d343b9c4b41bfac24f0ca28","shortMessageHtmlLink":"Merge #29985: depends: Fix build of Qt for 32-bit platforms with rece…"}},{"before":"0c45d73f185d0f09c9b0b5a1749f405fb8125887","after":"19865a8350a8181ab658bef48976a728bae6a8bd","ref":"refs/heads/master","pushedAt":"2024-04-29T14:38:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"ryanofsky","name":"Ryan Ofsky","path":"/ryanofsky","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7133040?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29277: RPC: access RPC arguments by name\n\n30a6c999351041d6a1e8712a9659be1296a1b46a rpc: access some args by name (stickies-v)\nbbb31269bfa449e82d3b6a20c2c3481fb3dcc316 rpc: add named arg helper (stickies-v)\n13525e0c248eab9b199583cde76430c6da2426e2 rpc: add arg helper unit test (stickies-v)\n\nPull request description:\n\n Adds string overloads for the `RPCHelpMan::Arg` and `RPCHelpMan::MaybeArg` helpers to be able to access RPC arguments by name instead of index number. Especially in RPCs with a large number of parameters, this can be quite helpful.\n\n Example usage:\n ```cpp\n const auto action{self.Arg(\"action\")};\n ```\n\n Most of the LoC is adding test coverage and documentation updates. No behaviour change.\n\n An alternative approach to #27788 with significantly less overhaul.\n\nACKs for top commit:\n fjahr:\n Code review ACK 30a6c999351041d6a1e8712a9659be1296a1b46a\n maflcko:\n ACK 30a6c999351041d6a1e8712a9659be1296a1b46a 🥑\n ryanofsky:\n Code review ACK 30a6c999351041d6a1e8712a9659be1296a1b46a. Nice change! Implementation is surprisingly simple and additional unit test coverage is welcome, too.\n\nTree-SHA512: 4904f5f914fe1d421d32f60edb7c5a028c8ea0f140a2f207a106b4752d441164e073066a6bf2e17693f859fe847815a96609d3cf521e0ac4178d8cd09362ea3d","shortMessageHtmlLink":"Merge #29277: RPC: access RPC arguments by name"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQrmkEgA","startCursor":null,"endCursor":null}},"title":"Activity · bitcoin/bitcoin"}