-
Notifications
You must be signed in to change notification settings - Fork 37.6k
rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs #32845
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs #32845
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32845. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. |
66282c4
to
2e4a0f7
Compare
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
Updates:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this worth a general RPC util function like (haven't tested it):
template <typename... Value>
bool AreParamsNullOrEmpty(const Value&... params) {
return ((params.isNull() || params.empty()) && ...);
}
Which, for example should work fine for getdescriptoractivity
:
if (AreParamsNullOrEmpty(request.params[0], request.params[1])) {
throw JSONRPCError(RPC_INVALID_PARAMETER, "At least 1 blockhash or 1 descriptor must be specified.");
}
0b6e818
to
0104bbb
Compare
Updates:
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
18c4961
to
529d2ce
Compare
Updates
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 529d2ce
review ACK 529d2ce 🌦 Show signatureSignature:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the proposed fix for getdescriptoractivity
is not robust, and the GetWalletNameFromJSONRPCRequest()
overload confusing, as detailed in comments.
94edbd4
to
8a7b1b0
Compare
c8d5429
to
14ee1ea
Compare
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
e989ae1
to
af0ad72
Compare
Updates:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
re-ACK af0ad72
Co-authored-by: stickies-v <[email protected]>
The unloadwallet RPC previously failed with a low-level JSON parsing error when called without any arguments (wallet_name). Although this issue was first identified during review of the original unloadwallet implementation in bitcoin#13111, it was never addressed. Raise RPC_INVALID_PARAMETER instead describing that either the RPC endpoint or wallet name must be provided. Adding a new functional test for this use case. Refactor migratewallet to use the same logic as the wallet_name argument handling is identical. Co-authored-by: maflcko <[email protected]>
Add self.log.info(...) calls at the beginning of each test in GetBlocksActivityTest. This improves readability and provides debugging information by logging the purpose of each test upon its correct execution. This is in preparation for the next commit, which adds a new test with log info, and it would look inconsistent without this commit.
Mark blockhashes and scanobjects arguments as required, so the user receives a clear help message when either is missing. Added a new functional test for this use case. Co-authored-by: stickies-v <[email protected]>
Adding notes for both `unloadwallet` and `getdescriptoractivity`.
af0ad72
to
c5c1960
Compare
Addressed feedback from @stickies-v. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
re-ACK c5c1960
nit: clang-format doesn't agree with some of the spacing changes, if you force push again could be nice to run it on each commit to ensure consistency
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK c5c1960
ACK c5c1960 |
…f1a28fa3f98 cf1a28fa3f98 kernel: Fix bitcoin-chainstate for windows dde03b676bea kernel: Add Purpose section to header documentation 6e4460579cb1 kernel: Add pure kernel bitcoin-chainstate 3895b9e9a29c kernel: Add functions to get the block hash from a block cec2f27c4573 kernel: Add block index utility functions to C header ae9e296b6bec kernel: Add function to read block undo data from disk to C header 1c1efa20baed kernel: Add functions to read block from disk to C header ffdeaa8b749b kernel: Add function for copying block data to C header 6145f14e5cf5 kernel: Add functions for the block validation state to C header 0a9b0d129469 kernel: Add validation interface to C header 907b0a5390fd kernel: Add interrupt function to C header 68812ede5042 kernel: Add import blocks function to C header bd2e516d1771 kernel: Add chainstate load options for in-memory dbs in C header a5b2d02ebe05 kernel: Add options for reindexing in C header e6c7ac508b29 kernel: Add block validation to C header 28f2c5d14ec8 kernel: Add chainstate loading when instantiating a ChainstateManager 2f51e1627a23 kernel: Add chainstate manager option for setting worker threads 237082b66424 kernel: Add chainstate manager object to C header 414f92931154 kernel: Add notifications context option to C header de523cbd6f82 kernel: Add chain params context option to C header 503bfcd1486e kernel: Add kernel library context object ba82693907d1 kernel: Add logging to kernel library C header 9b1d963a1dda kernel: Introduce initial kernel C header API fdbade6f8ded kernel: create monolithic kernel static library 75a5c8258ec5 Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" 3b188b8b3dae Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b9 Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac863 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs fc162299f0cc Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9f Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d95 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cffe Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e686 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc1 log: [refactor] Use info level for init logs fa183761cb09 log: Remove function name from init logs 5ad79b203505 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC e17fb86382ea Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e5 Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c8 Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead81 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b6808 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d3 doc: Fix typos in asmap README ca38cf701dc6 doc: fix a few obvious typos in the affected files ddab466e0d95 doc: remove manual TOCs 26a3730711c7 doc: unify `developer-notes` and `productivity` header styles eb137184482c Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function b94c6356a29b test: check proper OP_2ROT behavior 73e754bd01b0 Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions cfb859e82edf Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e2 Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f8 Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f9350 doc: Add release notes for changes in RPCs 90fd5acbe57e rpc, test: Fix error message in getdescriptoractivity 39fef1d20367 test: Add missing logging info for each test 53ac704efd66 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7ae rpc, test: Add EnsureUniqueWalletName tests 900bb53905aa Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719aa Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fec Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc755963 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc089629 rpc, util: Add EnsureUniqueWalletName da318fe53fa9 test: delete commented out tests 6d80e999a064 test: external signer returns invalid JSON response 065e42976a70 test: IsFinalTx returns true when there is no locktime 1cb23997033c doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f61 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe7 doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b22 Update secp256k1 subtree to latest master 5600e6fc4bb4 Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ade tests: speed up coins_tests by parallelizing 7129c9ea8e95 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9ee Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e214 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446ae Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b8 orphanage: avoid vtx iteration when no orphans 41ad2be4340d mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a9592 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c2 Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256c test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea0 Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a15 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4c fuzz: DisableNextWrite aeeeeec9f749 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059a fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118b test: Log KeyboardInterrupt as exception b2d07f872c58 Add release notes for -natpmp enabled by default 3fc660d26719 mapport: turn -natpmp to on by default fa30b34026f7 test: Do not pass tests on unhandled exceptions 96da68a38fa2 qa: functional test a transaction running into the legacy sigop limit 367147954d16 qa: unit test standardness of inputs packed with legacy sigops 5863315e33ba policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead2 test: avoid unneeded block header hash -> integer conversions 2118301d77c2 test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f074 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350afa test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a6 test: remove header hash caching in CBlockHeader class 0f044e82bd5f test: avoid direct block header modification in feature_block.py f3c791d2e391 test: refactor: dedup `CBlockHeader` serialization fad040a5787a ci: Use APT_LLVM_V in msan task 060695c22ae7 test: Failed load after migrate should restore backup 248b6a27c351 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc34 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6fa refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8d refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3beb refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b4 refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa626 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c02 bench: make ObfuscationBench more representative 618a30e326e9 test: compare util::Xor with randomized inputs against simple impl a5141cd39ecb test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c36 refactor: commit to 8 byte obfuscation keys 7aa557a37b73 random: add fixed-size `std::array` generation 9f713b83dcf7 Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb2 wallet: remove outdated `pszSkip` arg of database `Rewrite` func 8a4cfddf23a4 wallet: Set migrated wallet name only on success d89c6fa4a718 wallet: Remove `upgradewallet` RPC 184159e4f30c Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a0290 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b36 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b909 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d28 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cdee [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a1 [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6daf [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e86 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f94 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae2 [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579c [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7fa [cleanup] remove unused rng param from LimitOrphans 067365d2a8a4 [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db3 [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42bc [prep] change return type of EraseTx to bool 3da6d7f8f6fc [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f28012 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f0 [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b898 [prep/config] remove -maxorphantx 8dd24c29aec8 [prep/test] modify test to not access TxOrphanage internals b53fab1467fd Merge bitcoin/bitcoin#32948: refactor: cleanup index logging fa1fd074685c ci: Enable more shellcheck 61e800e75cff test: headers sync timeout 28416f367a5d test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb7 Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a081 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da89 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22f ci: Use optimized Debug build type in test-each-commit fa21c3401e15 ci: [doc] reword debug log message 12a6959892cb cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f532782445 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec906976 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa91198 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa956 [txorphanage] change type of usage to int64_t c18bf0bd9be6 refactor: cleanup index logging f5647c6c5ae8 depends: fix libevent _WIN32_WINNT usage 44f3bae300dc depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b1 ci: Avoid cd into build dir 4bb4c865999b test: document HOST for get_previous_releases.py 609203d5075c test: stop signing previous releases >= v28.2 c6dc2c29f828 test: replace v28.0 with notarized v28.2 5bd73d96a3a7 test: fix macOS detection c40dbbbf7707 test: Move `script_assets_tests` into its own suite 6135e0553e6e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC 5d82d92aff7c rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d1 UniValue: add reserve member function bd461195f4b3 bench: support benching all verbosity of `BlockToJson` REVERT: 1ffc1c9d94b1 kernel: Fix bitcoin-chainstate for windows REVERT: 686c4108cc1d kernel: Add Purpose section to header documentation REVERT: 8d47a4073120 kernel: Add pure kernel bitcoin-chainstate REVERT: ba84650882f1 kernel: Add functions to get the block hash from a block REVERT: a4217273422b kernel: Add block index utility functions to C header REVERT: aedbe73cf096 kernel: Add function to read block undo data from disk to C header REVERT: 109dda0845d8 kernel: Add functions to read block from disk to C header REVERT: 3e24c34ad481 kernel: Add function for copying block data to C header REVERT: 9ab3d14c1d15 kernel: Add functions for the block validation state to C header REVERT: 4408228f8556 kernel: Add validation interface to C header REVERT: 0c3054ef4b6e kernel: Add interrupt function to C header REVERT: 45895c4ac778 kernel: Add import blocks function to C header REVERT: 994c869ba238 kernel: Add chainstate load options for in-memory dbs in C header REVERT: b4ad47e31268 kernel: Add options for reindexing in C header REVERT: 591b28d61548 kernel: Add block validation to C header REVERT: a1fe6b4264bf kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 0cf99f827e48 kernel: Add chainstate manager option for setting worker threads REVERT: c18b35135c75 kernel: Add chainstate manager object to C header REVERT: 1de2db7eacde kernel: Add notifications context option to C header REVERT: b1e6a28d17c6 kernel: Add chain params context option to C header REVERT: 369cfd3f6c4f kernel: Add kernel library context object REVERT: f9e13dbb1ade kernel: Add logging to kernel library C header REVERT: ce1288828783 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: cf1a28fa3f985e3836652b8ad2c3bc35f04fec6d
…06c4276cf7a 506c4276cf7a Merge branch 'monolithic-kernel-lib' into kernelApi_symbols fdbade6f8ded kernel: create monolithic kernel static library 75a5c8258ec5 Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" 3b188b8b3dae Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b9 Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac863 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs fc162299f0cc Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9f Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d95 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cffe Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e686 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc1 log: [refactor] Use info level for init logs fa183761cb09 log: Remove function name from init logs 5ad79b203505 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC e17fb86382ea Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e5 Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c8 Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead81 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b6808 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d3 doc: Fix typos in asmap README ca38cf701dc6 doc: fix a few obvious typos in the affected files ddab466e0d95 doc: remove manual TOCs 26a3730711c7 doc: unify `developer-notes` and `productivity` header styles eb137184482c Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function b94c6356a29b test: check proper OP_2ROT behavior 73e754bd01b0 Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions cfb859e82edf Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e2 Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f8 Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f9350 doc: Add release notes for changes in RPCs 90fd5acbe57e rpc, test: Fix error message in getdescriptoractivity 39fef1d20367 test: Add missing logging info for each test 53ac704efd66 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7ae rpc, test: Add EnsureUniqueWalletName tests 900bb53905aa Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719aa Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fec Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc755963 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc089629 rpc, util: Add EnsureUniqueWalletName da318fe53fa9 test: delete commented out tests 6d80e999a064 test: external signer returns invalid JSON response 065e42976a70 test: IsFinalTx returns true when there is no locktime 1cb23997033c doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f61 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe7 doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b22 Update secp256k1 subtree to latest master 5600e6fc4bb4 Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ade tests: speed up coins_tests by parallelizing 7129c9ea8e95 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9ee Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e214 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446ae Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b8 orphanage: avoid vtx iteration when no orphans 41ad2be4340d mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a9592 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c2 Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256c test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea0 Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a15 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4c fuzz: DisableNextWrite aeeeeec9f749 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059a fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118b test: Log KeyboardInterrupt as exception b2d07f872c58 Add release notes for -natpmp enabled by default 3fc660d26719 mapport: turn -natpmp to on by default fa30b34026f7 test: Do not pass tests on unhandled exceptions 96da68a38fa2 qa: functional test a transaction running into the legacy sigop limit 367147954d16 qa: unit test standardness of inputs packed with legacy sigops 5863315e33ba policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead2 test: avoid unneeded block header hash -> integer conversions 2118301d77c2 test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f074 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350afa test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a6 test: remove header hash caching in CBlockHeader class 0f044e82bd5f test: avoid direct block header modification in feature_block.py f3c791d2e391 test: refactor: dedup `CBlockHeader` serialization fad040a5787a ci: Use APT_LLVM_V in msan task 060695c22ae7 test: Failed load after migrate should restore backup 248b6a27c351 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc34 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6fa refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8d refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3beb refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b4 refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa626 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c02 bench: make ObfuscationBench more representative 618a30e326e9 test: compare util::Xor with randomized inputs against simple impl a5141cd39ecb test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c36 refactor: commit to 8 byte obfuscation keys 7aa557a37b73 random: add fixed-size `std::array` generation 9f713b83dcf7 Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb2 wallet: remove outdated `pszSkip` arg of database `Rewrite` func 8a4cfddf23a4 wallet: Set migrated wallet name only on success d89c6fa4a718 wallet: Remove `upgradewallet` RPC 184159e4f30c Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a0290 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b36 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b909 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d28 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cdee [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a1 [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6daf [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e86 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f94 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae2 [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579c [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7fa [cleanup] remove unused rng param from LimitOrphans 067365d2a8a4 [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db3 [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42bc [prep] change return type of EraseTx to bool 3da6d7f8f6fc [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f28012 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f0 [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b898 [prep/config] remove -maxorphantx 8dd24c29aec8 [prep/test] modify test to not access TxOrphanage internals b53fab1467fd Merge bitcoin/bitcoin#32948: refactor: cleanup index logging fa1fd074685c ci: Enable more shellcheck 61e800e75cff test: headers sync timeout 28416f367a5d test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb7 Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a081 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da89 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22f ci: Use optimized Debug build type in test-each-commit fa21c3401e15 ci: [doc] reword debug log message 12a6959892cb cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f532782445 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec906976 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa91198 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa956 [txorphanage] change type of usage to int64_t c18bf0bd9be6 refactor: cleanup index logging f5647c6c5ae8 depends: fix libevent _WIN32_WINNT usage 44f3bae300dc depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b1 ci: Avoid cd into build dir 4bb4c865999b test: document HOST for get_previous_releases.py 609203d5075c test: stop signing previous releases >= v28.2 c6dc2c29f828 test: replace v28.0 with notarized v28.2 5bd73d96a3a7 test: fix macOS detection c40dbbbf7707 test: Move `script_assets_tests` into its own suite 6135e0553e6e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC 5d82d92aff7c rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d1 UniValue: add reserve member function bd461195f4b3 bench: support benching all verbosity of `BlockToJson` git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 506c4276cf7a2b775265646e2b593262bd18c0ec
…1f4c885b0 641f4c885b0 Add BlockReader fucntionality to kernel library 2c792833836 Add directory lcoking and read-only mode to BlockTreeStore 357cdb12cdd Flush disk writes when not in initial block download 11ffa7948c5 Remove block_tree_db_in_memory parameter after flat-file migration 7b3c7268728 blockstorage: Remove BlockTreeDB dead code 4d66896d1a2 kernel: Add assumed header store to chainparams 08d1848c81b kernel: Remove block tree db params c2e72c134d2 blockstorage: Replace BlockTreeDB with BlockTreeStore 1559ec22ac2 fuzz: Use BlockTreeStore in block index fuzz test 32bb39bad1d kernel: Add blocktreestorage module 6a9fdf7ae58 kernel: Fix bitcoin-chainstate for windows f6524514e33 kernel: Add Purpose section to header documentation 4ae2cfb4e27 kernel: Allowing reducing exports a1c072eb393 kernel: Add pure kernel bitcoin-chainstate 136fc5b3f0d kernel: Add functions to get the block hash from a block 3791a272053 kernel: Add block index utility functions to C header 1236c88392a kernel: Add function to read block undo data from disk to C header bf340b140ff kernel: Add functions to read block from disk to C header 173e621fa10 kernel: Add function for copying block data to C header 8f717b62a56 kernel: Add functions for the block validation state to C header 4353ddcd6d2 kernel: Add validation interface to C header 037bc7c5109 kernel: Add interrupt function to C header 4cc133ba101 kernel: Add import blocks function to C header 88ea62fc269 kernel: Add chainstate load options for in-memory dbs in C header 8c5fcdc65d1 kernel: Add options for reindexing in C header d2181ddcb78 kernel: Add block validation to C header 0f50066b6fc kernel: Add chainstate loading when instantiating a ChainstateManager e1486618c04 kernel: Add chainstate manager option for setting worker threads 0bf8f0e583a kernel: Add chainstate manager object to C header 89b4b0100ed kernel: Add notifications context option to C header c229caf460e kernel: Add chain params context option to C header 052bedb4075 kernel: Add kernel library context object a25e2f76092 kernel: Add logging to kernel library C header 0a9b1793134 kernel: Introduce initial kernel C header API 00604296e17 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration 91058877ff7 Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration. 6b99670e3c0 Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes 2cef200340f Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall` 932e993b37c Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign 0bed946e5d1 Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB 28ec91c30e2 Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs 2f410ad78c7 Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls 6757052fc43 doc: move `cmake -B build -LH` up in Unix build docs 953c90d7649 Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py 5888b4a2a55 doc: add note for watch-only wallet migration 3b23f95e346 ci: limit max stack size to 512 KiB 2931a874776 ci: limit stack size to 512kb in native macOS jobs 3724e9b40a6 Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views 0ce041ea88d tracing: fix pointer argument handling in mempool_monitor.py 321984705db Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline fa45ccc15df doc: Add legacy wallet removal release notes 2a97ff466d3 Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` fd068257e07 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` 9cafdf8941a Merge bitcoin/bitcoin#33064: test: fix RPC coverage check c8309198f81 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example 1bed0f734b3 guix: warn SOURCE_DATE_EPOCH set in guix-codesign 1c10b7351e1 RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo e83699a626b doc/zmq: fix unix socket path example 8aed477c332 test: fix RPC coverage check 2630b64f810 test: add abortrescan RPC test 75a5c8258ec Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" d5104cfbaeb prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 52121506b2a test: assert `CScript` allocation characteristics 65ac7f6d4d1 refactor: modernize `CScriptBase` definition 756da2a994c refactor: extract `STATIC_SIZE` constant to prevector 251d0208468 init, wallet: replace hardcoded output types with `FormatAllOutputTypes` 3b188b8b3da Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac86 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs e3ba0757a94 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` fc162299f0c Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9 Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d9 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cff Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e68 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc log: [refactor] Use info level for init logs fa183761cb0 log: Remove function name from init logs 5ad79b20350 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC e17fb86382e Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead8 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b680 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d doc: Fix typos in asmap README ca38cf701dc doc: fix a few obvious typos in the affected files ddab466e0d9 doc: remove manual TOCs 26a3730711c doc: unify `developer-notes` and `productivity` header styles eb137184482 Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function b94c6356a29 test: check proper OP_2ROT behavior 73e754bd01b Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions cfb859e82ed Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f935 doc: Add release notes for changes in RPCs 90fd5acbe57 rpc, test: Fix error message in getdescriptoractivity 39fef1d2036 test: Add missing logging info for each test 53ac704efd6 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7a rpc, test: Add EnsureUniqueWalletName tests 900bb53905a Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719a Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fe Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc75596 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc08962 rpc, util: Add EnsureUniqueWalletName da318fe53fa test: delete commented out tests 6d80e999a06 test: external signer returns invalid JSON response 065e42976a7 test: IsFinalTx returns true when there is no locktime 1cb23997033 doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f6 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b2 Update secp256k1 subtree to latest master 5600e6fc4bb Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ad tests: speed up coins_tests by parallelizing 7129c9ea8e9 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9e Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e21 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446a Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b orphanage: avoid vtx iteration when no orphans 41ad2be4340 mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a959 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256 test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a1 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4 fuzz: DisableNextWrite aeeeeec9f74 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059 fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118 test: Log KeyboardInterrupt as exception b2d07f872c5 Add release notes for -natpmp enabled by default 3fc660d2671 mapport: turn -natpmp to on by default fa30b34026f test: Do not pass tests on unhandled exceptions 96da68a38fa qa: functional test a transaction running into the legacy sigop limit 367147954d1 qa: unit test standardness of inputs packed with legacy sigops 5863315e33b policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead test: avoid unneeded block header hash -> integer conversions 2118301d77c test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f07 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350af test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a test: remove header hash caching in CBlockHeader class 0f044e82bd5 test: avoid direct block header modification in feature_block.py f3c791d2e39 test: refactor: dedup `CBlockHeader` serialization fad040a5787 ci: Use APT_LLVM_V in msan task 76fe0e59ec4 test: Migration of a wallet ending in `../` f0bb3d50fef test: Migration of a wallet ending in `/` 41faef5f80d test: Migration fail recovery w/ `../` in path 63c6d364376 test: Migration of a wallet with `../` in path. 70f1c99c901 wallet: Fix migration of wallets with pathnames. f6ee59b6e29 wallet: migration: Make backup in walletdir e22c3599c67 test: wallet: Check direct file backup name. 060695c22ae test: Failed load after migrate should restore backup 248b6a27c35 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc3 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6f refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8 refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3be refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa62 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c0 bench: make ObfuscationBench more representative 618a30e326e test: compare util::Xor with randomized inputs against simple impl a5141cd39ec test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c3 refactor: commit to 8 byte obfuscation keys 7aa557a37b7 random: add fixed-size `std::array` generation b6d4688f77d [doc] reword comments in test_mid_package_replacement f3a613aa5bb [cleanup] delete brittle test_mid_package_eviction 9f713b83dcf Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb wallet: remove outdated `pszSkip` arg of database `Rewrite` func 8a4cfddf23a wallet: Set migrated wallet name only on success d89c6fa4a71 wallet: Remove `upgradewallet` RPC 184159e4f30 Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a029 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b3 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b90 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d2 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cde [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6da [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e8 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f9 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579 [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7f [cleanup] remove unused rng param from LimitOrphans 067365d2a8a [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42b [prep] change return type of EraseTx to bool 3da6d7f8f6f [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f2801 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b89 [prep/config] remove -maxorphantx 8dd24c29aec [prep/test] modify test to not access TxOrphanage internals c3cd7fcb2cd [doc] remove references to now-nonexistent Finalize() function d8140f5f050 don't make a copy of m_non_base_coins 98ba2b1db2e [doc] MemPoolAccept coins views ba02c30b8a6 [doc] always CleanupTemporaryCoins after a mempool trim b53fab1467f Merge bitcoin/bitcoin#32948: refactor: cleanup index logging 62ed1f92eff txgraph: check that DoWork finds optimal if given high budget (tests) f3c2fc867fc txgraph: add work limit to DoWork(), try optimal (feature) fa1fd074685 ci: Enable more shellcheck e96b00d99eb txgraph: make number of acceptable iterations configurable (feature) cfe9958852b txgraph: track amount of work done in linearization (preparation) 6ba316eaa03 txgraph: 1-or-2-tx split-off clusters are optimal (optimization) fad0eb091e5 txgraph: reset quality when merging clusters (bugfix) 61e800e75cf test: headers sync timeout 28416f367a5 test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a08 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da8 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22 ci: Use optimized Debug build type in test-each-commit fa21c3401e1 ci: [doc] reword debug log message 12a6959892c cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f53278244 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec90697 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa9119 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa95 [txorphanage] change type of usage to int64_t c18bf0bd9be refactor: cleanup index logging f5647c6c5ae depends: fix libevent _WIN32_WINNT usage 44f3bae300d depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b ci: Avoid cd into build dir 4bb4c865999 test: document HOST for get_previous_releases.py 609203d5075 test: stop signing previous releases >= v28.2 c6dc2c29f82 test: replace v28.0 with notarized v28.2 5bd73d96a3a test: fix macOS detection aac0b6dd79b test: test sendall and send do anti-fee-sniping 20802c7b65f wallet, rpc: add anti-fee-sniping to `send` and `sendall` c40dbbbf770 test: Move `script_assets_tests` into its own suite 6135e0553e6 wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC 5d82d92aff7 rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d UniValue: add reserve member function bd461195f4b bench: support benching all verbosity of `BlockToJson` REVERT: 3d6b3fd8f65 kernel: Fix bitcoin-chainstate for windows REVERT: ec099435dda kernel: Add Purpose section to header documentation REVERT: 832689c68b5 kernel: Allowing reducing exports REVERT: 969a8110a56 kernel: Add pure kernel bitcoin-chainstate REVERT: 88e2f3001b6 kernel: Add functions to get the block hash from a block REVERT: de4a96b341f kernel: Add block index utility functions to C header REVERT: c3582e16a77 kernel: Add function to read block undo data from disk to C header REVERT: 183b53c981e kernel: Add functions to read block from disk to C header REVERT: d3557068694 kernel: Add function for copying block data to C header REVERT: 3ac26a9911a kernel: Add functions for the block validation state to C header REVERT: eb9a90ff5cc kernel: Add validation interface to C header REVERT: 451558a160a kernel: Add interrupt function to C header REVERT: 55e36cf39fd kernel: Add import blocks function to C header REVERT: 3671c91fd59 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 128415b1b75 kernel: Add options for reindexing in C header REVERT: add8205e8e9 kernel: Add block validation to C header REVERT: 1404b97942c kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 76d73226d99 kernel: Add chainstate manager option for setting worker threads REVERT: 6de50dca962 kernel: Add chainstate manager object to C header REVERT: 477df9b640e kernel: Add notifications context option to C header REVERT: c3868780f52 kernel: Add chain params context option to C header REVERT: 649bd3fd565 kernel: Add kernel library context object REVERT: b7e24e1547a kernel: Add logging to kernel library C header REVERT: c1536041e43 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 641f4c885b0a09b2d496f17fa2b210e488849557
…e8003578e72 ce8003578e72 kernel: Fix bitcoin-chainstate for windows 9ebe4a83a937 kernel: Add Purpose section to header documentation 10d2432218eb kernel: Allowing reducing exports e04b1e1f5284 kernel: Add pure kernel bitcoin-chainstate e0f98a533cd6 kernel: Add functions to get the block hash from a block af1c5e349550 kernel: Add block index utility functions to C header fd60e50badc5 kernel: Add function to read block undo data from disk to C header f507d230bba3 kernel: Add functions to read block from disk to C header 1480dd9f41fc kernel: Add function for copying block data to C header 26f484b94e66 kernel: Add functions for the block validation state to C header 8c286be14aff kernel: Add validation interface to C header 6d733019bba6 kernel: Add interrupt function to C header c917663b0b51 kernel: Add import blocks function to C header 9c2496406f7e kernel: Add chainstate load options for in-memory dbs in C header 393329899d90 kernel: Add options for reindexing in C header 107156b9362e kernel: Add block validation to C header b83c0d3ba499 kernel: Add chainstate loading when instantiating a ChainstateManager c3279239c75f kernel: Add chainstate manager option for setting worker threads f7a2c3c600e5 kernel: Add chainstate manager object to C header 5e8b57622c33 kernel: Add notifications context option to C header 56298e76271a kernel: Add chain params context option to C header 9bade37d97d7 kernel: Add kernel library context object 9859726fbd6b kernel: Add logging to kernel library C header 6dd7a4fcab08 kernel: Introduce initial kernel C header API cf15d45192e0 Merge bitcoin/bitcoin#33044: contrib: drop use of `PermissionsStartOnly` & `Group=` d7ed47fb80af Merge bitcoin/bitcoin#33077: kernel: create monolithic kernel static library 38e6ea9f3a6b Merge bitcoin/bitcoin#33101: cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED` c92115dcb219 Merge bitcoin/bitcoin#33119: rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix 1dab8d0635b3 Merge bitcoin/bitcoin#33113: refactor: Use immediate lambda to work around GCC bug 117966 45bdbb13174f Merge bitcoin/bitcoin#33122: test: remove duplicated code in test/functional/wallet_migration.py a45cc17d3443 Merge bitcoin/bitcoin#33115: cmake: Switch to generated `ts_files.cmake` file b90da9c2e959 Merge bitcoin/bitcoin#33138: ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container fa1d2f63803e ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container fd813bf863b1 Merge bitcoin/bitcoin#33002: ci: Only pass documented env vars 9617a42fdb6f Merge bitcoin/bitcoin#32581: allocators: Apply manual ASan poisoning to `PoolResource` 33e7fc51f43d Merge bitcoin/bitcoin#33133: rpc: fix getpeerinfo ping duration unit docs 1252eeb997df rpc: fix getpeerinfo ping duration unit docs 6a7c0d3f8749 test: refactor to remove duplicated test code d1b583181dcc Merge bitcoin/bitcoin#32654: init: make `-blockmaxweight` startup option debug only 50a92cd56fab Merge bitcoin/bitcoin#33060: test: Slay BnB Mutants 643bacd124f5 Merge bitcoin/bitcoin#33058: test: add assertions to SRD max weight test eeb0b31e3a4b Merge bitcoin/bitcoin#32941: p2p: TxOrphanage revamp cleanups c0642e558a02 [fuzz] fix latency score check in txorphan_protected 0cb1ed2b7c63 Merge bitcoin/bitcoin#33132: fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging` a26fbee38f95 qt: Translations update 444dcb2f9944 fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging` 83a2216f5278 Merge bitcoin/bitcoin#33118: test: fix anti-fee-sniping off-by-one error 3543bfdfec34 test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field e07e2532b4d7 test: fix anti-fee-sniping off-by-one error c7a24c305255 ci: Re-enable DEBUG=1 in centos task 3d4d4f0d92d4 scripted-diff: rename "ann" variables to "latency_score" 3b9244892382 [doc] comment fixups for orphanage changes 1384dbaf6d0b [config] emit warning for -maxorphantx, but allow it to be set b10c55b298d4 fix up TxOrphanage lower_bound sanity checks cfd71c67043a scripted-diff: rename TxOrphanage outpoints index edb97bb3f151 [logging] add logs for inner loop of LimitOrphans 8a58d0e87d70 scripted-diff: rename OrphanTxBase to OrphanInfo cc50f2f0df6e [cleanup] replace TxOrphanage::Size() with CountUniqueOrphans ed24e0169690 [optimization] Maintain at most 1 reconsiderable announcement per wtxid af7402ccfa7f [refactor] make TxOrphanage keep itself trimmed d1fac25ff3c3 [doc] 31829 release note 75ed673193c5 Merge bitcoin/bitcoin#33048: test: reduce runtime of p2p_opportunistic_1p1c.py ca04eebd7282 cmake: Switch to generated `ts_files.cmake` file 95341de6ca65 cmake, refactor: Move handling of Qt TS files into `locale` directory 24246c3deb8d Merge bitcoin/bitcoin#31385: package validation: relax the package-not-child-with-unconfirmed-parents rule b8025b30cc42 Merge bitcoin/bitcoin#32559: doc: add alpine build instructions 18d1071dd124 init: replace deprecated PermissionsStartOnly systemd directive 1caaf650436e init: remove Group= as it will default to the user's default group a7bafb3e0504 refactor: Use immediate lambda to work around GCC bug 117966 b093a19ae2ef cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED` eb59a192d9ca cmake, refactor: Encapsulate adding secp256k1 subtree in function 4f27e8ca4d2a Merge bitcoin/bitcoin#33083: qa: test that we do not disconnect a peer for submitting an invalid compact block bfc9d951292a Merge bitcoin/bitcoin#33104: test: Perform backup filename checks in migrate_and_get_rpc in wallet_migration.py 8712e074bb54 Merge bitcoin/bitcoin#33093: refactor: remove unused `ser_writedata16be` and `ser_readdata16be` 5ee4e7966957 Merge bitcoin/bitcoin#31244: descriptors: MuSig2 4b80147feb97 test: Perform backup filename checks in migrate_and_get_rpc aef2dbb40276 Merge bitcoin/bitcoin#33099: ci: allow for any libc++ intrumentation & use it for TSAN 8283af13fe86 Merge bitcoin/bitcoin#32584: depends: hard-code necessary c(xx)flags rather than setting them per-host 547c64814d07 Merge bitcoin/bitcoin#32987: init: [gui] Avoid UB/crash in InitAndLoadChainstate e6bfd95d5012 Merge bitcoin-core/gui#881: Move `FreespaceChecker` class into its own module 8a94cf8efebc Merge bitcoin/bitcoin#30635: rpc: add optional blockhash to waitfornewblock, unhide wait methods in help dc78ed214061 Merge bitcoin/bitcoin#33005: refactor: GenTxid type safety followups 3cb65ffa83d4 Merge bitcoin/bitcoin#33100: ci: remove `ninja-build` from MSAN jobs 7aa5b67132df ci: remove DEBUG_LOCKORDER from TSAN job b09af2ce5081 ci: instrument libc++ in TSAN job 6653cafd0b70 ci: allow libc++ instrumentation other than msan 3333d3f75f89 ci: Only pass documented env vars 3fe3fdb02b5c Merge bitcoin/bitcoin#33102: fuzz: cover BanMan::IsDiscouraged c2ed576d2caf fuzz: cover BanMan::IsDiscouraged 3a03f075606b qt: Avoid header circular dependency cab6736b701f ci: remove ninja-build from MSAN jobs 0431a690c3a4 cleanup: remove unused `ser_writedata16be` and `ser_readdata16be` 00604296e178 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration 91058877ff78 Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration. 6b99670e3c08 Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes 2cef200340f4 Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall` 932e993b37c4 Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign 0bed946e5d16 Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB 28ec91c30e23 Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs c15743811685 qa: test that we do disconnect upon a second invalid compact block being announced 2f410ad78c76 Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls 6757052fc439 doc: move `cmake -B build -LH` up in Unix build docs 9954d6c83338 depends: hard-code necessary c(xx)flags rather than setting them per-host 953c90d7649c Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py 5888b4a2a556 doc: add note for watch-only wallet migration 3b23f95e3463 ci: limit max stack size to 512 KiB 2931a8747760 ci: limit stack size to 512kb in native macOS jobs 3724e9b40a69 Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views 0ce041ea88db tracing: fix pointer argument handling in mempool_monitor.py 25884bd89684 qt, refactor: Move `FreespaceChecker` class into its own module fb2dcbb160bd qa: test cached failure for compact block f12d8b104e0e qa: test a compact block with an invalid transaction d6c37b28a782 qa: remove unnecessary tx removal from compact block 321984705dbc Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 94b39ce73831 refactor: Change `m_tx_inventory_to_send` from `std::set<GenTxid>` to `std::set<Wtxid>` fa45ccc15dfc doc: Add legacy wallet removal release notes 2a97ff466d32 Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` fd068257e078 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` 9cafdf8941a9 Merge bitcoin/bitcoin#33064: test: fix RPC coverage check fdbade6f8ded kernel: create monolithic kernel static library c8309198f812 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example 1bed0f734b3f guix: warn SOURCE_DATE_EPOCH set in guix-codesign cc33e4578946 test: improve assertion for SRD max weight test 1c10b7351e19 RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo e83699a626b8 doc/zmq: fix unix socket path example 8aed477c3322 test: fix RPC coverage check 2630b64f8100 test: add abortrescan RPC test 75a5c8258ec5 Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" d5104cfbaeb8 prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 52121506b2a3 test: assert `CScript` allocation characteristics 65ac7f6d4d1e refactor: modernize `CScriptBase` definition 756da2a994c5 refactor: extract `STATIC_SIZE` constant to prevector 251d02084688 init, wallet: replace hardcoded output types with `FormatAllOutputTypes` 3b188b8b3dae Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b9 Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac863 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs a3cf623364e8 test: Test max_selection_weight edge cases 57fe8acc8a84 test: Check max_weight_exceeded error e3ba0757a941 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` fc162299f0cc Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9f Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d95 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cffe Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e686 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc1 log: [refactor] Use info level for init logs fa183761cb09 log: Remove function name from init logs 5ad79b203505 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC ea17a9423fb4 [doc] release note for relaxing requirement of all unconfirmed parents present 12f48d5ed302 test: add chained 1p1c propagation test 525be56741cf [unit test] package submission 2p1c with 1 parent missing f24771af0581 relax child-with-unconfirmed-parents rule e17fb86382ea Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e5 Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c8 Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead81 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b6808 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d3 doc: Fix typos in asmap README ca38cf701dc6 doc: fix a few obvious typos in the affected files ddab466e0d95 doc: remove manual TOCs 26a3730711c7 doc: unify `developer-notes` and `productivity` header styles eb137184482c Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function eb65f57f319d [test] setmocktime instead of waiting in 1p1c tests 70772dd4693b [test] cut the number of transactions involved in 1p1c DoS tests b94c6356a29b test: check proper OP_2ROT behavior 73e754bd01b0 Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions a9819b0e9d3c refactor: Change `FindTxForGetData` to take GenTxid instead of CInv d588575ed1e6 refactor: miscellaneous GenTxid followups cfb859e82edf Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e2 Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f8 Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f9350 doc: Add release notes for changes in RPCs 90fd5acbe57e rpc, test: Fix error message in getdescriptoractivity 39fef1d20367 test: Add missing logging info for each test 53ac704efd66 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7ae rpc, test: Add EnsureUniqueWalletName tests 900bb53905aa Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719aa Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fec Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc755963 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc089629 rpc, util: Add EnsureUniqueWalletName da318fe53fa9 test: delete commented out tests 6d80e999a064 test: external signer returns invalid JSON response 065e42976a70 test: IsFinalTx returns true when there is no locktime 1cb23997033c doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f61 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe7 doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b22 Update secp256k1 subtree to latest master 5600e6fc4bb4 Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ade tests: speed up coins_tests by parallelizing 7129c9ea8e95 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9ee Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e214 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446ae Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b8 orphanage: avoid vtx iteration when no orphans 41ad2be4340d mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a9592 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c2 Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256c test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea0 Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a15 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4c fuzz: DisableNextWrite aeeeeec9f749 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059a fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118b test: Log KeyboardInterrupt as exception fac90e5261b8 test: Check that the GUI interactive reindex works b2d07f872c58 Add release notes for -natpmp enabled by default 3fc660d26719 mapport: turn -natpmp to on by default fa30b34026f7 test: Do not pass tests on unhandled exceptions 96da68a38fa2 qa: functional test a transaction running into the legacy sigop limit 367147954d16 qa: unit test standardness of inputs packed with legacy sigops 5863315e33ba policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead2 test: avoid unneeded block header hash -> integer conversions 2118301d77c2 test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f074 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350afa test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a6 test: remove header hash caching in CBlockHeader class 0f044e82bd5f test: avoid direct block header modification in feature_block.py f3c791d2e391 test: refactor: dedup `CBlockHeader` serialization fad040a5787a ci: Use APT_LLVM_V in msan task 76fe0e59ec4a test: Migration of a wallet ending in `../` f0bb3d50fef0 test: Migration of a wallet ending in `/` 41faef5f80d6 test: Migration fail recovery w/ `../` in path 63c6d3643769 test: Migration of a wallet with `../` in path. 70f1c99c901d wallet: Fix migration of wallets with pathnames. f6ee59b6e299 wallet: migration: Make backup in walletdir e22c3599c677 test: wallet: Check direct file backup name. 060695c22ae7 test: Failed load after migrate should restore backup 248b6a27c351 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc34 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6fa refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8d refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3beb refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b4 refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa626 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c02 bench: make ObfuscationBench more representative 618a30e326e9 test: compare util::Xor with randomized inputs against simple impl a5141cd39ecb test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c36 refactor: commit to 8 byte obfuscation keys 7aa557a37b73 random: add fixed-size `std::array` generation b6d4688f77df [doc] reword comments in test_mid_package_replacement f3a613aa5bb7 [cleanup] delete brittle test_mid_package_eviction 9f713b83dcf7 Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb2 wallet: remove outdated `pszSkip` arg of database `Rewrite` func faaaddaaf8e5 init: [gui] Avoid UB/crash in InitAndLoadChainstate 8a4cfddf23a4 wallet: Set migrated wallet name only on success 4f502baf8f64 doc: add alpine depends build instructions d89c6fa4a718 wallet: Remove `upgradewallet` RPC 184159e4f30c Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a0290 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b36 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b909 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d28 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cdee [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a1 [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6daf [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e86 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f94 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae2 [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579c [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7fa [cleanup] remove unused rng param from LimitOrphans 067365d2a8a4 [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db3 [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42bc [prep] change return type of EraseTx to bool 3da6d7f8f6fc [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f28012 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f0 [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b898 [prep/config] remove -maxorphantx 8dd24c29aec8 [prep/test] modify test to not access TxOrphanage internals c3cd7fcb2cd9 [doc] remove references to now-nonexistent Finalize() function d8140f5f0500 don't make a copy of m_non_base_coins 98ba2b1db2eb [doc] MemPoolAccept coins views ba02c30b8a63 [doc] always CleanupTemporaryCoins after a mempool trim b53fab1467fd Merge bitcoin/bitcoin#32948: refactor: cleanup index logging 62ed1f92efff txgraph: check that DoWork finds optimal if given high budget (tests) f3c2fc867fc4 txgraph: add work limit to DoWork(), try optimal (feature) fa1fd074685c ci: Enable more shellcheck e96b00d99ebe txgraph: make number of acceptable iterations configurable (feature) cfe9958852be txgraph: track amount of work done in linearization (preparation) 6ba316eaa032 txgraph: 1-or-2-tx split-off clusters are optimal (optimization) fad0eb091e58 txgraph: reset quality when merging clusters (bugfix) 61e800e75cff test: headers sync timeout 28416f367a5d test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb7 Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a081 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da89 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22f ci: Use optimized Debug build type in test-each-commit fa21c3401e15 ci: [doc] reword debug log message 12a6959892cb cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f532782445 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec906976 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa91198 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa956 [txorphanage] change type of usage to int64_t c18bf0bd9be6 refactor: cleanup index logging f5647c6c5ae8 depends: fix libevent _WIN32_WINNT usage 44f3bae300dc depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b1 ci: Avoid cd into build dir 4bb4c865999b test: document HOST for get_previous_releases.py 609203d5075c test: stop signing previous releases >= v28.2 c6dc2c29f828 test: replace v28.0 with notarized v28.2 5bd73d96a3a7 test: fix macOS detection aac0b6dd79b0 test: test sendall and send do anti-fee-sniping 20802c7b65f4 wallet, rpc: add anti-fee-sniping to `send` and `sendall` 5fe7915c865a doc: Add musig() example d576079ab470 tests: Test musig() parsing a53924bee321 descriptor: Parse musig() key expressions 9473e9606ce7 descriptors: Move DeriveType parsing into its own function 4af0dca096ca descriptor: Add MuSigPubkeyProvider c40dbbbf7707 test: Move `script_assets_tests` into its own suite d00d95437dd1 Add MuSig2 Keyagg Cache helper functions 8ecea91bf296 sign: Add GetMuSig2ParticipantPubkeys to SigningProvider fac0ee0bfc91 build: Enable secp256k1 musig module 1894f9750320 descriptors: Add PubkeyProvider::IsBIP32() 12bc1d0b1e96 util/string: Allow Split to include the separator 88113125716c script/parsing: Allow Const to not skip the found constant e017ef3c7eb7 init: make `-blockmaxweight` startup option debug-only 6135e0553e6e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC ad132761fc49 [allocators] Apply manual ASan poisoning to PoolResource 5fe4c66462e6 XOnlyPubKey: Add GetCPubKeys 5332082d0099 doc: add alpine build instructions c6e2c31c5512 rpc: unhide waitfor{block,newblock,blockheight} 0786b7509acd rpc: add optional blockhash to waitfornewblock 5d82d92aff7c rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d1 UniValue: add reserve member function bd461195f4b3 bench: support benching all verbosity of `BlockToJson` REVERT: 3d6b3fd8f65e kernel: Fix bitcoin-chainstate for windows REVERT: ec099435dda4 kernel: Add Purpose section to header documentation REVERT: 832689c68b5a kernel: Allowing reducing exports REVERT: 969a8110a567 kernel: Add pure kernel bitcoin-chainstate REVERT: 88e2f3001b65 kernel: Add functions to get the block hash from a block REVERT: de4a96b341f9 kernel: Add block index utility functions to C header REVERT: c3582e16a774 kernel: Add function to read block undo data from disk to C header REVERT: 183b53c981e6 kernel: Add functions to read block from disk to C header REVERT: d35570686946 kernel: Add function for copying block data to C header REVERT: 3ac26a9911a6 kernel: Add functions for the block validation state to C header REVERT: eb9a90ff5cc0 kernel: Add validation interface to C header REVERT: 451558a160a2 kernel: Add interrupt function to C header REVERT: 55e36cf39fdf kernel: Add import blocks function to C header REVERT: 3671c91fd593 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 128415b1b753 kernel: Add options for reindexing in C header REVERT: add8205e8e93 kernel: Add block validation to C header REVERT: 1404b97942ca kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 76d73226d99d kernel: Add chainstate manager option for setting worker threads REVERT: 6de50dca962f kernel: Add chainstate manager object to C header REVERT: 477df9b640e8 kernel: Add notifications context option to C header REVERT: c3868780f525 kernel: Add chain params context option to C header REVERT: 649bd3fd565e kernel: Add kernel library context object REVERT: b7e24e1547ad kernel: Add logging to kernel library C header REVERT: c1536041e434 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: ce8003578e725cf3c64a0f3e1447459e26955a3d
…c498e1485 82c498e1485 Add BlockReader fucntionality to kernel library 2c792833836 Add directory lcoking and read-only mode to BlockTreeStore 357cdb12cdd Flush disk writes when not in initial block download 11ffa7948c5 Remove block_tree_db_in_memory parameter after flat-file migration 7b3c7268728 blockstorage: Remove BlockTreeDB dead code 4d66896d1a2 kernel: Add assumed header store to chainparams 08d1848c81b kernel: Remove block tree db params c2e72c134d2 blockstorage: Replace BlockTreeDB with BlockTreeStore 1559ec22ac2 fuzz: Use BlockTreeStore in block index fuzz test 32bb39bad1d kernel: Add blocktreestorage module 6a9fdf7ae58 kernel: Fix bitcoin-chainstate for windows f6524514e33 kernel: Add Purpose section to header documentation 4ae2cfb4e27 kernel: Allowing reducing exports a1c072eb393 kernel: Add pure kernel bitcoin-chainstate 136fc5b3f0d kernel: Add functions to get the block hash from a block 3791a272053 kernel: Add block index utility functions to C header 1236c88392a kernel: Add function to read block undo data from disk to C header bf340b140ff kernel: Add functions to read block from disk to C header 173e621fa10 kernel: Add function for copying block data to C header 8f717b62a56 kernel: Add functions for the block validation state to C header 4353ddcd6d2 kernel: Add validation interface to C header 037bc7c5109 kernel: Add interrupt function to C header 4cc133ba101 kernel: Add import blocks function to C header 88ea62fc269 kernel: Add chainstate load options for in-memory dbs in C header 8c5fcdc65d1 kernel: Add options for reindexing in C header d2181ddcb78 kernel: Add block validation to C header 0f50066b6fc kernel: Add chainstate loading when instantiating a ChainstateManager e1486618c04 kernel: Add chainstate manager option for setting worker threads 0bf8f0e583a kernel: Add chainstate manager object to C header 89b4b0100ed kernel: Add notifications context option to C header c229caf460e kernel: Add chain params context option to C header 052bedb4075 kernel: Add kernel library context object a25e2f76092 kernel: Add logging to kernel library C header 0a9b1793134 kernel: Introduce initial kernel C header API 00604296e17 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration 91058877ff7 Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration. 6b99670e3c0 Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes 2cef200340f Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall` 932e993b37c Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign 0bed946e5d1 Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB 28ec91c30e2 Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs 2f410ad78c7 Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls 6757052fc43 doc: move `cmake -B build -LH` up in Unix build docs 953c90d7649 Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py 5888b4a2a55 doc: add note for watch-only wallet migration 3b23f95e346 ci: limit max stack size to 512 KiB 2931a874776 ci: limit stack size to 512kb in native macOS jobs 3724e9b40a6 Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views 0ce041ea88d tracing: fix pointer argument handling in mempool_monitor.py 321984705db Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline fa45ccc15df doc: Add legacy wallet removal release notes 2a97ff466d3 Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` fd068257e07 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` 9cafdf8941a Merge bitcoin/bitcoin#33064: test: fix RPC coverage check c8309198f81 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example 1bed0f734b3 guix: warn SOURCE_DATE_EPOCH set in guix-codesign 1c10b7351e1 RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo e83699a626b doc/zmq: fix unix socket path example 8aed477c332 test: fix RPC coverage check 2630b64f810 test: add abortrescan RPC test 75a5c8258ec Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" d5104cfbaeb prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 52121506b2a test: assert `CScript` allocation characteristics 65ac7f6d4d1 refactor: modernize `CScriptBase` definition 756da2a994c refactor: extract `STATIC_SIZE` constant to prevector 251d0208468 init, wallet: replace hardcoded output types with `FormatAllOutputTypes` 3b188b8b3da Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac86 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs e3ba0757a94 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` fc162299f0c Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9 Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d9 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cff Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e68 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc log: [refactor] Use info level for init logs fa183761cb0 log: Remove function name from init logs 5ad79b20350 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC e17fb86382e Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead8 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b680 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d doc: Fix typos in asmap README ca38cf701dc doc: fix a few obvious typos in the affected files ddab466e0d9 doc: remove manual TOCs 26a3730711c doc: unify `developer-notes` and `productivity` header styles eb137184482 Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function b94c6356a29 test: check proper OP_2ROT behavior 73e754bd01b Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions cfb859e82ed Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f935 doc: Add release notes for changes in RPCs 90fd5acbe57 rpc, test: Fix error message in getdescriptoractivity 39fef1d2036 test: Add missing logging info for each test 53ac704efd6 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7a rpc, test: Add EnsureUniqueWalletName tests 900bb53905a Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719a Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fe Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc75596 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc08962 rpc, util: Add EnsureUniqueWalletName da318fe53fa test: delete commented out tests 6d80e999a06 test: external signer returns invalid JSON response 065e42976a7 test: IsFinalTx returns true when there is no locktime 1cb23997033 doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f6 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b2 Update secp256k1 subtree to latest master 5600e6fc4bb Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ad tests: speed up coins_tests by parallelizing 7129c9ea8e9 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9e Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e21 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446a Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b orphanage: avoid vtx iteration when no orphans 41ad2be4340 mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a959 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256 test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a1 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4 fuzz: DisableNextWrite aeeeeec9f74 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059 fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118 test: Log KeyboardInterrupt as exception b2d07f872c5 Add release notes for -natpmp enabled by default 3fc660d2671 mapport: turn -natpmp to on by default fa30b34026f test: Do not pass tests on unhandled exceptions 96da68a38fa qa: functional test a transaction running into the legacy sigop limit 367147954d1 qa: unit test standardness of inputs packed with legacy sigops 5863315e33b policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead test: avoid unneeded block header hash -> integer conversions 2118301d77c test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f07 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350af test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a test: remove header hash caching in CBlockHeader class 0f044e82bd5 test: avoid direct block header modification in feature_block.py f3c791d2e39 test: refactor: dedup `CBlockHeader` serialization fad040a5787 ci: Use APT_LLVM_V in msan task 76fe0e59ec4 test: Migration of a wallet ending in `../` f0bb3d50fef test: Migration of a wallet ending in `/` 41faef5f80d test: Migration fail recovery w/ `../` in path 63c6d364376 test: Migration of a wallet with `../` in path. 70f1c99c901 wallet: Fix migration of wallets with pathnames. f6ee59b6e29 wallet: migration: Make backup in walletdir e22c3599c67 test: wallet: Check direct file backup name. 060695c22ae test: Failed load after migrate should restore backup 248b6a27c35 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc3 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6f refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8 refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3be refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa62 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c0 bench: make ObfuscationBench more representative 618a30e326e test: compare util::Xor with randomized inputs against simple impl a5141cd39ec test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c3 refactor: commit to 8 byte obfuscation keys 7aa557a37b7 random: add fixed-size `std::array` generation b6d4688f77d [doc] reword comments in test_mid_package_replacement f3a613aa5bb [cleanup] delete brittle test_mid_package_eviction 9f713b83dcf Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb wallet: remove outdated `pszSkip` arg of database `Rewrite` func 8a4cfddf23a wallet: Set migrated wallet name only on success d89c6fa4a71 wallet: Remove `upgradewallet` RPC 184159e4f30 Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a029 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b3 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b90 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d2 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cde [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6da [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e8 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f9 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579 [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7f [cleanup] remove unused rng param from LimitOrphans 067365d2a8a [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42b [prep] change return type of EraseTx to bool 3da6d7f8f6f [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f2801 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b89 [prep/config] remove -maxorphantx 8dd24c29aec [prep/test] modify test to not access TxOrphanage internals c3cd7fcb2cd [doc] remove references to now-nonexistent Finalize() function d8140f5f050 don't make a copy of m_non_base_coins 98ba2b1db2e [doc] MemPoolAccept coins views ba02c30b8a6 [doc] always CleanupTemporaryCoins after a mempool trim b53fab1467f Merge bitcoin/bitcoin#32948: refactor: cleanup index logging 62ed1f92eff txgraph: check that DoWork finds optimal if given high budget (tests) f3c2fc867fc txgraph: add work limit to DoWork(), try optimal (feature) fa1fd074685 ci: Enable more shellcheck e96b00d99eb txgraph: make number of acceptable iterations configurable (feature) cfe9958852b txgraph: track amount of work done in linearization (preparation) 6ba316eaa03 txgraph: 1-or-2-tx split-off clusters are optimal (optimization) fad0eb091e5 txgraph: reset quality when merging clusters (bugfix) 61e800e75cf test: headers sync timeout 28416f367a5 test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a08 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da8 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22 ci: Use optimized Debug build type in test-each-commit fa21c3401e1 ci: [doc] reword debug log message 12a6959892c cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f53278244 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec90697 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa9119 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa95 [txorphanage] change type of usage to int64_t c18bf0bd9be refactor: cleanup index logging f5647c6c5ae depends: fix libevent _WIN32_WINNT usage 44f3bae300d depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b ci: Avoid cd into build dir 4bb4c865999 test: document HOST for get_previous_releases.py 609203d5075 test: stop signing previous releases >= v28.2 c6dc2c29f82 test: replace v28.0 with notarized v28.2 5bd73d96a3a test: fix macOS detection aac0b6dd79b test: test sendall and send do anti-fee-sniping 20802c7b65f wallet, rpc: add anti-fee-sniping to `send` and `sendall` c40dbbbf770 test: Move `script_assets_tests` into its own suite 6135e0553e6 wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC 5d82d92aff7 rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d UniValue: add reserve member function bd461195f4b bench: support benching all verbosity of `BlockToJson` REVERT: 3d6b3fd8f65 kernel: Fix bitcoin-chainstate for windows REVERT: ec099435dda kernel: Add Purpose section to header documentation REVERT: 832689c68b5 kernel: Allowing reducing exports REVERT: 969a8110a56 kernel: Add pure kernel bitcoin-chainstate REVERT: 88e2f3001b6 kernel: Add functions to get the block hash from a block REVERT: de4a96b341f kernel: Add block index utility functions to C header REVERT: c3582e16a77 kernel: Add function to read block undo data from disk to C header REVERT: 183b53c981e kernel: Add functions to read block from disk to C header REVERT: d3557068694 kernel: Add function for copying block data to C header REVERT: 3ac26a9911a kernel: Add functions for the block validation state to C header REVERT: eb9a90ff5cc kernel: Add validation interface to C header REVERT: 451558a160a kernel: Add interrupt function to C header REVERT: 55e36cf39fd kernel: Add import blocks function to C header REVERT: 3671c91fd59 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 128415b1b75 kernel: Add options for reindexing in C header REVERT: add8205e8e9 kernel: Add block validation to C header REVERT: 1404b97942c kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 76d73226d99 kernel: Add chainstate manager option for setting worker threads REVERT: 6de50dca962 kernel: Add chainstate manager object to C header REVERT: 477df9b640e kernel: Add notifications context option to C header REVERT: c3868780f52 kernel: Add chain params context option to C header REVERT: 649bd3fd565 kernel: Add kernel library context object REVERT: b7e24e1547a kernel: Add logging to kernel library C header REVERT: c1536041e43 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 82c498e14858006a18833bf30d6571bd0bf7859c
…8687aaafa 0f8687aaafa Add BlockReader fucntionality to kernel library 2c792833836 Add directory lcoking and read-only mode to BlockTreeStore 357cdb12cdd Flush disk writes when not in initial block download 11ffa7948c5 Remove block_tree_db_in_memory parameter after flat-file migration 7b3c7268728 blockstorage: Remove BlockTreeDB dead code 4d66896d1a2 kernel: Add assumed header store to chainparams 08d1848c81b kernel: Remove block tree db params c2e72c134d2 blockstorage: Replace BlockTreeDB with BlockTreeStore 1559ec22ac2 fuzz: Use BlockTreeStore in block index fuzz test 32bb39bad1d kernel: Add blocktreestorage module 6a9fdf7ae58 kernel: Fix bitcoin-chainstate for windows f6524514e33 kernel: Add Purpose section to header documentation 4ae2cfb4e27 kernel: Allowing reducing exports a1c072eb393 kernel: Add pure kernel bitcoin-chainstate 136fc5b3f0d kernel: Add functions to get the block hash from a block 3791a272053 kernel: Add block index utility functions to C header 1236c88392a kernel: Add function to read block undo data from disk to C header bf340b140ff kernel: Add functions to read block from disk to C header 173e621fa10 kernel: Add function for copying block data to C header 8f717b62a56 kernel: Add functions for the block validation state to C header 4353ddcd6d2 kernel: Add validation interface to C header 037bc7c5109 kernel: Add interrupt function to C header 4cc133ba101 kernel: Add import blocks function to C header 88ea62fc269 kernel: Add chainstate load options for in-memory dbs in C header 8c5fcdc65d1 kernel: Add options for reindexing in C header d2181ddcb78 kernel: Add block validation to C header 0f50066b6fc kernel: Add chainstate loading when instantiating a ChainstateManager e1486618c04 kernel: Add chainstate manager option for setting worker threads 0bf8f0e583a kernel: Add chainstate manager object to C header 89b4b0100ed kernel: Add notifications context option to C header c229caf460e kernel: Add chain params context option to C header 052bedb4075 kernel: Add kernel library context object a25e2f76092 kernel: Add logging to kernel library C header 0a9b1793134 kernel: Introduce initial kernel C header API 00604296e17 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration 91058877ff7 Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration. 6b99670e3c0 Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes 2cef200340f Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall` 932e993b37c Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign 0bed946e5d1 Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB 28ec91c30e2 Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs 2f410ad78c7 Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls 6757052fc43 doc: move `cmake -B build -LH` up in Unix build docs 953c90d7649 Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py 5888b4a2a55 doc: add note for watch-only wallet migration 3b23f95e346 ci: limit max stack size to 512 KiB 2931a874776 ci: limit stack size to 512kb in native macOS jobs 3724e9b40a6 Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views 0ce041ea88d tracing: fix pointer argument handling in mempool_monitor.py 321984705db Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline fa45ccc15df doc: Add legacy wallet removal release notes 2a97ff466d3 Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` fd068257e07 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` 9cafdf8941a Merge bitcoin/bitcoin#33064: test: fix RPC coverage check c8309198f81 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example 1bed0f734b3 guix: warn SOURCE_DATE_EPOCH set in guix-codesign 1c10b7351e1 RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo e83699a626b doc/zmq: fix unix socket path example 8aed477c332 test: fix RPC coverage check 2630b64f810 test: add abortrescan RPC test 75a5c8258ec Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" d5104cfbaeb prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 52121506b2a test: assert `CScript` allocation characteristics 65ac7f6d4d1 refactor: modernize `CScriptBase` definition 756da2a994c refactor: extract `STATIC_SIZE` constant to prevector 251d0208468 init, wallet: replace hardcoded output types with `FormatAllOutputTypes` 3b188b8b3da Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac86 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs e3ba0757a94 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` fc162299f0c Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9 Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d9 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cff Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e68 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc log: [refactor] Use info level for init logs fa183761cb0 log: Remove function name from init logs 5ad79b20350 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC e17fb86382e Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead8 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b680 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d doc: Fix typos in asmap README ca38cf701dc doc: fix a few obvious typos in the affected files ddab466e0d9 doc: remove manual TOCs 26a3730711c doc: unify `developer-notes` and `productivity` header styles eb137184482 Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function b94c6356a29 test: check proper OP_2ROT behavior 73e754bd01b Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions cfb859e82ed Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f935 doc: Add release notes for changes in RPCs 90fd5acbe57 rpc, test: Fix error message in getdescriptoractivity 39fef1d2036 test: Add missing logging info for each test 53ac704efd6 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7a rpc, test: Add EnsureUniqueWalletName tests 900bb53905a Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719a Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fe Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc75596 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc08962 rpc, util: Add EnsureUniqueWalletName da318fe53fa test: delete commented out tests 6d80e999a06 test: external signer returns invalid JSON response 065e42976a7 test: IsFinalTx returns true when there is no locktime 1cb23997033 doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f6 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b2 Update secp256k1 subtree to latest master 5600e6fc4bb Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ad tests: speed up coins_tests by parallelizing 7129c9ea8e9 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9e Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e21 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446a Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b orphanage: avoid vtx iteration when no orphans 41ad2be4340 mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a959 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256 test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a1 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4 fuzz: DisableNextWrite aeeeeec9f74 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059 fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118 test: Log KeyboardInterrupt as exception b2d07f872c5 Add release notes for -natpmp enabled by default 3fc660d2671 mapport: turn -natpmp to on by default fa30b34026f test: Do not pass tests on unhandled exceptions 96da68a38fa qa: functional test a transaction running into the legacy sigop limit 367147954d1 qa: unit test standardness of inputs packed with legacy sigops 5863315e33b policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead test: avoid unneeded block header hash -> integer conversions 2118301d77c test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f07 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350af test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a test: remove header hash caching in CBlockHeader class 0f044e82bd5 test: avoid direct block header modification in feature_block.py f3c791d2e39 test: refactor: dedup `CBlockHeader` serialization fad040a5787 ci: Use APT_LLVM_V in msan task 76fe0e59ec4 test: Migration of a wallet ending in `../` f0bb3d50fef test: Migration of a wallet ending in `/` 41faef5f80d test: Migration fail recovery w/ `../` in path 63c6d364376 test: Migration of a wallet with `../` in path. 70f1c99c901 wallet: Fix migration of wallets with pathnames. f6ee59b6e29 wallet: migration: Make backup in walletdir e22c3599c67 test: wallet: Check direct file backup name. 060695c22ae test: Failed load after migrate should restore backup 248b6a27c35 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc3 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6f refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8 refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3be refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa62 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c0 bench: make ObfuscationBench more representative 618a30e326e test: compare util::Xor with randomized inputs against simple impl a5141cd39ec test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c3 refactor: commit to 8 byte obfuscation keys 7aa557a37b7 random: add fixed-size `std::array` generation b6d4688f77d [doc] reword comments in test_mid_package_replacement f3a613aa5bb [cleanup] delete brittle test_mid_package_eviction 9f713b83dcf Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb wallet: remove outdated `pszSkip` arg of database `Rewrite` func 8a4cfddf23a wallet: Set migrated wallet name only on success d89c6fa4a71 wallet: Remove `upgradewallet` RPC 184159e4f30 Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a029 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b3 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b90 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d2 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cde [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6da [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e8 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f9 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579 [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7f [cleanup] remove unused rng param from LimitOrphans 067365d2a8a [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42b [prep] change return type of EraseTx to bool 3da6d7f8f6f [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f2801 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b89 [prep/config] remove -maxorphantx 8dd24c29aec [prep/test] modify test to not access TxOrphanage internals c3cd7fcb2cd [doc] remove references to now-nonexistent Finalize() function d8140f5f050 don't make a copy of m_non_base_coins 98ba2b1db2e [doc] MemPoolAccept coins views ba02c30b8a6 [doc] always CleanupTemporaryCoins after a mempool trim b53fab1467f Merge bitcoin/bitcoin#32948: refactor: cleanup index logging 62ed1f92eff txgraph: check that DoWork finds optimal if given high budget (tests) f3c2fc867fc txgraph: add work limit to DoWork(), try optimal (feature) fa1fd074685 ci: Enable more shellcheck e96b00d99eb txgraph: make number of acceptable iterations configurable (feature) cfe9958852b txgraph: track amount of work done in linearization (preparation) 6ba316eaa03 txgraph: 1-or-2-tx split-off clusters are optimal (optimization) fad0eb091e5 txgraph: reset quality when merging clusters (bugfix) 61e800e75cf test: headers sync timeout 28416f367a5 test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a08 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da8 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22 ci: Use optimized Debug build type in test-each-commit fa21c3401e1 ci: [doc] reword debug log message 12a6959892c cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f53278244 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec90697 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa9119 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa95 [txorphanage] change type of usage to int64_t c18bf0bd9be refactor: cleanup index logging f5647c6c5ae depends: fix libevent _WIN32_WINNT usage 44f3bae300d depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b ci: Avoid cd into build dir 4bb4c865999 test: document HOST for get_previous_releases.py 609203d5075 test: stop signing previous releases >= v28.2 c6dc2c29f82 test: replace v28.0 with notarized v28.2 5bd73d96a3a test: fix macOS detection aac0b6dd79b test: test sendall and send do anti-fee-sniping 20802c7b65f wallet, rpc: add anti-fee-sniping to `send` and `sendall` c40dbbbf770 test: Move `script_assets_tests` into its own suite 6135e0553e6 wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC 5d82d92aff7 rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d UniValue: add reserve member function bd461195f4b bench: support benching all verbosity of `BlockToJson` REVERT: 3d6b3fd8f65 kernel: Fix bitcoin-chainstate for windows REVERT: ec099435dda kernel: Add Purpose section to header documentation REVERT: 832689c68b5 kernel: Allowing reducing exports REVERT: 969a8110a56 kernel: Add pure kernel bitcoin-chainstate REVERT: 88e2f3001b6 kernel: Add functions to get the block hash from a block REVERT: de4a96b341f kernel: Add block index utility functions to C header REVERT: c3582e16a77 kernel: Add function to read block undo data from disk to C header REVERT: 183b53c981e kernel: Add functions to read block from disk to C header REVERT: d3557068694 kernel: Add function for copying block data to C header REVERT: 3ac26a9911a kernel: Add functions for the block validation state to C header REVERT: eb9a90ff5cc kernel: Add validation interface to C header REVERT: 451558a160a kernel: Add interrupt function to C header REVERT: 55e36cf39fd kernel: Add import blocks function to C header REVERT: 3671c91fd59 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 128415b1b75 kernel: Add options for reindexing in C header REVERT: add8205e8e9 kernel: Add block validation to C header REVERT: 1404b97942c kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 76d73226d99 kernel: Add chainstate manager option for setting worker threads REVERT: 6de50dca962 kernel: Add chainstate manager object to C header REVERT: 477df9b640e kernel: Add notifications context option to C header REVERT: c3868780f52 kernel: Add chain params context option to C header REVERT: 649bd3fd565 kernel: Add kernel library context object REVERT: b7e24e1547a kernel: Add logging to kernel library C header REVERT: c1536041e43 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 0f8687aaafa5429c06d4848eadf3ce779761f9b7
Currently,
unloadwallet
RPC call fails with a JSON parsing error when nowallet_name
argument is provided. This behavior is misleading because the error originates from a low-level JSON type mismatch, rather than clearly indicating that the wallet name or RPC endpoint (-rpcwallet=...
) is missing. Also, found out that the issue was noticed during its implementation but never addressed.In addition, I've verified all RPC commands calls finding that
getdescriptoractivity
had the same problem, but related to the array input types (blockhashes & descriptors), so I've corrected that RPC as well. For consistency I've added the missing logging info for each test case intest/functional/rpc_getdescriptoractivity.py
in preparation for the new test.-Before
-After