{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":739676816,"defaultBranch":"master","name":"bitcoin","ownerLogin":"ssuchichen","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-01-06T07:35:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/155805612?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1704526540.6848772","currentOid":""},"activityList":{"items":[{"before":"27a770b34b8f1dbb84760f442edb3e23a0c2420b","after":"d79ea809d28197b1b4e3748aa1715272b53601d0","ref":"refs/heads/master","pushedAt":"2024-08-20T02:12:31.000Z","pushType":"push","commitsCount":84,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30647: Move maximum timewarp attack threshold back to 600s from 7200s\n\n16e95bda86302af20cfb314a2c0252256d01f750 Move maximum timewarp attack threshold back to 600s from 7200s (Matt Corallo)\n\nPull request description:\n\n In 6bfa26048dbafb91e9ca63ea8d3960271e798098 the testnet4 timewarp attack fix block time variation was increased from the Great Consensus Cleanup value of 600s to 7200s on the thesis that this allows miners to always create blocks with the current time. Sadly, doing so does allow for some nonzero inflation, even if not a huge amount.\n\n While it could be that some hardware ignores the timestamp provided to it over Stratum and forces the block header timestamp to the current time, I'm not aware of any such hardware, and it would also likely suffer from random invalid blocks due to relying on NTP anyway, making its existence highly unlikely.\n\n This leaves the only concern being pools, but most of those rely on work generated by Bitcoin Core (in one way or another, though when spy mining possibly not), and it seems likely that they will also not suffer any lost work. While its possible that a pool does generate invalid work due to spy mining or otherwise custom logic, it seems unlikely that a substantial portion of hashrate would do so, making the difference somewhat academic (any pool that screws this up will only do so once and the network would come out just fine).\n\n Further, while we may end up deciding these assumptions were invalid and we should instead use 7200s, it seems prudent to try with the value we \"want\" on testnet4, giving us the ability to learn if the compatibility concerns are an issue before we go to mainnet.\n\nACKs for top commit:\n fjahr:\n tACK 16e95bda86302af20cfb314a2c0252256d01f750\n achow101:\n ACK 16e95bda86302af20cfb314a2c0252256d01f750\n murchandamus:\n crACK 16e95bda86302af20cfb314a2c0252256d01f750\n\nTree-SHA512: ae46d03b728b6e23cb6ace64c9813bc01c01e38dd7f159cf0fab53b331ef84b3b811edab225453ccdfedb53b242f55b0efd69829782657490fe393d24dacbeb2","shortMessageHtmlLink":"Merge bitcoin#30647: Move maximum timewarp attack threshold back to 6…"}},{"before":"ff100bb549f21dc0136af9241fd2de6daffb19a2","after":"27a770b34b8f1dbb84760f442edb3e23a0c2420b","ref":"refs/heads/master","pushedAt":"2024-08-08T06:10:13.000Z","pushType":"push","commitsCount":383,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#28280: Don't empty dbcache on prune flushes: >30% faster IBD\n\n589db872e116779ab9cae693171ac8a8c02d9923 validation: don't erase coins cache on prune flushes (Andrew Toth)\n0e8918755f725b6269ed2be5a0b46f1611233515 Add linked-list test to CCoinsViewCache::SanityCheck (Pieter Wuille)\n05cf4e18758618bb493d26014d3a9c89bf28d898 coins: move Sync logic to CoinsViewCacheCursor (Andrew Toth)\n7825b8b9aeceb4ff607650cdc9c49e5de9c7719f coins: pass linked list of flagged entries to BatchWrite (Andrew Toth)\na14edada8a051e280af6fedd5130be40247e2d7a test: add cache entry linked list tests (Andrew Toth)\n24ce37cb867b95e86d9fd4e50858d64ee8a59abf coins: track flagged cache entries in linked list (Andrew Toth)\n58b7ed156d5993b69375bb455b03bd8b17f64fa4 coins: call ClearFlags in CCoinsCacheEntry destructor (Andrew Toth)\n8bd3959feaa0e71585bc5e0976f584fb06ee6d14 refactor: require self and sentinel parameters for AddFlags (Andrew Toth)\n75f36d241d2a344c5c4ce2c80250bdde91b3295e refactor: add CoinsCachePair alias (Andrew Toth)\nf08faeade2f99ae1de6f3c481697541cc16186c7 refactor: move flags to private uint8_t and rename to m_flags (Andrew Toth)\n4e4fb4cbabcc10e723534f5f80f3e3cf09f6ca50 refactor: disallow setting flags in CCoinsCacheEntry constructors (Andrew Toth)\n8737c0cefa6ec49a4d17d9bef9e5e1a7990af1ac refactor: encapsulate flags setting with AddFlags and ClearFlags (Andrew Toth)\n9715d3bf1e4013476539f1523a6b54d2055c32c6 refactor: encapsulate flags get access for all other checks (Andrew Toth)\ndf34a94e57659c31873c26c86a8de5a032400061 refactor: encapsulate flags access for dirty and fresh checks (Andrew Toth)\n\nPull request description:\n\n Since https://github.com/bitcoin/bitcoin/pull/17487 we no longer need to clear the coins cache when syncing to disk. A warm coins cache significantly speeds up block connection, and only needs to be fully flushed when nearing the `dbcache` limit.\n\n For frequent pruning flushes there's no need to empty the cache and kill connect block speed. However, simply using `Sync` in place of `Flush` actually slows down a pruned full IBD with a high `dbcache` value. This is because as the cache grows, sync takes longer since every coin in the cache is scanned to check if it's dirty. For frequent prune flushes and a large cache this constant scanning starts to really slow IBD down, and just emptying the cache on every prune becomes faster.\n\n To fix this, we can add two pointers to each cache entry and construct a doubly linked list of dirty entries. We can then only iterate through all dirty entries on each `Sync`, and simply clear the pointers after.\n\n With this approach a full IBD with `dbcache=16384` and `prune=550` was 32% faster than master. For default `dbcache=450` speedup was ~9%. All benchmarks were run with `stopatheight=800000`.\n\n | | prune | dbcache | time | max RSS | speedup |\n |-----------:|----------:|------------:|--------:|-------------:|--------------:|\n | master | 550 | 16384 | 8:52:57 | 2,417,464k | - |\n | branch | 550 | 16384 | 6:01:00 | 16,216,736k | 32% |\n | branch | 550 | 450 | 8:05:08 | 2,818,072k | 8.8% |\n | master | 10000 | 5000 | 8:19:59 | 2,962,752k | - |\n | branch | 10000 | 5000| 5:56:39 | 6,179,764k | 28.8% |\n | master | 0 | 16384 | 4:51:53 | 14,726,408k | - |\n | branch | 0 | 16384 | 4:43:11 | 16,526,348k | 2.7% |\n | master | 0 | 450 | 7:08:07 | 3,005,892k | - |\n | branch | 0 | 450 | 6:57:24 | 3,013,556k |2.6%|\n\n While the 2 pointers add memory to each cache entry, it did not slow down IBD. For non-pruned IBD results were similar for this branch and master. When I performed the initial IBD, the full UTXO set could be held in memory when using the max `dbcache` value. For non-pruned IBD with max `dbcache` to tip ended up using 12% more memory, but it was also 2.7% faster somehow. For smaller `dbcache` values the `dbcache` limit is respected so does not consume more memory, and the potentially more frequent flushes were not significant enough to cause any slowdown.\n\n For reviewers, the commits in order do the following:\n First 4 commits encapsulate all accesses to `flags` on cache entries, and then the 5th makes `flags` private.\n Commits `refactor: add CoinsCachePair alias` to `coins: call ClearFlags in CCoinsCacheEntry destructor` create the linked list head nodes and cache entry self references and pass them into `AddFlags`.\n Commit `coins: track flagged cache entries in linked list` actually adds the entries into a linked list when they are flagged DIRTY or FRESH and removes them from the linked list when they are destroyed or the flags are cleared manually. However, the linked list is not yet used anywhere.\n Commit `test: add cache entry linked list tests` adds unit tests for the linked list.\n Commit `coins: pass linked list of flagged entries to BatchWrite` uses the linked list to iterate through DIRTY entries instead of using the entire coins cache.\n Commit `validation: don't erase coins cache on prune flushes` uses `Sync` instead of `Flush` for pruning flushes, so the cache is no longer cleared.\n\n Inspired by [this comment](https://github.com/bitcoin/bitcoin/pull/15265#issuecomment-457720636).\n\n Fixes https://github.com/bitcoin/bitcoin/issues/11315.\n\nACKs for top commit:\n paplorinc:\n ACK 589db872e116779ab9cae693171ac8a8c02d9923\n sipa:\n reACK 589db872e116779ab9cae693171ac8a8c02d9923\n achow101:\n ACK 589db872e116779ab9cae693171ac8a8c02d9923\n mzumsande:\n re-ACK 589db872e116779ab9cae693171ac8a8c02d9923\n\nTree-SHA512: 23b2bc01c83edacb5b39aa60bb0b766de9a74ce17f0c59bf13b97b4328a7b758ad9aff6581c3ca88e2973f7658380651530d497444f48d6e22ea0bfc51cc921d","shortMessageHtmlLink":"Merge bitcoin#28280: Don't empty dbcache on prune flushes: >30% faste…"}},{"before":"323b0acfcb9380ce4b3c12a3d0b341d7bb3bfe08","after":"ff100bb549f21dc0136af9241fd2de6daffb19a2","ref":"refs/heads/master","pushedAt":"2024-07-15T06:16:07.000Z","pushType":"push","commitsCount":197,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin-core/gui#825: Show maximum mempool size in information window\n\n4a028cf54c0502bc9ba0804bf1ae413b20a007cb gui: show maximum mempool size in information window (Sebastian Falbesoner)\nbbde6ffefea9587b07a9f8d4043b2dd23ef8c3c5 add node interface method for getting maximum mempool size (Sebastian Falbesoner)\n\nPull request description:\n\n This PR adds the maximum mempool size to the information window (Menu \"Window\" -> \"Information\" -> section \"Memory Pool\" -> line \"Memory usage\").\n\n master:\n\n ![image](https://github.com/bitcoin-core/gui/assets/91535/157e92f5-7d06-4303-b4ef-bcdfac5527e3)\n\n PR:\n\n ![image](https://github.com/bitcoin-core/gui/assets/91535/796322aa-9f16-4b09-9893-bf52a3898a5c)\n\nACKs for top commit:\n MarnixCroes:\n tested ACK 4a028cf54c0502bc9ba0804bf1ae413b20a007cb\n pablomartin4btc:\n tACK 4a028cf54c0502bc9ba0804bf1ae413b20a007cb\n luke-jr:\n tACK 4a028cf54c0502bc9ba0804bf1ae413b20a007cb & in Knots\n hebasto:\n ACK 4a028cf54c0502bc9ba0804bf1ae413b20a007cb, tested on Ubuntu 24.04.\n\nTree-SHA512: c10fb23605d060cea19a86d11822fc4d12496b19547870052aace503670e62e4c4e19ae4c2c4fbf7420a472adb071c9ddebe82447e0cfbce5a6fb9fcd7b9eda3","shortMessageHtmlLink":"Merge bitcoin-core/gui#825: Show maximum mempool size in information …"}},{"before":"327f08bb0cd91a22249395adeb34549e3c86ca76","after":"323b0acfcb9380ce4b3c12a3d0b341d7bb3bfe08","ref":"refs/heads/master","pushedAt":"2024-06-26T04:19:02.000Z","pushType":"push","commitsCount":288,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30200: Introduce Mining interface\n\na9716c53f05082d6d89ebea51a46d4404efb12d7 rpc: call IsInitialBlockDownload via miner interface (Sjors Provoost)\ndda0b0834faf7be7e8938bf63e7bb01cd54a416a rpc: minize getTipHash() calls in gbt (Sjors Provoost)\n7b4d3249ced93ec5986500e43b324005ed89502f rpc: call processNewBlock via miner interface (Sjors Provoost)\n9e228351e761d8d24413bbc4ac1610b4f3dec2bf rpc: getTransactionsUpdated via miner interface (Sjors Provoost)\n64ebb0f97178687517c2060bf6b9931064607888 Always pass options to BlockAssembler constructor (Sjors Provoost)\n4bf2e361da1964f7c278b4939967a0e5afde20b0 rpc: call CreateNewBlock via miner interface (Sjors Provoost)\n404b01c436122b951e9e06ed26d79dba4651685e rpc: getblocktemplate getTipHash() via Miner interface (Sjors Provoost)\nd8a3496b5ad27bea4c79ea0344f595cc1b95f0d3 rpc: call TestBlockValidity via miner interface (Sjors Provoost)\n8ecb6816781c7c7f423b501cbb2de3abd7250119 Introduce Mining interface (Sjors Provoost)\n\nPull request description:\n\n Introduce a `Mining` interface for the `getblocktemplate`, `generateblock` and other mining RPCs to use now, and for Stratum v2 to use later.\n\n Suggested here: https://github.com/bitcoin/bitcoin/pull/29346#issuecomment-2108528652\n\n The selection of methods added to the interface is mostly based on what the Template Provider in #29432 uses. It could be expanded further so that `rpc/mining.cpp` no longer needs `EnsureMemPool` and `EnsureChainman`.\n\n This PR should be a pure refactor.\n\nACKs for top commit:\n tdb3:\n re ACK a9716c53f05082d6d89ebea51a46d4404efb12d7\n itornaza:\n Code review and std-tests ACK a9716c53f05082d6d89ebea51a46d4404efb12d7\n ryanofsky:\n Code review ACK a9716c53f05082d6d89ebea51a46d4404efb12d7 with one minor suggestion in case you update. Only changes since last review were other small changes to the interface.\n\nTree-SHA512: cf97f87d6e9ed89da3835a0730da3b24a7b14c8605ea221149103a5915e79598cf082a95f2bc88e33f1c450e3d4aad88aed1163a29195acca88bcace055af724","shortMessageHtmlLink":"Merge bitcoin#30200: Introduce Mining interface"}},{"before":"842f7fdf786fcbbdf3df40522945813404f8a397","after":"327f08bb0cd91a22249395adeb34549e3c86ca76","ref":"refs/heads/master","pushedAt":"2024-05-27T01:48:42.000Z","pushType":"push","commitsCount":262,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#30169: fuzz: Fix wallet_bdb_parser stdlib error matching\n\nfac72985292b516919a216d9a78cf84418cd7f96 fuzz: Fix wallet_bdb_parser stdlib error matching (MarcoFalke)\n\nPull request description:\n\n The stdlib error string is an implementation detail and can not be relied upon.\n\n Ref: `libc++abi: terminating due to uncaught exception of type std::runtime_error: AutoFile::read: end of file: unspecified iostream_category error`\n\nACKs for top commit:\n achow101:\n ACK fac72985292b516919a216d9a78cf84418cd7f96\n\nTree-SHA512: 588acc71a05d97855d6bb65380411e8486692536434eadee7697de09f80b128ff2f90a31fd0e8384d084b554d2f3978efd076082e070e721cf05b07c94cc83b1","shortMessageHtmlLink":"Merge bitcoin#30169: fuzz: Fix wallet_bdb_parser stdlib error matching"}},{"before":"2a07c4662d7266158d47f79fa2433ab22e22c907","after":"842f7fdf786fcbbdf3df40522945813404f8a397","ref":"refs/heads/master","pushedAt":"2024-05-01T07:55:20.000Z","pushType":"push","commitsCount":99,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?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 bitcoin#29645: doc: update release-process.md"}},{"before":"256e1703197fdddd78bc6d659431cd0fc3b63cde","after":"2a07c4662d7266158d47f79fa2433ab22e22c907","ref":"refs/heads/master","pushedAt":"2024-04-25T07:31:58.000Z","pushType":"push","commitsCount":38,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29757: feefrac: avoid explicitly computing diagram; compare based on chunks\n\nb22901dfa9cc3af94bf13163a28300eb1ab25b22 Avoid explicitly computing diagram; compare based on chunks (Pieter Wuille)\n\nPull request description:\n\n This merges the `BuildDiagramFromChunks` and `CompareFeeRateDiagram` introduced in #29242 into a single `CompareChunks` function, which operates on sorted chunk data rather than diagrams, instead computing the diagram on the fly.\n\n This avoids the need for the construction of an intermediary diagram object, and removes the slightly arbitrary \"all diagrams must start at (0, 0)\" requirement.\n\n Not a big deal, but I think the result is a bit cleaner and not really more complicated.\n\nACKs for top commit:\n glozow:\n reACK b22901d\n instagibbs:\n reACK https://github.com/bitcoin/bitcoin/pull/29757/commits/b22901dfa9cc3af94bf13163a28300eb1ab25b22\n\nTree-SHA512: ca37bdf61d9a9cb5435f4da73e97ead33bf65828ad9af49b87336b1ece70db8ced1c21f517fc6eb6d616311c91f3da75ecae6b9bd42547133e3a3c5320b7816d","shortMessageHtmlLink":"Merge bitcoin#29757: feefrac: avoid explicitly computing diagram; com…"}},{"before":"312f54278fd972ba3557c6a5b805fd244a063959","after":"256e1703197fdddd78bc6d659431cd0fc3b63cde","ref":"refs/heads/master","pushedAt":"2024-04-23T01:39:19.000Z","pushType":"push","commitsCount":42,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29777: test: refactor: introduce and use `calculate_input_weight` helper\n\n6d91cb781c30966963f28e7577c7aa3829fa9390 test: add unit tests for `calculate_input_weight` (Sebastian Falbesoner)\nf81fad5e0f3be1f7aed59f9da00396c75c2a6406 test: introduce and use `calculate_input_weight` helper (Sebastian Falbesoner)\n\nPull request description:\n\n Rather than manually estimating an input's weight by adding up all the involved components (fixed-size skeleton, compact-serialized lengths, and the actual scriptSig / witness stack items) we can simply take use of the serialization classes `CTxIn` / `CTxInWitness` instead, to achieve the same with significantly less code.\n\n The new helper is used in the functional tests rpc_psbt.py and wallet_send.py, where the previous manual estimation code was\n duplicated. Unit tests are added in the second commit.\n\nACKs for top commit:\n kevkevinpal:\n tACK [6d91cb7](https://github.com/bitcoin/bitcoin/pull/29777/commits/6d91cb781c30966963f28e7577c7aa3829fa9390)\n QureshiFaisal:\n tACK [6d91cb7](https://github.com/bitcoin/bitcoin/pull/29777/commits/6d91cb781c30966963f28e7577c7aa3829fa9390)\n achow101:\n ACK 6d91cb781c30966963f28e7577c7aa3829fa9390\n AngusP:\n tACK 6d91cb781c30966963f28e7577c7aa3829fa9390\n rkrux:\n tACK [6d91cb7](https://github.com/bitcoin/bitcoin/pull/29777/commits/6d91cb781c30966963f28e7577c7aa3829fa9390)\n\nTree-SHA512: 04424e4d94d0e13745a9c11df2dd3697c98552bbb0e792c4af67ecbb66060adc3cc0cefc202cdee2d9db0baf85b8bedf2eb339ac4b316d986b5f10f6b70c5a33","shortMessageHtmlLink":"Merge bitcoin#29777: test: refactor: introduce and use `calculate_inp…"}},{"before":"0de63b8b46eff5cda85b4950062703324ba65a80","after":"312f54278fd972ba3557c6a5b805fd244a063959","ref":"refs/heads/master","pushedAt":"2024-04-17T07:29:51.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29726: assumeutxo: Fix -reindex before snapshot was validated\n\nb7ba60f81a33db876f88b5f9af1e5025d679b5be test: add coverage for -reindex and assumeutxo (Martin Zumsande)\ne57f951805b429534c75ec1e6b2a1f16ae24efb5 init, validation: Fix -reindex option with an existing snapshot (Martin Zumsande)\n\nPull request description:\n\n In c711ca186f8d8a28810be0beedcb615ddcf93163 logic was introduced that `-reindex` and `-reindex-chainstate` will delete the snapshot chainstate.\n This doesn't work currently, instead of deleting the snapshot chainstate the node crashes with an assert (this can be triggered by applying the added test commit on master).\n Fix this, and another bug that would prevent the new active chainstate from having a mempool after `-reindex` has deleted the snapshot (also covered by the test).\n\nACKs for top commit:\n fjahr:\n re-ACK b7ba60f81a33db876f88b5f9af1e5025d679b5be\n hernanmarino:\n crACK b7ba60f81a33db876f88b5f9af1e5025d679b5be . Good fix\n BrandonOdiwuor:\n re-ACK b7ba60f81a33db876f88b5f9af1e5025d679b5be\n byaye:\n Tested ACK b7ba60f81a33db876f88b5f9af1e5025d679b5be\n\nTree-SHA512: c168f36997d7677d590af37b10427870f5d30123abf1c76032a16661e486735373bfa7e049e6aca439526fbcb6d619f970bf9d042196c851bf058a75a32fafdc","shortMessageHtmlLink":"Merge bitcoin#29726: assumeutxo: Fix -reindex before snapshot was val…"}},{"before":"8f1185feec3efdb8d0e3f6b7d0aee67bbdc3d653","after":"0de63b8b46eff5cda85b4950062703324ba65a80","ref":"refs/heads/master","pushedAt":"2024-04-13T04:49:23.000Z","pushType":"push","commitsCount":50,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29849: Fix typos in `subprocess.hpp`\n\n13f5391bbb45cd8aebc6ae70cad08aff632ebd55 Fix typos in `subprocess.hpp` (Hennadii Stepanov)\n\nPull request description:\n\n Resolves one item in the https://github.com/bitcoin/bitcoin/pull/28981#pullrequestreview-1991272752:\n > - Remove linter exclusions and fix all issues.\n\n Based on upstream https://github.com/arun11299/cpp-subprocess/pull/101.\n\nACKs for top commit:\n fanquake:\n ACK 13f5391bbb45cd8aebc6ae70cad08aff632ebd55\n\nTree-SHA512: 2ee27a5b7d1ba6f47a5148add155c918eadaaffb94a4b5dd3edea00e63440b87291c559361bf25a8db1567debff78cf7e9466dc34f14331ca1d426994837df93","shortMessageHtmlLink":"Merge bitcoin#29849: Fix typos in subprocess.hpp"}},{"before":"71b63195b30b2fa0dff20ebb262ce7566dd5d673","after":"8f1185feec3efdb8d0e3f6b7d0aee67bbdc3d653","ref":"refs/heads/master","pushedAt":"2024-04-06T03:32:09.000Z","pushType":"push","commitsCount":153,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29805: test: Fix debug recommendation in argsman_tests\n\n561a650e0f669159699224ddd4eb5b1c91cf9ac3 test: Fix debug recommendation in argsman_tests (Fabian Jahr)\n\nPull request description:\n\n There are recommendations in the `argsman_tests` comments on how to re-run and debug a test failure to see if it reflects an expected or unexpected change. The command tries to run a test in `util_tests` but this is in `argsman_tests` so the command doesn't work with just copy+paste. I didn't investigate further but I suspect that these tests were moved between files.\n\nACKs for top commit:\n fanquake:\n ACK 561a650e0f669159699224ddd4eb5b1c91cf9ac3\n\nTree-SHA512: b3bb94ba1635c9455149b455f2b30ee37a8067a6242339531ab54d428177a288da29a4a10702652305eb34aa7638f51dad35fa6b0e7b74617e445327b8c4c053","shortMessageHtmlLink":"Merge bitcoin#29805: test: Fix debug recommendation in argsman_tests"}},{"before":"5d045c31a537b417fe840271c6ed961f1d5cb130","after":"71b63195b30b2fa0dff20ebb262ce7566dd5d673","ref":"refs/heads/master","pushedAt":"2024-03-22T01:52:30.000Z","pushType":"push","commitsCount":37,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29651: guix: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a\n\ncf5faf73c99199e7476b8c86358095300544d1bd guix: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a (fanquake)\n\nPull request description:\n\n This includes a commit to fix building LLVM 17 on riscv64, see https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4e26331a5ee87928a16888c36d51e270f0f10f90.\n\n Followup to discussion in https://github.com/bitcoin/bitcoin/pull/28880#issuecomment-1843313196.\n\n If you don't have riscv64 hardware, this can be tested with the following:\n ```bash\n # observe failure when cross-compiling using our current time-machine\n guix time-machine --commit=d5ca4d4fd713a9f7e17e074a1e37dda99bbb09fc -- build --target=riscv64-linux-gnu llvm\n ....\n riscv64-linux-gnu-ld: CMakeFiles/dsymutil.dir/dsymutil.cpp.o: undefined reference to symbol '__atomic_fetch_and_1@@LIBATOMIC_1.0'\n riscv64-linux-gnu-ld: /gnu/store/i4ga0pnr1b74bir2bjyp8mcrrbsvk7d3-gcc-cross-riscv64-linux-gnu-11.3.0-lib/riscv64-linux-gnu/lib/libatomic.so.1:\n error adding symbols: DSO missing from command line\n collect2: error: ld returned 1 exit status\n\n # build success when using the new time-machine\n guix time-machine --commit=dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a -- build --target=riscv64-linux-gnu llvm\n ....\n grafting '/gnu/store/7y0j0y8jaz4mjx2nz0y42wdnxxjp6id6-llvm-17.0.6-opt-viewer' -> '/gnu/store/8xvahrrjscbprh6cjj0qp5bm9mm78wwa-llvm-17.0.6-opt-viewer'...\n grafting '/gnu/store/bjhw648bz7ijd2p9hgzzdbw1q8hpagk8-llvm-17.0.6' -> '/gnu/store/x50qi8i2ywgpx6azv4k55ms0w5xjxxg5-llvm-17.0.6'...\n successfully built /gnu/store/q9xvk8gzzvb4dxfzf6yi5164zd0d1vj2-llvm-17.0.6.drv\n ```\n\n Also includes at least:\n Linux Headers 6.1.67 -> 6.1.80\n\nACKs for top commit:\n TheCharlatan:\n ACK cf5faf73c99199e7476b8c86358095300544d1bd\n hebasto:\n ACK cf5faf73c99199e7476b8c86358095300544d1bd, tested on x86_64 hardware as described in the PR description.\n\nTree-SHA512: b49d4f90effeec666b12b5447a24c90315b82675cfc166bc1230ac173134bab6b277fc7e064bbb75e990275165b2b27d88e4ec1cdeea4750541ec6443cb50f41","shortMessageHtmlLink":"Merge bitcoin#29651: guix: bump time-machine to dc4842797bfdc5f9f3f5f…"}},{"before":"fce53f132e1b3f2c8bf1530dca18f3da136f08ab","after":"5d045c31a537b417fe840271c6ed961f1d5cb130","ref":"refs/heads/master","pushedAt":"2024-03-19T03:29:38.000Z","pushType":"push","commitsCount":172,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#28950: RPC: Add maxfeerate and maxburnamount args to submitpackage\n\n38f70ba6ac86fb96c60571d2e1f316315c1c73cc RPC: Add maxfeerate and maxburnamount args to submitpackage (Greg Sanders)\n\nPull request description:\n\n Resolves https://github.com/bitcoin/bitcoin/issues/28949\n\n I couldn't manage to do it very cleanly outside of (sub)package evaluation itself, since it would change the current interface very heavily. Instead I threaded through the max fee argument and used that directly via ATMPArgs. From that perspective, this is somewhat a reversion from https://github.com/bitcoin/bitcoin/pull/19339. In a post-cluster mempool world, these checks could be consolidated to right after the given (ancestor) package is linearized/chunked, by just checking the feerate of the top chunk and rejecting the submission entirely if the top chunk is too high.\n\n The implication here is that subpackages can be submitted to the mempool prior to hitting this new fee-based error condition.\n\nACKs for top commit:\n ismaelsadeeq:\n Re-ACK https://github.com/bitcoin/bitcoin/commit/38f70ba6ac86fb96c60571d2e1f316315c1c73cc 👍🏾\n glozow:\n ACK 38f70ba6ac with some non-blocking nits\n murchandamus:\n LGTM, code review ACK 38f70ba6ac86fb96c60571d2e1f316315c1c73cc\n\nTree-SHA512: 38212aa9de25730944cee58b0806a3d37097e42719af8dd7de91ce86bb5d9770b6f7c37354bf418bd8ba571c52947da1dcdbb968bf429dd1dbdf8715315af18f","shortMessageHtmlLink":"Merge bitcoin#28950: RPC: Add maxfeerate and maxburnamount args to su…"}},{"before":"2649e655b9203d6d08cb1a26fa4846f2c403b297","after":"fce53f132e1b3f2c8bf1530dca18f3da136f08ab","ref":"refs/heads/master","pushedAt":"2024-03-03T10:45:20.000Z","pushType":"push","commitsCount":23,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29528: build: move sha256_sse4 into libbitcoin_crypto_base\n\n521693378b86aaae5af1646c3a18a902cc835c69 build: move sha256_sse4 into libbitcoin_crypto_base (fanquake)\n\nPull request description:\n\n Followup to discussion in #29407.\n Drops `LIBBITCOIN_CRYPTO_SSE4`.\n\nACKs for top commit:\n theuni:\n utACK 521693378b86aaae5af1646c3a18a902cc835c69.\n hebasto:\n ACK 521693378b86aaae5af1646c3a18a902cc835c69.\n TheCharlatan:\n ACK 521693378b86aaae5af1646c3a18a902cc835c69\n\nTree-SHA512: 44889340b7647409a439ebe97012f66383e0e5f3d99200ffd55c124e91d3ed164f02b736ff9dafca2d9ba7e365fcdc79aff054471d4bc240d035b58659407420","shortMessageHtmlLink":"Merge bitcoin#29528: build: move sha256_sse4 into libbitcoin_crypto_base"}},{"before":"c265aad5b52bf7b1b1e3cc38d04812caa001ba76","after":"2649e655b9203d6d08cb1a26fa4846f2c403b297","ref":"refs/heads/master","pushedAt":"2024-02-29T01:27:59.000Z","pushType":"push","commitsCount":78,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29412: p2p: Don't process mutated blocks\n\nd8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc [test] IsBlockMutated unit tests (dergoegge)\n1ed2c9829700054526156297552bb47230406098 Add transaction_identifier::size to allow Span conversion (dergoegge)\n1ec6bbeb8d27d31647d1433ccb87b362f6d81f90 [validation] Cache merkle root and witness commitment checks (dergoegge)\n5bf4f5ba32da4627f152b54d266df9b2aa930457 [test] Add regression test for #27608 (dergoegge)\n49257c0304828a185c273fcb99742c54bbef0c8e [net processing] Don't process mutated blocks (dergoegge)\n2d8495e0800f5332748cd50eaad801ff77671bba [validation] Merkle root malleation should be caught by IsBlockMutated (dergoegge)\n66abce1d98115e41f394bc4f4f52341960ddc839 [validation] Introduce IsBlockMutated (dergoegge)\ne7669e1343aec4298fd30d539847963e6fa5619c [refactor] Cleanup merkle root checks (dergoegge)\n95bddb930aa72edd40fdff52cf447202995b0dce [validation] Isolate merkle root checks (dergoegge)\n\nPull request description:\n\n This PR proposes to check for mutated blocks early as a defense-in-depth mitigation against attacks leveraging mutated blocks.\n\n We introduce `IsBlockMutated` which catches all known forms of block malleation and use it to do an early mutation check whenever we receive a `block` message.\n\n We have observed attacks that abused mutated blocks in the past, which could have been prevented by simply not processing mutated blocks (e.g. https://github.com/bitcoin/bitcoin/pull/27608 for which a regression test is included in this PR).\n\nACKs for top commit:\n achow101:\n ACK d8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc\n maflcko:\n ACK d8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc 🏄\n fjahr:\n Code review ACK d8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc\n sr-gi:\n Code review ACK https://github.com/bitcoin/bitcoin/commit/d8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc\n\nTree-SHA512: 618ff4ea7f168e10f07504d3651290efbb1bb2ab3b838ffff3527c028caf6c52dedad18d04d3dbc627977479710930e200f2dfae18a08f627efe7e64a57e535f","shortMessageHtmlLink":"Merge bitcoin#29412: p2p: Don't process mutated blocks"}},{"before":"5b8c5970bdfc817cac9b59f699925c4426c59b61","after":"c265aad5b52bf7b1b1e3cc38d04812caa001ba76","ref":"refs/heads/master","pushedAt":"2024-02-20T01:21:58.000Z","pushType":"push","commitsCount":137,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29434: rpc: Fixed signed integer overflow for large feerates\n\ndddd7be9bf038c25f3e53c5bd708fb9cf73d4493 doc: Clarify maxfeerate help (MarcoFalke)\nfa2a4fdef779b01e847def5985deafedc6dd3da8 rpc: Fixed signed integer overflow for large feerates (MarcoFalke)\nfade94d11a5b93113975c4b2f62a357a70d03191 rpc: Add ParseFeeRate helper (MarcoFalke)\nfa0ff6610944fdda716fb0134b78cb85a4c9c26d rpc: Implement RPCHelpMan::ArgValue<> for UniValue (MarcoFalke)\n\nPull request description:\n\n Passing large BTC/kvB feerates to RPCs is problematic, because:\n\n * They are likely a typo. 1BTC/kvB (or larger) seems absurd.\n * They may cause signed integer overflow.\n * Anyone really wanting to pick such a large value can set `0` to disable the check.\n\n Fix all issues by rejecting anything more than 1BTC/kvB during parsing.\n\nACKs for top commit:\n brunoerg:\n crACK dddd7be9bf038c25f3e53c5bd708fb9cf73d4493\n achow101:\n ACK dddd7be9bf038c25f3e53c5bd708fb9cf73d4493\n vasild:\n ACK dddd7be9bf038c25f3e53c5bd708fb9cf73d4493\n tdb3:\n Code review ACK and basic test ACK for dddd7be9bf038c25f3e53c5bd708fb9cf73d4493.\n fjahr:\n utACK dddd7be9bf038c25f3e53c5bd708fb9cf73d4493\n\nTree-SHA512: 5dcce1f0abe059dc6b2ff56787e11081d73a45b4ddd6dcc2c1ea13709ebc13af5e7265e84fffb97ef32027b56b81955672a67ed7702e8fa30c2e849d67727bac","shortMessageHtmlLink":"Merge bitcoin#29434: rpc: Fixed signed integer overflow for large fee…"}},{"before":"478ac185be49feffd1231366c07e06068683f941","after":"5b8c5970bdfc817cac9b59f699925c4426c59b61","ref":"refs/heads/master","pushedAt":"2024-02-02T04:14:04.000Z","pushType":"push","commitsCount":68,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29189: RFC: Deprecate libconsensus\n\n25dc87e6f84c38c21e109e11f7bbd93f1e1f3183 libconsensus: deprecate (Cory Fields)\n\nPull request description:\n\n This library has existed for nearly 10 years with very little known uptake or impact. It has become a maintenance burden. In several cases it dictates our code/library structure (for example necessitating LIBBITCOIN_CRYPTO_BASE), as well as build-system procedures (building multiple copies of object files especially for the lib).\n\n Several discussions have arisen wrt migrating it to CMake and it has become difficult to justify adding more complexity for a library that is virtually unused anyway.\n\n See for example the discussions:\n https://github.com/hebasto/bitcoin/pull/41\n https://github.com/bitcoin/bitcoin/pull/29123\n\n And here: https://github.com/bitcoin/bitcoin/pull/29180\n Where it is pointed out that the libbitcoinconsensus functions are slower than those the internal bitcoind equivalents due to the missing sha2 implementations.\n\n Instead, we (fanquake, hebasto, TheCharlatan, and I) propose simply not migrating it to CMake and letting it end with v27. Any remaining use-cases could be handled in the future by libbitcoinkernel.\n\n If there are any users currently using libbitcoinconsensus, please chime in with your use-case!\n\n Edit: Corrected final release to be v27.\n\nACKs for top commit:\n TheCharlatan:\n ACK 25dc87e6f84c38c21e109e11f7bbd93f1e1f3183\n fanquake:\n ACK 25dc87e6f84c38c21e109e11f7bbd93f1e1f3183 - this library has very little, if any impactful real world usage. It has been entirely broken (on various platforms) for long periods of its existence, where nobody even noticed. Pruning this out to save porting, and starting anew with the kernel, is the sane thing to do.\n\nTree-SHA512: baff2b3c4f76f520c96021035f751fdcb51bedf00e767660249e92a7bc7c5c176786bcf2c4cfe2d2351c200f932b39eb886bcfb22fbec824a41617590d6a1638","shortMessageHtmlLink":"Merge bitcoin#29189: RFC: Deprecate libconsensus"}},{"before":"5f3a0574c45477288bc678b15f24940486084576","after":"478ac185be49feffd1231366c07e06068683f941","ref":"refs/heads/master","pushedAt":"2024-01-29T12:10:10.000Z","pushType":"push","commitsCount":59,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29298: depends: patch libool out of libnatpmp/miniupnpc\n\n5b9d5bf866506b22270598aa2dc1269bc02e38e2 depends: remove (darwin) libtool now that it's no longer used (Cory Fields)\n3ef6563495428d605409089b2267e18f2bf491f9 depends: use ar rather than libtool for miniupnpc/libnatpmp (Cory Fields)\n\nPull request description:\n\n An alternative to https://github.com/bitcoin/bitcoin/pull/29232\n\n Rather than switching to the CMake builds which [proved problematic](https://github.com/bitcoin/bitcoin/pull/29232#issuecomment-1898513919), do the quick and dirty thing of just patching out libtool. Doesn't seem to introduce any new issues.\n\n This should buy us time to upstream the necessary CMake fixes.\n\nACKs for top commit:\n TheCharlatan:\n ACK 5b9d5bf866506b22270598aa2dc1269bc02e38e2\n fanquake:\n ACK 5b9d5bf866506b22270598aa2dc1269bc02e38e2\n\nTree-SHA512: c75c4bcc9332d8c1fc3395e2b5fc7265849186afc7005700f662ab291e6ea1f111025fad733d0b0b39d35029d1b757d3f1937d63aad3c0c3b88d0f8ac902ee18","shortMessageHtmlLink":"Merge bitcoin#29298: depends: patch libool out of libnatpmp/miniupnpc"}},{"before":"82ba0f80a0b56bb160c8be1fddd82dbbc4fb3947","after":"5f3a0574c45477288bc678b15f24940486084576","ref":"refs/heads/master","pushedAt":"2024-01-19T05:28:22.000Z","pushType":"push","commitsCount":106,"pusher":{"login":"ssuchichen","name":"陈书熠","path":"/ssuchichen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/155805612?s=80&v=4"},"commit":{"message":"Merge bitcoin/bitcoin#29262: rpc: Fix race in loadtxoutset\n\n5555d8db3313f893609eb0cf549bb597361d4466 test: Use blocks_path where possible (MarcoFalke)\nfa9108941fa1a0e83484114e2d8a99d264c2ad09 rpc: Fix race in loadtxoutset (MarcoFalke)\n\nPull request description:\n\n The tip may have advanced, also if it did not, there is no reason to\n have two variables point to the same block.\n\n Fixes https://github.com/bitcoin/bitcoin/pull/27596#discussion_r1344694600\n\nACKs for top commit:\n achow101:\n ACK 5555d8db3313f893609eb0cf549bb597361d4466\n pablomartin4btc:\n ACK 5555d8db3313f893609eb0cf549bb597361d4466\n BrandonOdiwuor:\n Code Review ACK 5555d8db3313f893609eb0cf549bb597361d4466\n\nTree-SHA512: 23a82924a915b61bb1adab8ad20ec8914139c8ee647817af34ca27ee310a2e45833d8b285503e0feebe63e4667193d6d98cfcbbc1509bf40712225e04dd19e8b","shortMessageHtmlLink":"Merge bitcoin#29262: rpc: Fix race in loadtxoutset"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMFQwMjoxMjozMS4wMDAwMDBazwAAAASem-Jj","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0xOVQwNToyODoyMi4wMDAwMDBazwAAAAPjrDsG"}},"title":"Activity · ssuchichen/bitcoin"}