{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":272700405,"defaultBranch":"master","name":"gui","ownerLogin":"bitcoin-core","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-06-16T12:20:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13464320?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1621257589.5340319","currentOid":""},"activityList":{"items":[{"before":"0894748316c5483063ceb6c3cd76d32febac35e9","after":"33adc7521cc8bb24b941d959022b084002ba7c60","ref":"refs/heads/master","pushedAt":"2024-09-20T19:17:00.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30765: refactor: Allow `CScript`'s `operator<<` to accept spans, not just vectors\n\n5e190cd11f6ed8b7ab4db0f01192de63deaf6fd7 Replace CScript _hex_v_u8 appends with _hex (Lőrinc)\ncac846c2fbf6fc69bfc288fd387aa3f68d84d584 Allow CScript's operator<< to accept spans, not just vectors (Lőrinc)\nc78d8ff4cb83506413bb73833fc5c04885d0ece8 prevector: avoid GCC bogus warnings in insert method (Lőrinc)\n\nPull request description:\n\n Split out of https://github.com/bitcoin/bitcoin/pull/30377#discussion_r1722326803.\n\n Replace `_hex_v_u8` for `CScript` appends to `_hex`, to skip vector conversion before serializing to the `prevector` in `CScript`.\n\n To enable both `unsigned char` and `std::byte` values, I've extracted the existing serialization to append the size & data in separate private methods to clarify that it does more than just a simple data insertion.\n\n There were also discussion on eliminating the operators here completely to obviate when we're serializing fixed-size collections as raw bytes, and when we're prefixing them with their size - should also be done in a separate PR.\n\nACKs for top commit:\n achow101:\n ACK 5e190cd11f6ed8b7ab4db0f01192de63deaf6fd7\n ryanofsky:\n Code review ACK 5e190cd11f6ed8b7ab4db0f01192de63deaf6fd7. Looks good!\n hodlinator:\n re-ACK 5e190cd11f6ed8b7ab4db0f01192de63deaf6fd7\n\nTree-SHA512: 27a646629e017b2a05416d5eb964dda8b25b900d466221eff7bfa1339ded443e1c5c4cf8ff20cb3bba915a2603787a9fa6f6ec12bc0b9415d9eb07b57289192b","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30765: refactor: Allow CScript's operator<<…"}},{"before":"f57a6754ed6a9b0d11e03189aa808d8376ce51b6","after":"0894748316c5483063ceb6c3cd76d32febac35e9","ref":"refs/heads/master","pushedAt":"2024-09-20T18:35:14.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#30918: fuzz: Add check in `p2p_headers_presync` that chain work never exceeds minimum work\n\n284bd17309ab3b124d9dcddfec62f5506383343b add check that chainwork doesn't exceed minimum work (marcofleon)\n9aa5d1c3fcd10ecb94310ad515a8569bc2d418f8 add clarification in comment (marcofleon)\n\nPull request description:\n\n A followup to https://github.com/bitcoin/bitcoin/pull/30661\n\n The added assertion just makes sure that the fuzz test is working as intended. If we're sure that the total work of the test chain is never more than minimum chain work, then we can be sure that the later assertion failure would actually mean that a bug in the headers presync logic was found.\n\n This PR also addresses:\n https://github.com/bitcoin/bitcoin/pull/30661#discussion_r1746614616\n https://github.com/bitcoin/bitcoin/pull/30661#discussion_r1764943665\n https://github.com/bitcoin/bitcoin/pull/30661#discussion_r1764961991\n\nACKs for top commit:\n instagibbs:\n reACK 284bd17309ab3b124d9dcddfec62f5506383343b\n maflcko:\n review ACK 284bd17309ab3b124d9dcddfec62f5506383343b\n achow101:\n ACK 284bd17309ab3b124d9dcddfec62f5506383343b\n\nTree-SHA512: 76a9dffea4b6e13499c636d6ad26af06135319d25117c0eb40cf8dfcfdca6a4549c9b4d2ba835192ca355e0f8d476227aeabf8bdb68770def72a9fb521533fe5","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30918: fuzz: Add check in p2p_headers_presync…"}},{"before":"48c20dbd86c29e7102a9ece016159f126c586de6","after":"f57a6754ed6a9b0d11e03189aa808d8376ce51b6","ref":"refs/heads/master","pushedAt":"2024-09-20T17:55:57.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#30826: fuzz: reduce number of iterations in `crypto_aeadchacha20poly1305` target\n\nf482d0e366a84008129913b442f0c955de79ac93 fuzz: reduce number of iterations in `crypto_aeadchacha20poly1305` target (brunoerg)\n\nPull request description:\n\n By reducing the number of iterations we improve the performance of this target and may increase coverage.\n\n Running with `-runs=100000` from qa-assets I noticed a significant performance improvement and an increase on cov:\n master:\n ```\n #100000 DONE cov: 567 ft: 4078 corp: 124/33Kb lim: 4096 exec/s: 793 rss: 499Mb\n ```\n\n PR:\n ```\n #100000 DONE cov: 568 ft: 3833 corp: 113/15188b lim: 1746 exec/s: 1250 rss: 544Mb\n ```\n\nACKs for top commit:\n achow101:\n ACK f482d0e366a84008129913b442f0c955de79ac93\n marcofleon:\n Tested ACK f482d0e366a84008129913b442f0c955de79ac93. Saw the same slight increase in coverage. Executed 100,000 runs several times and total time went from 30-35 sec to 20-25 sec.\n stratospher:\n ACK f482d0e. saw similar coverage stats\n\nTree-SHA512: 1a96dbc22a0aed396b7f8cc9b13534b7f20a461f64f167c69c650529d535e360499f1a501abc1f957f7541ee1860b36a5580aa488a1edbfa0270c9ed83ef741d","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30826: fuzz: reduce number of iterations in `cr…"}},{"before":"4148e60909e135dd4a728527ca94e9f5505c9ef8","after":"48c20dbd86c29e7102a9ece016159f126c586de6","ref":"refs/heads/master","pushedAt":"2024-09-20T17:42:59.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#30794: interpreter: use int32_t instead of int type for risczero compile\n\nbc52cda1f3c007bdf1ed00aa3011e207c7531017 fix use int32_t instead of int type for risczero compile with (-march=rv32i, -mabi=ilp32) (Simon)\n\nPull request description:\n\n When compile bitcoin by the toolchain(`riscv32-unknown-elf-g++`) from risc0 , the compiler argument is `-march=rv32i, -mabi=ilp32`, which will get the error which due to not serialize the value of type int .\n\n ```\n blockbody-guest: cargo:warning=In file included from depend/bitcoin/src/hash.h:14,\n blockbody-guest: cargo:warning= from depend/bitcoin/src/script/interpreter.h:9,\n blockbody-guest: cargo:warning= from depend/bitcoin/src/script/interpreter.cpp:6:\n blockbody-guest: cargo:warning=depend/bitcoin/src/serialize.h: In instantiation of 'void Serialize(Stream&, const T&) [with Stream = HashWriter; T = int]':\n blockbody-guest: cargo:warning=depend/bitcoin/src/hash.h:144:20: required from 'HashWriter& HashWriter::operator<<(const T&) [with T = int]'\n blockbody-guest: cargo:warning=depend/bitcoin/src/script/interpreter.cpp:1613:12: required from 'uint256 SignatureHash(const CScript&, const T&, unsigned int, int, const CAmount&, SigVersion, const PrecomputedTransactionData*) [with T = CTransaction; CAmount = long long int]'\n blockbody-guest: cargo:warning=depend/bitcoin/src/script/interpreter.cpp:1664:36: required from 'bool GenericTransactionSignatureChecker::CheckECDSASignature(const std::vector&, const std::vector&, const CScript&, SigVersion) const [with T = CTransaction]'\n blockbody-guest: cargo:warning=depend/bitcoin/src/script/interpreter.cpp:1785:16: required from here\n blockbody-guest: cargo:warning=depend/bitcoin/src/serialize.h:776:7: error: request for member 'Serialize' in 'a', which is of non-class type 'const int'\n blockbody-guest: cargo:warning= 776 | a.Serialize(os);\n ```\n\n --------------\n\n ### Reason\n\n \"The toolchain from RISC Zero defines int and int32_t as different types, although they have the same width. This means that `src/compat/assumptions.h` compiles fine; however, the templated serialization code cannot accept values of type int. Fix the compilation on RISC Zero by serializing int32_t instead of int values.\n\n This patch will explicitly use the `int32_t` type instead of `int` to avoid errors when compiling with the risc0 toolchain. Additionally, this patch will not change any behavior on platforms where compilation was previously successful.\n\n Fixes #30747\n\nACKs for top commit:\n maflcko:\n review-only ACK bc52cda1f3c007bdf1ed00aa3011e207c7531017\n achow101:\n ACK bc52cda1f3c007bdf1ed00aa3011e207c7531017\n TheCharlatan:\n ACK bc52cda1f3c007bdf1ed00aa3011e207c7531017\n\nTree-SHA512: ef880e7dfa1335bf2704ab17c0f506f17390b8259755674dfcd57131736492b2f4cfc36babda6902202b7c55a7513991e21f6634b0cd9b2b03baf4f1c0f8d78b","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30794: interpreter: use int32_t instead of int …"}},{"before":"a8a2628b7a963d348b7b52bf1a09d1f0712de442","after":"4148e60909e135dd4a728527ca94e9f5505c9ef8","ref":"refs/heads/master","pushedAt":"2024-09-20T17:34:31.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#30679: fix: handle invalid `-rpcbind` port earlier\n\ne6994efe08b282dd9e46602bcbad69567fe91dcd fix: increase rpcbind check robustness (tdb3)\nd38e3aed89eea665399eef07f5c3b64b14d4f586 fix: handle invalid rpcbind port earlier (tdb3)\n83b67f2e6d59ea5de6573314ea4fe54ae52b7c12 refactor: move host/port checking (tdb3)\n73c243965ab256ece089d14173c2d285955e83d5 test: add tests for invalid rpcbind ports (tdb3)\n\nPull request description:\n\n Previously, when an invalid port was specified in `-rpcbind`, the `SplitHostPort()` return value in `HTTPBindAddresses()` was ignored and attempt would be made to bind to the default rpcbind port (with the host/port treated as a host).\n\n This rearranges port checking code in `AppInitMain()` to handle the invalid port before reaching `HTTPBindAddresses()`. Also adds a check in `HTTPBindAddresses()` as a defensive measure for future changes.\n\n Adds then updates associated functional tests as well.\n\nACKs for top commit:\n achow101:\n ACK e6994efe08b282dd9e46602bcbad69567fe91dcd\n ryanofsky:\n Code review ACK e6994efe08b282dd9e46602bcbad69567fe91dcd\n zaidmstrr:\n Code review ACK [e6994ef](https://github.com/bitcoin/bitcoin/commit/e6994efe08b282dd9e46602bcbad69567fe91dcd)\n\nTree-SHA512: bcc3e5ceef21963821cd16ce6ecb83d5c5657755882c05872a7cfe661a1492b1d631f54de22f41fdd173512d62dd15dc37e394fe1a7abe4de484b82cd2438b92","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30679: fix: handle invalid -rpcbind port earlier"}},{"before":"0d81b3ddedc73daf934242885c60f05f812ac275","after":"a8a2628b7a963d348b7b52bf1a09d1f0712de442","ref":"refs/heads/master","pushedAt":"2024-09-20T17:26:46.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#30828: interfaces: #30697 follow ups\n\n84663291275248fd52da644b0c2566bbf9cc780b chain: simplify `deleteRwSettings` code and improve it's doc (ismaelsadeeq)\nf8d91f49c7091102138fcb123850399e8fadfbc7 chain: dont check for null settings value in `overwriteRwSetting` (ismaelsadeeq)\ndf601993f2d7454f081316d6a8ddefbcefa49b3d chain: ensure `updateRwSetting` doesn't update to a null settings (ismaelsadeeq)\nc8e2eeeffb494d99d95c1c45efeda5a98dce94cd chain: uniformly use `SettingsAction` enum in settings methods (ismaelsadeeq)\n1e9e735670f029c975d3b7486a54e5bb67135df7 chain: move new settings safely in `overwriteRwSetting` (ismaelsadeeq)\n1c409004c80bc5f2314e20cc922076e22931cf73 test: remove wallet context from `write_wallet_settings_concurrently` (ismaelsadeeq)\n\nPull request description:\n\n This PR addresses the remaining review comments from #30697\n\n 1. Disallowed overwriting settings values with a `null` value.\n 2. Uniformly used the `SettingsAction` enum in all settings methods instead of a boolean parameter.\n 3. Updated `overwriteRwSetting` to receive the `common::SettingsValue` parameter by value, enabling it to be moved safely.\n 4. Removed wallet context from the `write_wallet_settings_concurrently` unit test, as it is not needed.\n\nACKs for top commit:\n achow101:\n ACK 84663291275248fd52da644b0c2566bbf9cc780b\n ryanofsky:\n Code review ACK 84663291275248fd52da644b0c2566bbf9cc780b. Looks good, thanks for taking suggestions and applying them to the right commits. Only changes since last review were documentation improvements and simplifying delete method.\n furszy:\n Code review ACK 84663291275248fd52da644b0c2566bbf9cc780b\n\nTree-SHA512: baf2f59ed5aac4a4bda0c84fb6554a466a40d1f7b52b61dc2ff293d83ae60e82b925b7003237b633fecb65eba3a4c108e69166046895d1295809fbe0de67b052","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30828: interfaces: #30697 follow ups"}},{"before":"c985a34b9c3246888a4fc05519f1f025a5c62422","after":"0d81b3ddedc73daf934242885c60f05f812ac275","ref":"refs/heads/master","pushedAt":"2024-09-20T16:55:29.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#30568: addrman: change internal id counting to int64_t\n\n51f7668d31e2624e41c7ce77fe33162802808f3f addrman: change nid_type from int to int64_t (Martin Zumsande)\n051ba3290e30e210bfc50dea974063053313ad3e addrman, refactor: introduce user-defined type for internal nId (Martin Zumsande)\n\nPull request description:\n\n With `nIdCount` being incremented for each addr received, an attacker could cause an overflow in the past, see https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/\n Even though that attack was made infeasible indirectly by addr rate-limiting (PR #22387), to be on the safe side and prevent any regressions change the `nId`s used internally to `int64_t`.\n This is being done by first introducing a user-defined type for `nId`s in the first commit, and then updating it to `int64_t` (thanks sipa for help with this!).\n\n Note that `nId` is only used internally, it is not part of the serialization, so `peers.dat` should not be affected by this.\n\n I assume that the only reason this was not done in the past is to not draw attention to this previously undisclosed issue.\n\nACKs for top commit:\n naumenkogs:\n ACK 51f7668d31e2624e41c7ce77fe33162802808f3f\n stratospher:\n ACK 51f7668d31e2624e41c7ce77fe33162802808f3f. I think it's a good change to make the nId space large(64 bits) so that the nId values are distinct.\n achow101:\n ACK 51f7668d31e2624e41c7ce77fe33162802808f3f\n\nTree-SHA512: 68d4b8b0269a01a9544bedfa7c1348ffde00a288537e4c8bf2b88372ac7d96c4566a44dd6b06285f2fcf31b4f9336761e3bca7253fbc20db5e0d04e887156224","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30568: addrman: change internal id counting to …"}},{"before":"79f20fa1b1ec1a0c7fc0017f3d0e15aad75a7658","after":"c985a34b9c3246888a4fc05519f1f025a5c62422","ref":"refs/heads/master","pushedAt":"2024-09-20T16:00:40.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#26990: cli: Improve error message on multiwallet cli-side commands\n\n54227e681a4efa8961f1ad05d43366d88a9b686a rpc, cli: improve error message on multiwallet mode (pablomartin4btc)\n\nPull request description:\n\n Running a CLI command when multiple wallets are loaded and `-rpcwallet` is not specified, should return a clearer error.\n\n Currently in `master`:\n\n ```\n $ bitcoin-cli -regtest -generate 1\n error code: -19\n error message:\n Wallet file not specified (must request wallet RPC through /wallet/ uri-path).\n Try adding \"-rpcwallet=\" option to bitcoin-cli command line.\n ```\n\n With this change:\n\n ```\n $ bitcoin-cli -regtest -generate 1\n error code: -19\n error message:\n Multiple wallets are loaded. Please select which wallet to use by requesting the RPC through the /wallet/ URI path. Or for the CLI, specify the \"-rpcwallet=\" option before the command (run \"bitcoin-cli -h\" for help or \"bitcoin-cli listwallets\" to see which wallets are currently loaded).\n ```\n\nACKs for top commit:\n maflcko:\n review ACK 54227e681a4efa8961f1ad05d43366d88a9b686a\n achow101:\n ACK 54227e681a4efa8961f1ad05d43366d88a9b686a\n furszy:\n utACK 54227e681a4\n mzumsande:\n Code Review ACK 54227e681a4efa8961f1ad05d43366d88a9b686a\n jonatack:\n ACK 54227e681a4efa8961f1ad05d43366d88a9b686a\n\nTree-SHA512: 51ff24f64858aa6be6adf6f20105c9f076ebea743780bf2a4399f7fe8b5239cbb1ea06d32b2ef5e850da2369abb0ef7a52c50c2b8f31f4ca90d3a486abc9b77e","shortMessageHtmlLink":"Merge bitcoin/bitcoin#26990: cli: Improve error message on multiwalle…"}},{"before":"197aa249551ea7b2280b6e187d2ad5378687beff","after":"79f20fa1b1ec1a0c7fc0017f3d0e15aad75a7658","ref":"refs/heads/master","pushedAt":"2024-09-20T15:05:44.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#30561: refactor: move `SignSignature` helpers to test utils\n\n58499b00d0ad1c83e433caa8fcc0e5d3fd3f2070 refactor: move `SignSignature` helpers to test utils (Sebastian Falbesoner)\n\nPull request description:\n\n These helpers haven't been used in production code since segwit was merged more than eight years ago (see commit 605e8473, PR #8149), so it seems appropriate to move them to the test utils module. As suggested by instagibbs, see https://github.com/bitcoin/bitcoin/pull/30352#discussion_r1697515508.\n\nACKs for top commit:\n instagibbs:\n ACK 58499b00d0ad1c83e433caa8fcc0e5d3fd3f2070\n pablomartin4btc:\n ACK 58499b00d0ad1c83e433caa8fcc0e5d3fd3f2070\n\nTree-SHA512: a52d3b92b477246f2ceb57c3690d0229a492b65a15dae331faeae9d96e5907f7fe1176edc1530243e0f088586984fd7ba435a0a2d2f2531c04d076fdf3f4095f","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30561: refactor: move SignSignature helpers t…"}},{"before":"84cd6478c422bc296589ab031f5c76e7bab2704d","after":"197aa249551ea7b2280b6e187d2ad5378687beff","ref":"refs/heads/master","pushedAt":"2024-09-20T09:59:25.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#30856: build: drop obj/ subdirectory for generated build.h\n\n7025942687fd5e91d0a10ce5b2ac673b67a63491 build: drop superfluous `HAVE_BUILD_INFO` define (Sebastian Falbesoner)\n0dd662510c52b202f7136fbcb32ed3864b52b50b build: drop obj/ subdir for generated build.h, rename to bitcoin-build-info.h (Sebastian Falbesoner)\n\nPull request description:\n\n As indicated by the TODO, the obj subdirectory is not needed anymore now for the generated build.h header, since autotools are gone and we don't have in-source builds anymore (see #30454, #30664). In the second commit the superflous `HAVE_BUILD_INFO` macro is dropped, as suggested in https://github.com/bitcoin/bitcoin/pull/30856#pullrequestreview-2292424496.\n\nACKs for top commit:\n theuni:\n utACK 7025942687fd5e91d0a10ce5b2ac673b67a63491\n\nTree-SHA512: 0a3b2cbbcf638344ceb74e5ba5a0fe2b1718427b23a18c8890258db36ce7177006a146178ed88d9c5ae956a5426f3844e86c1f4cca7c40946359742bffda983b","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30856: build: drop obj/ subdirectory for genera…"}},{"before":"2db926f49c812a3f04a565834c841ce4bc4ae288","after":"84cd6478c422bc296589ab031f5c76e7bab2704d","ref":"refs/heads/master","pushedAt":"2024-09-19T15:44:05.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#30927: Follow-up after AutoFile position caching: remove unused code\n\ncaac06f784c5d94c6a5f7d0b586f9ddbbe55c369 streams: reorder/document functions (Pieter Wuille)\n67a3d590768301fb46a93fdb0a5c66c0c2de1082 streams: remove unused code (Pieter Wuille)\n\nPull request description:\n\n This is a follow-up to #30884.\n\n Remove a number of dead code paths, and improve the code organization and documentation, in `AutoFile`.\n\nACKs for top commit:\n maflcko:\n re-ACK caac06f784c5d94c6a5f7d0b586f9ddbbe55c369\n theStack:\n Code-review ACK caac06f784c5d94c6a5f7d0b586f9ddbbe55c369\n l0rinc:\n ACK caac06f784c5d94c6a5f7d0b586f9ddbbe55c369\n tdb3:\n CR ACK caac06f784c5d94c6a5f7d0b586f9ddbbe55c369\n\nTree-SHA512: 297791f093e0142730f815c11dd3466b98f7e7edea86094a815dae989ef40d8056db10e0fed6e575d530903c18e80c08d36d3f1e6b828f2d955528f365b22008","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30927: Follow-up after AutoFile position cachin…"}},{"before":"9ba56884f625a84dea96912bee51a16b8949c5ba","after":"2db926f49c812a3f04a565834c841ce4bc4ae288","ref":"refs/heads/master","pushedAt":"2024-09-19T11:17:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30889: log: Use ConstevalFormatString\n\nfacbcd4cef8890ae18976fb53b67ea56b3c04454 log: Use ConstevalFormatString (MarcoFalke)\nfae9b60c4ffef38d9725f42f992b1f38765312a3 test: Use LogPrintStr to test m_log_sourcelocations (MarcoFalke)\nfa39b1ca63874db8ef8bc16b87e2699e8e1b67be doc: move-only logging warning (MarcoFalke)\n\nPull request description:\n\n This changes all logging (including the wallet logging) to produce a\n `ConstevalFormatString` at compile time, so that the format string can be\n validated at compile-time.\n\n I tested with `clang` and found that the compiler will use less than 1% more of time and memory.\n\n When an error is found, the compile-time error depends on the compiler, but it may look similar to:\n\n ```\n src/util/string.h: In function ‘int main(int, char**)’:\n src/bitcoind.cpp:265:5: in ‘constexpr’ expansion of ‘util::ConstevalFormatString<1>(((const char*)\"Hi %s %s\"))’\n src/util/string.h:38:98: in ‘constexpr’ expansion of ‘util::ConstevalFormatString<1>::Detail_CheckNumFormatSpecifiers(std::basic_string_view(((const char*)((util::ConstevalFormatString<1>*)this)->util::ConstevalFormatString<1>::fmt)))’\n src/util/string.h:78:34: error: expression ‘’ is not a constant expression\n 78 | if (num_params != count) throw \"Format specifier count must match the argument count!\";\n | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n ```\n\n This refactor does not change behavior of the compiled executables.\n\nACKs for top commit:\n hodlinator:\n re-ACK facbcd4cef8890ae18976fb53b67ea56b3c04454\n l0rinc:\n ACK facbcd4cef8890ae18976fb53b67ea56b3c04454\n ryanofsky:\n Code review ACK facbcd4cef8890ae18976fb53b67ea56b3c04454\n pablomartin4btc:\n re-ACK facbcd4cef8890ae18976fb53b67ea56b3c04454\n stickies-v:\n Approach ACK and code LGTM facbcd4cef8890ae18976fb53b67ea56b3c04454 modulo a `tinyformat::format_error` concern.\n\nTree-SHA512: 852f74d360897020f0d0f6e5064edc5e7f7dacc2bec1d5feff22c634a2fcd2eb535aa75be0b7191d9053728be6108484c737154b02d68ad3186a2e5544ba0db8","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30889: log: Use ConstevalFormatString"}},{"before":"ab0b5706b254ed914f94b41940a946d84ac8dd6d","after":"9ba56884f625a84dea96912bee51a16b8949c5ba","ref":"refs/heads/master","pushedAt":"2024-09-19T09:42:14.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30869: ci: Print inner env, Make ccache config more flexible\n\nfa99e4521b6fc0e7f6636d40bc0d6a7325227374 ci: Allow CCACHE_DIR bind mount (MarcoFalke)\nfa252da0b9cc6c7e795366ce4a1ddc4c198dff15 ci: Remove hardcoded CCACHE_DIR in cirrus (MarcoFalke)\nfa146904e19e345714fd40fd2f0fbad8118957b9 ci: Bump default CCACHE_MAXSIZE to 500M (MarcoFalke)\naaaa7cf8bad0e125a67e996162271eb26bef4fb6 cirrus: Drop CCACHE_NOHASHDIR (MarcoFalke)\nfa7ca182a9b0c65f567116b67108da14182e5338 ci: Print inner env (MarcoFalke)\n\nPull request description:\n\n The outer env is printed when the `/tmp/env-$USER-$CONTAINER_NAME` is created. There is also a separate env printed when building the container image (usually with default values).\n\n To confirm that the inner container env is correctly derived from the outer env, and not from the default build env, print it a third time.\n\nACKs for top commit:\n l0rinc:\n utACK fa99e4521b6fc0e7f6636d40bc0d6a7325227374\n willcl-ark:\n ACK fa99e4521b6fc0e7f6636d40bc0d6a7325227374\n\nTree-SHA512: 59fd3262d551e09224866e31c14ca865461e81abbe00b83391fe3a9c7ada30fd2fd0272e4aa812df2712433ac7594d1a55cf674248b341359cec09c8d3f0c58b","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30869: ci: Print inner env, Make ccache config …"}},{"before":"fd08fded63adb5bcda2334a98c02d653a849debb","after":"ab0b5706b254ed914f94b41940a946d84ac8dd6d","ref":"refs/heads/master","pushedAt":"2024-09-18T17:44:06.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#30875: doc: fixed inconsistencies in documentation between autotools to cmake change\n\na9964c04447745435747d9cc557165c43902783b doc: Updating docs from autotools to cmake (kevkevinpal)\n\nPull request description:\n\n A bit of a followup from https://github.com/bitcoin/bitcoin/pull/30840\n\n - In this change the documentation where we refer to the `./configure` script which is now gone and have converted the configure params to use the `cmake` equivalent.\n\nACKs for top commit:\n maflcko:\n ACK a9964c04447745435747d9cc557165c43902783b\n jonatack:\n utACK a9964c04447745435747d9cc557165c43902783b\n jarolrod:\n ACK a9964c04447745435747d9cc557165c43902783b\n tdb3:\n ACK a9964c04447745435747d9cc557165c43902783b\n pablomartin4btc:\n re-ACK a9964c04447745435747d9cc557165c43902783b\n\nTree-SHA512: f7ed20b8ad61f028c0d242b9cc70650d8da63057d4a8f7da88f0117a8d3241c5fe8fcf19d56ec82088160b9fee9b175fe9f64e5a845260d3696dc7e94bfdd0bd","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30875: doc: fixed inconsistencies in documentat…"}},{"before":"69409bc6e55848cf959ed924bcc722997455d76f","after":"fd08fded63adb5bcda2334a98c02d653a849debb","ref":"refs/heads/master","pushedAt":"2024-09-18T17:40:09.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#30639: ci: Use clang-19 in msan tasks\n\nccccb67851b03a7042bbf62a5534607f174ec47b ci: Use clang-19 in msan tasks (MarcoFalke)\n\nPull request description:\n\n A new clang version generally comes with bugfixes, new sanitizer features, deprecations, as well as new features.\n\n Upgrade the memory sanitizer tasks to use the new version.\n\n (Ref https://github.com/bitcoin/bitcoin/pull/30634)\n\nACKs for top commit:\n fanquake:\n ACK ccccb67851b03a7042bbf62a5534607f174ec47b Tested both jobs on aarch64, and one on x86_64 with `mmap_rnd_bits`.\n\nTree-SHA512: a42bf2da7c08aa54c0c5ab3811ff51b98b80b276be135eed32395a55ae93a42d41d7cd32c307062dcca711a892958ea141168c2a06025560074f8c5d20190946","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30639: ci: Use clang-19 in msan tasks"}},{"before":"6b97882ab53e8a7edc656eb1958eac3938e3b73d","after":"69409bc6e55848cf959ed924bcc722997455d76f","ref":"refs/heads/master","pushedAt":"2024-09-18T09:17:32.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#30908: doc: remove Eclipser fuzzing documentation\n\n735436df8cebf28d4bcf0ad7e8f1fd7f19191001 Remove outdated Eclipser fuzzing documentation (Jon Atack)\n\nPull request description:\n\n Remove the Eclipser fuzzing documentation from `doc/fuzzing.md`, as that repository (https://github.com/SoftSec-KAIST/Eclipser) hasn't been updated in several years, appears possibly unmaintained, and likely isn't being actively used for fuzzing Bitcoin Core.\n\n These docs were originally added in https://github.com/bitcoin/bitcoin/pull/22585.\n\nACKs for top commit:\n maflcko:\n review ACK 735436df8cebf28d4bcf0ad7e8f1fd7f19191001\n brunoerg:\n ACK 735436df8cebf28d4bcf0ad7e8f1fd7f19191001\n\nTree-SHA512: 7ccbf93c10add53e92edf67a622722935029add63f8fbb6e733b96e9d155faeb8d5d3678adb0e7f2ce8ccbdffd2a34c3dc93adbcf4e3ce0cdd03e20ad3e6bbd6","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30908: doc: remove Eclipser fuzzing documentation"}},{"before":"6fc4692797121b54de0c54e5b09ee47f322c038a","after":"6b97882ab53e8a7edc656eb1958eac3938e3b73d","ref":"refs/heads/master","pushedAt":"2024-09-18T09:16:19.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#30915: ci: Use `ninja` to build in macOS native CI job\n\nd01b85bfecbcf16ea16f90e2ade7537bf582269f ci: Use `ninja` to build in macOS native CI job (Hennadii Stepanov)\n\nPull request description:\n\n This PR addresses [this](https://github.com/bitcoin/bitcoin/pull/30911#issuecomment-2354922939) comment:\n > I wonder if one CI task should be using Ninja (and cmake >= 3.27), if it isn't too hard to implement. Otherwise this config will remain untested and errors may sneak in to the master branch, only being detected after merge.\n\nACKs for top commit:\n maflcko:\n review ACK d01b85bfecbcf16ea16f90e2ade7537bf582269f\n theuni:\n ACK d01b85bfecbcf16ea16f90e2ade7537bf582269f.\n jonatack:\n ACK d01b85bfecbcf16ea16f90e2ade7537bf582269f\n jarolrod:\n ACK d01b85bfecbcf16ea16f90e2ade7537bf582269f\n\nTree-SHA512: 5cbbc87f0e48512441a4f0cf10af2f6d73f24d3e8667b338b176fd1667fd5d7739349bcede3aeef973497ff67d33cb8f7d7f3681c3ede8e8b2f673b853d5bc63","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30915: ci: Use ninja to build in macOS native…"}},{"before":"2a0949f0977db2dbb7ac452e8d58d413b9526756","after":"6fc4692797121b54de0c54e5b09ee47f322c038a","ref":"refs/heads/master","pushedAt":"2024-09-17T14:27:40.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#29624: doc: update NeedsRedownload() and nStatus comment\n\naf9f9878934f88036423021c70ef523b6c9e1c90 doc: update NeedsRedownload() comment (Sjors Provoost)\n\nPull request description:\n\n Noticed two outdated comments while reviewing #29370.\n\n Since #21009 we no longer roll back the chain, when a user updates a pre-segwit node to a modern node. In this unlikely scenario we tell the user to `-reindex`.\n\n This PR updates a comment in `PopulateAndValidateSnapshot` to reflect that change. Ditto for the description of `nStatus` in `chain.h`.\n\nACKs for top commit:\n maflcko:\n re-ACK af9f9878934f88036423021c70ef523b6c9e1c90\n fjahr:\n ACK af9f9878934f88036423021c70ef523b6c9e1c90\n\nTree-SHA512: d590f1cff6823297764c863753ed5478b8933d503c43933902d50b449dfd852a02aeb318c072ad25d02e4c2583d7026cd176a10b0584292d6bbe381a063f5c45","shortMessageHtmlLink":"Merge bitcoin/bitcoin#29624: doc: update NeedsRedownload() and nStatu…"}},{"before":"bdbc90f29ac71253b8f31059fbf81da0bffe3bc8","after":"2a0949f0977db2dbb7ac452e8d58d413b9526756","ref":"refs/heads/master","pushedAt":"2024-09-17T14:27:06.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#30888: build: optimize .h generation in GenerateHeaderFrom{Raw,Json}.cmake\n\n2a581144f28bad44de40122864f2f7b9fc5000de build: Minimize I/O operations in GenerateHeaderFromJson.cmake (Lőrinc)\naa003d1568b84372616e85b0295c1eb6b165c8a3 build: Minimize I/O operations in GenerateHeaderFromRaw.cmake (Lőrinc)\n\nPull request description:\n\n Follow up of the https://github.com/bitcoin/bitcoin/pull/30883 revert.\n\n Replaced multiple file writes with a single string template write.\n The raw content is first grouped into 8 byte chunks, followed by another regex replace which wraps them in `std::byte` or just the raw bytes, prefixed with `0x`.\n\n Tested the output with `diff -w` and they're the same - only whitespace differences because slightly different source formatting.\n\n ----\n\n Tested the `Raw` performance with:\n ```bash\n time cmake -DRAW_SOURCE_PATH=src/bench/data/block413567.raw -DHEADER_PATH=build/after/block413567.raw.h -DRAW_NAMESPACE=benchmark::data -P cmake/script/GenerateHeaderFromRaw.cmake\n ```\n\n Before:\n > 15.41s user 23.06s system 97% cpu 39.593 total\n\n After:\n > 0.77s user 0.06s system 97% cpu 0.849 total\n\n ----\n\n Tested the `Json` performance with:\n ```bash\n time cmake -DJSON_SOURCE_PATH=src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json -DHEADER_PATH=build/after/ecdsa_secp256k1_sha256_bitcoin_test.json -P cmake/script/GenerateHeaderFromJson.cmake\n ````\n\n Before:\n > 3.57s user 6.01s system 94% cpu 10.136 total\n\n After:\n > 0.17s user 0.01s system 98% cpu 0.187 total\n\nACKs for top commit:\n maflcko:\n review ACK 2a581144f28bad44de40122864f2f7b9fc5000de 👒\n hebasto:\n ACK 2a581144f28bad44de40122864f2f7b9fc5000de.\n willcl-ark:\n tACK 2a581144f28bad44de40122864f2f7b9fc5000de\n\nTree-SHA512: 5e44f79d1c0dbb61d8b64f28d4c3c87a176981f72104b28800eef2037b0728076cbcf14ff07b05ff94d4e8800605586cfd5df00519db9027933c5943348c01d2","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30888: build: optimize .h generation in Generat…"}},{"before":"a95e742b69207d7541afc6903b3fd72131f4d6de","after":"bdbc90f29ac71253b8f31059fbf81da0bffe3bc8","ref":"refs/heads/master","pushedAt":"2024-09-17T14:19:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"fanquake","name":"fanquake","path":"/fanquake","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/863730?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30902: Remove Autotools packages from CI (and depends doc)\n\n7a8a6a06676dcb4066cc81a4e6872281a09bb00d doc: Fix comment in `contrib/devtools/check-deps.sh` script (Hennadii Stepanov)\n712d105e0935d31915c067bb90c54b71f6c5f4f5 depends, doc: Do not install Autotools packages (Hennadii Stepanov)\nb786449e663b6534abd0239e38122b9d082b90d8 ci: Do not install Autotools packages (Hennadii Stepanov)\n\nPull request description:\n\n This PR is a follow-up to https://github.com/bitcoin/bitcoin/pull/30752 and addresses https://github.com/bitcoin/bitcoin/pull/30752#discussion_r1758594864.\n\nACKs for top commit:\n kevkevinpal:\n ACK [7a8a6a0](https://github.com/bitcoin/bitcoin/pull/30902/commits/7a8a6a06676dcb4066cc81a4e6872281a09bb00d)\n\nTree-SHA512: ac701b34ebf1621be355a5b576032d30a342a5667eff47d858587ac3c60011d77bd469e524d69dae90a932f14269227886e3d170a63a2e855b29ef4fa5b9e5a4","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30902: Remove Autotools packages from CI (and d…"}},{"before":"225718eda89d65a7041c33e1994d3bf7bd71bbdd","after":"a95e742b69207d7541afc6903b3fd72131f4d6de","ref":"refs/heads/master","pushedAt":"2024-09-17T14:11:41.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#30913: ci: Use macos-14 GHA image (x86_64-apple-darwin22.6.0 -> arm64-apple-darwin23.6.0)\n\nfab932b4211ea0a4c10e484c08042552f9c58c15 ci: Remove incorrectly hardcoded HOST in mac_native task (MarcoFalke)\nfa8f35d786506eadfde3521e949bf5cdb4eb0003 ci: Use macos-14 GHA image (MarcoFalke)\n\nPull request description:\n\n There shouldn't be any downside, because XCode remains pinned to the same version.\n\n However, builds are expected to be a bit faster with M1, which seems nice.\n\nACKs for top commit:\n hebasto:\n ACK fab932b4211ea0a4c10e484c08042552f9c58c15.\n willcl-ark:\n ACK fab932b4211ea0a4c10e484c08042552f9c58c15\n\nTree-SHA512: 9719e05c67b8b5f3d59bd1a38eef00407b1ae5e123b18151c494b6d2dbf55bd2b0b5bb6c1a0469635c7b3bb5f23990d3bb2f339f56ce3955e8a1b97ac9f295d4","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30913: ci: Use macos-14 GHA image (x86_64-apple…"}},{"before":"9f1aa88d4d9596aeb5220fa30ee3972294b62793","after":"225718eda89d65a7041c33e1994d3bf7bd71bbdd","ref":"refs/heads/master","pushedAt":"2024-09-17T08:47: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#30438: guix: (explicitly) build Linux GCC with `--enable-cet`\n\n89bf11b807252fe5839b5b18742e24568dfe7bbd guix: build Linux GCC with --enable-cet (fanquake)\n\nPull request description:\n\n Similar to #29695, and in the same vein of explicitly configuring hardening options in our release toolchain.\n\n See https://gcc.gnu.org/install/configure.html:\n\n >` --enable-cet`\n\n > Enable building target run-time libraries with control-flow instrumentation, see `-fcf-protection option`. When --enable-cet is specified target libraries are configured to add `-fcf-protection` and, if needed, other target specific options to a set of building options.\n\n > `--enable-cet=auto` is default. CET is enabled on Linux/x86 if target binutils supports Intel CET instructions and disabled otherwise. In this case, the target libraries are configured to get additional `-fcf-protection` option.\n\nACKs for top commit:\n TheCharlatan:\n ACK 89bf11b807252fe5839b5b18742e24568dfe7bbd\n\nTree-SHA512: 772d8529713a31e5db42be4e053582bb9ba6f26079ae136c6bf8303c4992a90d61159dbb0fde7a4b4cb7b4bf5024d5397a78004e6188b36e1c36dd5e5cdc49ad","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30438: guix: (explicitly) build Linux GCC with …"}},{"before":"06329eb13488640159057c897978b3f0f2e33ab5","after":"9f1aa88d4d9596aeb5220fa30ee3972294b62793","ref":"refs/heads/master","pushedAt":"2024-09-17T03:09:22.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#30884: streams: cache file position within AutoFile\n\na240e150e837b5a95ed19765a2e8b7c5b6013f35 streams: remove AutoFile::Get() entirely (Pieter Wuille)\ne624a9bef16b6335fd119c10698352b59bf2930a streams: cache file position within AutoFile (Pieter Wuille)\n\nPull request description:\n\n Fixes #30833.\n\n Instead of relying on frequent `ftell` calls (which appear to cause a significant slowdown on some systems) in XOR-enabled `AutoFile`s, cache the file position within `AutoFile` itself.\n\nACKs for top commit:\n achow101:\n ACK a240e150e837b5a95ed19765a2e8b7c5b6013f35\n davidgumberg:\n untested reACK https://github.com/bitcoin/bitcoin/pull/30884/commits/a240e150e837b5a95ed19765a2e8b7c5b6013f35\n theStack:\n Code-review ACK a240e150e837b5a95ed19765a2e8b7c5b6013f35\n\nTree-SHA512: fd3681edc018afaf955dc7a41a0c953ca80d46c1129e3c5b306c87c95aae93b2fe7b900794eb8b6f10491f9211645e7939918a28838295e6873eb226fca7006f","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30884: streams: cache file position within Auto…"}},{"before":"e983ed41d9f78b15f6107c3aed7c9f5b200cf80e","after":"06329eb13488640159057c897978b3f0f2e33ab5","ref":"refs/heads/master","pushedAt":"2024-09-16T20:49:33.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29436: net: call `Select` with reachable networks in `ThreadOpenConnections`\n\ne4e3b44e9cc7227b3ad765397c884999f57bac2e net: call `Select` with reachable networks in `ThreadOpenConnections` (brunoerg)\n829becd990b504a2e8a57fa8a6ff6ac6ae8ff900 addrman: change `Select` to support multiple networks (brunoerg)\nf698636ec86c004ab331994559c163b7319e6423 net: add `All()` in `ReachableNets` (brunoerg)\n\nPull request description:\n\n This PR changes addrman's `Select` to support multiple networks and change `ThreadOpenConnections` to call it with reachable networks. It can avoid unnecessary `Select` calls and avoid exceeding the max number of tries (100), especially when turning a clearnet + Tor/I2P/CJDNS node to Tor/I2P/CJDNS. Compared to #29330, this approach is \"less aggresive\". It does not add a new init flag and does not impact address relay.\n\n I did an experiment of calling `Select` without passing a network until it finds an address from a network that compose 20% ~ 25% of the addrman (limited to 100 tries).\n\n ![Screenshot 2024-02-14 at 14 37 58](https://github.com/bitcoin/bitcoin/assets/19480819/7b6863a5-d7a6-40b6-87d5-01667c2de66a)\n\nACKs for top commit:\n achow101:\n ACK e4e3b44e9cc7227b3ad765397c884999f57bac2e\n vasild:\n ACK e4e3b44e9cc7227b3ad765397c884999f57bac2e\n naumenkogs:\n ACK e4e3b44e9cc7227b3ad765397c884999f57bac2e\n\nTree-SHA512: e8466b72b85bbc2ad8bfb14471eb27d2c50d4e84218f5ede2c15a6fa3653af61b488cde492dbd398f7502bd847e95bfee1abb7e01092daba2236d3ce3d6d2268","shortMessageHtmlLink":"Merge bitcoin/bitcoin#29436: net: call Select with reachable networ…"}},{"before":"fce9e065c16c7857606d154316e73f9e01c34c9a","after":"e983ed41d9f78b15f6107c3aed7c9f5b200cf80e","ref":"refs/heads/master","pushedAt":"2024-09-16T20:18:09.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"achow101","name":"Ava Chow","path":"/achow101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3782274?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30410: rpc, rest: Improve block rpc error handling, check header before attempting to read block data.\n\n6a1aa510e31e8b77793341473aa5afc9d023a6e3 rpc: check block index before reading block / undo data (Martin Zumsande)\n6cbf2e5f8197e51b8f3d789ba9f5874a2fd7b93a rpc: Improve gettxoutproof error when only header is available. (Martin Zumsande)\n69fc867ea19ba3bd8c38a18b5e3f0e366c46af5b test: add coverage to getblock and getblockstats (Martin Zumsande)\n5290cbd58504dcbab97cb0944b3ae0a0f79c4502 rpc: Improve getblock / getblockstats error when only header is available. (Martin Zumsande)\ne5b537bbdfbfb43ac7bd8e91958e4a2bbd2577ff rest: improve error when only header of a block is available. (Martin Zumsande)\n\nPull request description:\n\n Fixes #20978\n\n If a block was pruned, `getblock` already returns a specific error: \"Block not available (pruned data)\".\n But if we haven't received the full block yet (e.g. in a race with block downloading after a new block was received headers-first, or during IBD) we just return an unspecific \"Block not found on disk\" error and log\n `ERROR: ReadBlockFromDisk: OpenBlockFile failed for FlatFilePos(nFile=-1, nPos=0) `\n which suggest something went wrong even though this is a completely normal and expected situation.\n\n This PR improves the error message and stops calling `ReadRawBlockFromDisk()`, when we already know from the header that the block is not available on disk.\n Similarly, it prevents all other rpcs from calling blockstorage read functions unless we expect the data to be there, so that `LogError()` will only be thrown when there is an actual file system problem.\n\n I'm not completely sure if the cause is important enough to change the wording of the rpc error, that some scripts may rely on.\n If reviewers prefer it, an alternative solution would be to keep returning the current \"Block not found on disk\" error, but return it immediately instead of calling `ReadRawBlockFromDisk`, which would at least prevent the log error and also be an improvement in my opinion.\n\nACKs for top commit:\n fjahr:\n re-ACK 6a1aa510e31e8b77793341473aa5afc9d023a6e3\n achow101:\n ACK 6a1aa510e31e8b77793341473aa5afc9d023a6e3\n andrewtoth:\n re-ACK 6a1aa510e31e8b77793341473aa5afc9d023a6e3\n\nTree-SHA512: 491aef880e8298a05841c4bf8eb913ef84820d1ad5415fd17d9b441bff181959ebfdd432b5eb8347dc9c568433f9a2384ca9d84cd72c79d8a58323ca117538fe","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30410: rpc, rest: Improve block rpc error handl…"}},{"before":"8d000b85dd4b47b149c266271db46143b7692f7d","after":"fce9e065c16c7857606d154316e73f9e01c34c9a","ref":"refs/heads/master","pushedAt":"2024-09-16T19:56:08.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#28358: Drop -dbcache limit\n\nbb3b980dfd96d9a89e6b04aef2859ce0555c6807 validation: drop maximum -dbcache (Sjors Provoost)\n\nPull request description:\n\n Due to recent UTXO set growth, the current maximum value for `-dbcache` of 16GB is ~just months away from being~ insufficient (for those who wish to complete IBD with the UTXO set held in RAM).\n\n This drops the limit. It also adds a warning that it's up to users to check that they have enough RAM.\n\n Fixes #28249.\n\n ---\n\n A previous version of this PR increased the maximum to 64GB. It also made startup abort if the value provided is too high, rather than quietly round it down. But this didn't get much support.\n\nACKs for top commit:\n achow101:\n ACK bb3b980dfd96d9a89e6b04aef2859ce0555c6807\n tdb3:\n ACK bb3b980dfd96d9a89e6b04aef2859ce0555c6807\n BenWestgate:\n crACK bb3b980dfd96d9a89e6b04aef2859ce0555c6807.\n\nTree-SHA512: 8515fff468c2387a0b04bd9523ab1df46d6325738588b7550fabddbb8624817a583d95b95ea246407f9f0ff3e43e760cf7334621bec6af79710176328528a3ef","shortMessageHtmlLink":"Merge bitcoin/bitcoin#28358: Drop -dbcache limit"}},{"before":"3f66642820b4d19b3108df826a7a1beaa24649fe","after":"8d000b85dd4b47b149c266271db46143b7692f7d","ref":"refs/heads/master","pushedAt":"2024-09-16T19:47:10.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#30868: refactor: add clang-tidy `modernize-use-starts-ends-with` check\n\nfc7b507e9a595a7bf91f4e0f42b4d842af8b93f3 tidy: add clang-tidy `modernize-use-starts-ends-with` check (Roman Zeyde)\n\nPull request description:\n\nACKs for top commit:\n jonatack:\n re-ACK fc7b507e9a595a7bf91f4e0f42b4d842af8b93f3 only change since my previous ACK is the commit message\n achow101:\n ACK fc7b507e9a595a7bf91f4e0f42b4d842af8b93f3\n stickies-v:\n ACK fc7b507e9a595a7bf91f4e0f42b4d842af8b93f3\n hebasto:\n ACK fc7b507e9a595a7bf91f4e0f42b4d842af8b93f3, I have reviewed the code and it looks OK.\n\nTree-SHA512: 334e0ff91b9b108a57cdfc12ee53685b792d377e11124c7c394b8f681a8168a8d65a56c7f884555238e65e97e9ad62ede52b79219ce258979e54abdd76721df1","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30868: refactor: add clang-tidy `modernize-use-…"}},{"before":"2bf721e76a575e865518e5fe51f00ce975b70b6a","after":"3f66642820b4d19b3108df826a7a1beaa24649fe","ref":"refs/heads/master","pushedAt":"2024-09-16T19:35:17.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#30440: Have createNewBlock() return a BlockTemplate interface\n\na93c171faa7b4426823466e972c8f24260918bbf Drop unneeded nullptr check from CreateNewBlock() (Sjors Provoost)\ndd87b6dff352c408e90e3d612d773ff9562d2382 Have createNewBlock return BlockTemplate interface (Sjors Provoost)\n\nPull request description:\n\n Suggested in https://github.com/bitcoin/bitcoin/pull/29432#issuecomment-2225337100\n\n An external program that uses the Mining interface may need quick access to some information in the block template, while it can wait a bit longer for the full raw transaction data.\n\n This would be the case for a Stratum v2 Template Provider which needs to send a [NewTemplate](https://github.com/stratum-mining/sv2-spec/blob/main/07-Template-Distribution-Protocol.md#72-newtemplate-server---client) message message (which doesn't include transactions) as quickly as possible. It does not include the serialized block transactions.\n\nACKs for top commit:\n achow101:\n ACK a93c171faa7b4426823466e972c8f24260918bbf\n ryanofsky:\n Code review ACK a93c171faa7b4426823466e972c8f24260918bbf. Since last review, just rebased with no changes or conflicts\n itornaza:\n Code review ACK a93c171faa7b4426823466e972c8f24260918bbf\n TheCharlatan:\n Re-ACK a93c171faa7b4426823466e972c8f24260918bbf\n\nTree-SHA512: 17cb61eb5548e9d4a69e34dd732f68a06cde2ad3d82c8339efee704c7860d5de144d93b23d6ecd6ee4ec205844e5560ad0f6d3917822fa75bb8e640c5f51af9a","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30440: Have createNewBlock() return a BlockTemp…"}},{"before":"c38e9993de703f86cf67da1ab0b9f6c6039a7584","after":"2bf721e76a575e865518e5fe51f00ce975b70b6a","ref":"refs/heads/master","pushedAt":"2024-09-16T17:59:41.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"glozow","name":"Gloria Zhao","path":"/glozow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25183001?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2p\n\na97f43d63a6e835bae20b0bc5d536df98f55d8a0 fuzz: Add harness for p2p headers sync (marcofleon)\na0eaa4749fe0f755e113eee70dee1989bdc07ad5 Add FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION in PoW check (marcofleon)\na3f6f5acd89f2f5bb136ec247f259d212e8944d0 build: Automatically define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION for fuzz builds (marcofleon)\n0c02d4b2bdbc7a3fc3031a63b3b16bafa669d51c net_processing: Make MAX_HEADERS_RESULTS a PeerManager option (marcofleon)\n\nPull request description:\n\n This PR reopens https://github.com/bitcoin/bitcoin/pull/28043. It's a regression fuzz test for https://github.com/bitcoin/bitcoin/pull/26355 and [a couple bugs](https://github.com/bitcoin/bitcoin/pull/25717/commits/ed6cddd98e32263fc116a4380af6d66da20da990) that were addressed in https://github.com/bitcoin/bitcoin/pull/25717. This should help us move forward with the [removal of mainnet checkpoints](https://github.com/bitcoin/bitcoin/pull/25725).\n\n It seems like the main concern in https://github.com/bitcoin/bitcoin/pull/28043 was the global mock function for proof of work. This PR aims to be an improvement by replacing the previous approach with a fuzz build configured using `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION`. This ensures that the simplified test code will never be in a release binary. If we agree this is the way to go, there are some other places (for future targets) where this method could be used.\n\n In this target, PoW isn't being tested, so the goal is to bypass the check and let the fuzzer do its thing. In the other harnesses where PoW is actually being fuzzed, `CheckProofOfWork` is now `CheckProofOfWorkImpl`. So, the only change to that function is in the name.\n\n More about `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION` can be found at https://llvm.org/docs/LibFuzzer.html#fuzzer-friendly-build-mode and https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md#d-modifying-the-target.\n\nACKs for top commit:\n naumenkogs:\n ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0\n dergoegge:\n reACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0\n instagibbs:\n tested ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0\n brunoerg:\n ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0\n\nTree-SHA512: 60b0bc6aadd8ca4c39db9cbba2da2debaaf68afcb6a8dd75c1ce48ca9e3996948fda8020930b6771a424e0f7c41b0b1068db4aa7dbe517f8fc152f1f712058ad","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2p"}},{"before":"37679b856ce183ec256c12a680b93ad53ed94da6","after":"c38e9993de703f86cf67da1ab0b9f6c6039a7584","ref":"refs/heads/master","pushedAt":"2024-09-16T17:41:14.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"glozow","name":"Gloria Zhao","path":"/glozow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25183001?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30286: cluster mempool: optimized candidate search\n\n9ad2fe7e69e9e69949ebbb280a15756dc3301f09 clusterlin: only start/use search when enough iterations left (Pieter Wuille)\nbd044356edb6c8978df600f33b0073f772ee047c clusterlin: improve heuristic to decide split transaction (optimization) (Pieter Wuille)\n71f26293988019d2035bcc55af7b440b494b56bc clusterlin: include topological pot subsets automatically (optimization) (Pieter Wuille)\ne20fda77a2da1da3deb273d83700a0b7139422ab clusterlin: reduce computation of unnecessary pot sets (optimization) (Pieter Wuille)\n6060a948caf6dbc7505658d6cac750e25698eaf9 clusterlin bench: add example hard cluster benchmarks (Pieter Wuille)\n2965fbf203f0b244814d7159381a2e9472bc1f97 clusterlin: track upper bound potential set for work items (optimization) (Pieter Wuille)\n9e43e4ce109e98a1ea3f54bbb4de86bc1b92ae4f clusterlin: use feerate-sorted depgraph in SearchCandidateFinder (Pieter Wuille)\nb80e6dfe780b3678bb41f2d9d63816f097529b2e clusterlin: add reordering support for DepGraph (Pieter Wuille)\n85a285a306100d1815c4ad0f4e52ccbcae8b0fbc clusterlin: separate initial search entries per component (optimization) (Pieter Wuille)\ne4faea9ca79ce1f277d8499962c7de64f26b0436 clusterlin bench: have low/high iter benchmarks instead of per-iter (Pieter Wuille)\n\nPull request description:\n\n Part of cluster mempool: #30289\n\n Depends on #30126, and was split off from it.\n\n This improves the candidate search algorithm introduced in the previous PR with a variety of optimizations.\n\n The resulting search algorithm largely follows Section 2 of [How to linearize your cluster](https://delvingbitcoin.org/t/how-to-linearize-your-cluster/303#h-2-finding-high-feerate-subsets-5), though with a few changes:\n * Connected component analysis is performed inside the search algorithm (creating initial work items per component for each candidate), rather than once at a higher level. This duplicates some work but is significantly simpler in implementation.\n * No ancestor-set based presplitting inside the search is performed; instead, the `best` value is initialized with the best topologically valid set known to the LIMO algorithm before search starts: the better one out of the highest-feerate remaining ancestor set, and the highest-feerate prefix of remaining transactions in `old_linearization`.\n * Work items are represented using an included set *inc* and an undefined set *und*, rather than included and excluded.\n * Potential sets *pot* are not computed for work items with empty *inc*.\n\n At a high level, the only missing optimization from that post is bottleneck analysis; my thinking is that it only really helps with clusters that are already relatively cheap to linearize (doing so would need to be done at a higher level, not inside the search algorithm).\n\n ---\n\n Overview of the impact of each commit here on linearize performance:\n * **[clusterlin bench: have low/high iter benchmarks instead of per-iter](https://github.com/bitcoin/bitcoin/pull/30286/commits/21a184db63bd13cf0c2dff9e6e61ca85f2ff4454)**: no impact\n * **[separate initial search entries per component (optimization)](https://github.com/bitcoin/bitcoin/pull/30286/commits/c84c5c86ba6c12ce11e997d0c59d60694c667488)**: reduce iterations, increase start-up cost\n * **[add reordering support for DepGraph](https://github.com/bitcoin/bitcoin/pull/30286/commits/019ff2960976b677d91bab47e75be6ed180b37a3)**: no impact\n * **[use feerate-sorted depgraph in SearchCandidateFinder](https://github.com/bitcoin/bitcoin/pull/30286/commits/8e27dd5a220237da5d362376db6406e47f063776)**: typically reduce iterations, increase start-up cost\n * **[track upper bound potential set for work items](https://github.com/bitcoin/bitcoin/pull/30286/commits/781e0fb3aa5cbd0983b01547481eefa0804dfb5b)**: reduce iterations, increase cost per iteration\n * **[reduce computation of unnecessary pot sets](https://github.com/bitcoin/bitcoin/pull/30286/commits/9fe834fa979c8ab038aec57dac2f468ca70c41a9)**: reduce cost per iteration\n * **[include topological pot subsets automatically](https://github.com/bitcoin/bitcoin/pull/30286/commits/30612710a4e5fc8c950bd1ff4ab9fa843b59132d)**: reduce iterations, increase cost per iteration\n * **[improve heuristic to decide split transaction](https://github.com/bitcoin/bitcoin/pull/30286/commits/1880c00ab1661dbfc867f69e7556b28bc3cf7a42)**: typically reduce iterations, increase cost per iteration\n * **[only start/use search when enough iterations left](https://github.com/bitcoin/bitcoin/pull/30286/commits/12760a57b3a6cd1aeb3b7532311f648de2b45aa4)**: just account for start-up cost as equivalent iterations\n\nACKs for top commit:\n sdaftuar:\n ACK 9ad2fe7e69e9e69949ebbb280a15756dc3301f09\n instagibbs:\n reACK 9ad2fe7e69e9e69949ebbb280a15756dc3301f09\n glozow:\n reACK 9ad2fe7e69e, just have a question about the docs\n\nTree-SHA512: 108bcbb0676f36071eb83954059b5f3d6646c745015b644a2a5d7f5a8ac9424c2d01d339fa6318a3aff4cf313308e85bb80b0090899720a3fcba027b8025590a","shortMessageHtmlLink":"Merge bitcoin/bitcoin#30286: cluster mempool: optimized candidate search"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxOToxNzowMC4wMDAwMDBazwAAAAS8TFv0","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxOToxNzowMC4wMDAwMDBazwAAAAS8TFv0","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xNlQxNzo0MToxNC4wMDAwMDBazwAAAAS3t5jh"}},"title":"Activity · bitcoin-core/gui"}