Skip to content

RPC: Add reserve member function to UniValue and use it in blockToJSON function #31179

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

Merged
merged 3 commits into from
Jul 23, 2025

Conversation

ismaelsadeeq
Copy link
Member

@ismaelsadeeq ismaelsadeeq commented Oct 29, 2024

This PR is motivated by #30495 (comment),
It adds a reserve member function to UniValue and applies it within the blockToJSON function to pre-allocate memory, minimizing reallocation's.

Slight performance increase in verbosity 1

On master:

ns/op op/s err% total benchmark
190,342 5,254 2.3% 0.01 BlockToJsonVerbose1
34,812,292 28.73 1.0% 0.38 BlockToJsonVerbose2
34,457,167 29.02 1.0% 0.38 BlockToJsonVerbose3

On this PR:

ns/op op/s err% total benchmark
172,278 5,805 0.7% 0.01 BlockToJsonVerbose1
33,720,584 29.66 0.4% 0.37 BlockToJsonVerbose2
33,884,417 29.51 1.2% 0.38 BlockToJsonVerbose3

@DrahtBot
Copy link
Contributor

DrahtBot commented Oct 29, 2024

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31179.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK maflcko, Eunovo, l0rinc, achow101
Concept ACK andrewtoth

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

@andrewtoth
Copy link
Contributor

Concept ACK

@andrewtoth
Copy link
Contributor

I think we can take this further and reserve for VOBJ types instead of just VARR.
The VOBJ uses both values and keys, so we can reserve both. We can count how many times we do pushKV and reserve that amount for both keys and values.

@andrewtoth
Copy link
Contributor

I believe you can get more fine grained benchmarks for this using the rpc_blockchain benchmarks.

@maflcko
Copy link
Member

maflcko commented Oct 30, 2024

In theory you could also add UniValue to VectorLikeClasses ( https://clang.llvm.org/extra/clang-tidy/checks/performance/inefficient-vector-operation.html#cmdoption-arg-VectorLikeClasses), but this is probably best done in a follow-up.

@ismaelsadeeq ismaelsadeeq force-pushed the 10-2024-add-reserve-to-univalue branch from fa73b9a to f8d5d2c Compare October 30, 2024 07:10
@ismaelsadeeq
Copy link
Member Author

I think we can take this further and reserve for VOBJ types instead of just VARR. The VOBJ type uses both values and keys, so we can reserve for both.

Done in the latest push, see diff, but I am reserving keys only when typ is of VOBJ.

We can count how many times we use pushKV and reserve that amount for both keys and values.

+1, this approach is possible but is it maintainable?
Manually counting each pushKVs means updating the value thats being passed to .reserve every time we add another element, will be better to reserve for size's that are determined at runtime or at least use a constant.

Is there a constant for the number of items in a block so that I can reserve for results in blockheaderToJSON?

@ismaelsadeeq
Copy link
Member Author

I believe you can get more fine-grained benchmarks for this using the rpc_blockchain benchmarks.

Yes, I can, but I’ll need to add verbosity levels 1 and 2, where we can see some performance improvements.

Show diff
diff --git a/src/bench/rpc_blockchain.cpp b/src/bench/rpc_blockchain.cpp
index 7e3e2d8e48a..6d431685e66 100644
--- a/src/bench/rpc_blockchain.cpp
+++ b/src/bench/rpc_blockchain.cpp
@@ -45,7 +45,25 @@ struct TestBlockAndIndex {
 
 } // namespace
 
-static void BlockToJsonVerbose(benchmark::Bench& bench)
+static void BlockToJsonVerbose1(benchmark::Bench& bench)
+{
+    TestBlockAndIndex data;
+    bench.run([&] {
+        auto univalue = blockToJSON(data.testing_setup->m_node.chainman->m_blockman, data.block, data.blockindex, data.blockindex, TxVerbosity::SHOW_TXID);
+        ankerl::nanobench::doNotOptimizeAway(univalue);
+    });
+}
+
+static void BlockToJsonVerbose2(benchmark::Bench& bench)
+{
+    TestBlockAndIndex data;
+    bench.run([&] {
+        auto univalue = blockToJSON(data.testing_setup->m_node.chainman->m_blockman, data.block, data.blockindex, data.blockindex, TxVerbosity::SHOW_DETAILS);
+        ankerl::nanobench::doNotOptimizeAway(univalue);
+    });
+}
+
+static void BlockToJsonVerbose3(benchmark::Bench& bench)
 {
     TestBlockAndIndex data;
     bench.run([&] {
@@ -54,7 +72,9 @@ static void BlockToJsonVerbose(benchmark::Bench& bench)
     });
 }
 
-BENCHMARK(BlockToJsonVerbose, benchmark::PriorityLevel::HIGH);
+BENCHMARK(BlockToJsonVerbose1, benchmark::PriorityLevel::HIGH);
+BENCHMARK(BlockToJsonVerbose2, benchmark::PriorityLevel::HIGH);
+BENCHMARK(BlockToJsonVerbose3, benchmark::PriorityLevel::HIGH);
 
 static void BlockToJsonVerboseWrite(benchmark::Bench& bench)
 {

Benchmark Results

On master:

ns/op op/s err% total benchmark
190,342 5,254 2.3% 0.01 BlockToJsonVerbose1
34,812,292 28.73 1.0% 0.38 BlockToJsonVerbose2
34,457,167 29.02 1.0% 0.38 BlockToJsonVerbose3

On this PR:

ns/op op/s err% total benchmark
172,278 5,805 0.7% 0.01 BlockToJsonVerbose1
33,720,584 29.66 0.4% 0.37 BlockToJsonVerbose2
33,884,417 29.51 1.2% 0.38 BlockToJsonVerbose3

@andrewtoth
Copy link
Contributor

this approach is possible but is it maintainable?

Hmm, yeah this would end up with reserve(<magic number>) littered throughout the json serialization. Not ideal.

I took a quick look through most of the block parsing, and many of the reservations we would do would be <5, so unlikely to be a big benefit.

The entry in TxToUniv could have up to 12 kv-pairs stored, and in blockheaderToJSON it could have 14. These would also be reserving two vectors so might have some visible benefit.

Also, the witness stack array inside TxToUniv is a VARR that could be reserved with a parameter resolved at runtime.

@ismaelsadeeq ismaelsadeeq force-pushed the 10-2024-add-reserve-to-univalue branch from f8d5d2c to 28e3392 Compare November 1, 2024 21:55
@ismaelsadeeq
Copy link
Member Author

Also, the witness stack array inside TxToUniv is a VARR that could be reserved with a parameter resolved at runtime.

Thanks, I've added this in the latest push.

@Eunovo
Copy link
Contributor

Eunovo commented Nov 17, 2024

I believe you can get more fine-grained benchmarks for this using the rpc_blockchain benchmarks.

Yes, I can, but I’ll need to add verbosity levels 1 and 2, where we can see some performance improvements.

Show diff
Benchmark Results

On master:

ns/op op/s err% total benchmark
190,342 5,254 2.3% 0.01 BlockToJsonVerbose1
34,812,292 28.73 1.0% 0.38 BlockToJsonVerbose2
34,457,167 29.02 1.0% 0.38 BlockToJsonVerbose3
On this PR:

ns/op op/s err% total benchmark
172,278 5,805 0.7% 0.01 BlockToJsonVerbose1
33,720,584 29.66 0.4% 0.37 BlockToJsonVerbose2
33,884,417 29.51 1.2% 0.38 BlockToJsonVerbose3

@ismaelsadeeq, could you commit the diff you’ve provided and include the benchmark results in the commit message? Then, rebase your current changes on top, rerun the benchmarks for 952463c and 28e3392, and update their commit messages with the results.

This way I can just go through your commits, run the benchmarks and compare with your results.

@l0rinc
Copy link
Contributor

l0rinc commented Dec 27, 2024

@ismaelsadeeq, I ran your benchmarks from #31179 (comment), but I only see a 7% speedup in the TxVerbosity::SHOW_TXID bench - while the rest were exactly the same as before.
But if it's that important, we could easily get a 30% speedup as well there by deduplicating the GetSerializeSize calls:

static inline int64_t GetBlockWeight(const size_t size_no_witness, const size_t size_with_witness)
{
    return size_no_witness * (WITNESS_SCALE_FACTOR - 1) + size_with_witness;
}
static inline int64_t GetBlockWeight(const CBlock& block)
{
    const size_t size_no_witness{GetSerializeSize(TX_NO_WITNESS(block))};
    const size_t size_with_witness{GetSerializeSize(TX_WITH_WITNESS(block))};
    return GetBlockWeight(size_no_witness, size_with_witness);
}

...

UniValue blockToJSON(BlockManager& blockman, const CBlock& block, const CBlockIndex& tip, const CBlockIndex& blockindex, TxVerbosity verbosity)
{
    UniValue result = blockheaderToJSON(tip, blockindex);

    size_t size_no_witness{GetSerializeSize(TX_NO_WITNESS(block))};
    size_t size_with_witness{GetSerializeSize(TX_WITH_WITNESS(block))};
    result.pushKV("strippedsize", (int)size_no_witness);
    result.pushKV("size", (int)size_with_witness);
    result.pushKV("weight", (int)GetBlockWeight(size_no_witness, size_with_witness));
    UniValue txs(UniValue::VARR);
    txs.reserve(block.vtx.size());
...

Or if you need TxVerbosity::SHOW_DETAILS and TxVerbosity::SHOW_DETAILS_AND_PREVOUT, they can be sped up by ~20% by reviving the abandoned (for lack of interest) #29473 (edited link).


And if BlockToJsonVerboseWrite needs a boost, #31144 will speed up by ~14%.

@l0rinc
Copy link
Contributor

l0rinc commented Dec 30, 2024

@ismaelsadeeq #20999 by @martinus also contains a few optimization attempts (a lot of them were already applied in other PRs since, but a few of the changes can still be done).
If RPC speed is important to you, the above suggestions can result in a measurable improvements.

@ismaelsadeeq ismaelsadeeq force-pushed the 10-2024-add-reserve-to-univalue branch from 28e3392 to f1ec37c Compare December 30, 2024 22:04
@ismaelsadeeq
Copy link
Member Author

Thanks for taking a look @Eunovo @l0rinc

could you commit the diff you’ve provided and include the benchmark results in the commit message?

I've added 8d4823b For the benchmarks and instead update the PR title with the bench results.

I ran your benchmarks from #31179 (comment), but I only see a 7% speedup in the TxVerbosity::SHOW_TXID bench - while the rest were exactly the same as before.

I did that locally and the result is the same as well

But if it's that important, we could easily get a 30% speedup as well there by deduplicating the GetSerializeSize calls:

I'll be happy to review that as a PR or might attempt it myself.

Or if you need TxVerbosity::SHOW_DETAILS and TxVerbosity::SHOW_DETAILS_AND_PREVOUT, they can be sped up by ~20% by reviving the abandoned (for lack of interest) #30035.

Interesting I will take a look at that, it seems there are some unaddressed comments by @TheCharlatan at that PR

And if BlockToJsonVerboseWrite needs a boost, #31144 will speed up by ~14%.

I will take a look.

@martinus also contains a few optimization attempts (a lot of them were already applied in other PRs since, but a few of the changes can still be done).
If RPC speed is important to you, the above suggestions can result in a measurable improvements.

RPC speed is important not just to me but to all users. For now, I've been experimenting with using libbitcoinkernel, and it seems to be more performant than the RPC.

I'll look into it further.

All those PRs offer improvements that are beneficial to users. I also think having this reservation ability is important to avoid the reallocation overhead. @l0rinc?

@l0rinc
Copy link
Contributor

l0rinc commented Dec 30, 2024

I can implement my suggestions in separate PRs if you say the RPC speedups would be welcome

Copy link
Contributor

@l0rinc l0rinc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approach ACK
There are a LOT of other places where we will be able to use this - we should do them in follow-up PRs

Copy link
Contributor

@Eunovo Eunovo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested ACK bf5c569

Confirmed slight improvement in BlockToJson bench.
Before:

|               ns/op |                op/s |    err% |          ins/op |          cyc/op |    IPC |         bra/op |   miss% |     total | benchmark
|--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
|          438,695.00 |            2,279.49 |    1.3% |    3,818,825.00 |    1,495,260.00 |  2.554 |     682,779.00 |    0.8% |      0.01 | `BlockToJsonVerbosity1`
|       45,518,930.00 |               21.97 |    0.3% |  354,868,701.00 |  154,939,608.00 |  2.290 |  60,169,811.00 |    1.5% |      0.51 | `BlockToJsonVerbosity2`
|       45,463,793.00 |               22.00 |    0.2% |  354,866,371.00 |  154,811,098.00 |  2.292 |  60,168,983.00 |    1.4% |      0.51 | `BlockToJsonVerbosity3`

After:

|               ns/op |                op/s |    err% |          ins/op |          cyc/op |    IPC |         bra/op |   miss% |     total | benchmark
|--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
|          394,595.00 |            2,534.24 |    0.2% |    3,649,536.00 |    1,344,645.33 |  2.714 |     661,067.00 |    0.7% |      0.01 | `BlockToJsonVerbosity1`
|       44,967,386.00 |               22.24 |    0.1% |  353,693,003.00 |  153,066,486.00 |  2.311 |  59,949,244.00 |    1.4% |      0.51 | `BlockToJsonVerbosity2`
|       44,831,936.00 |               22.31 |    0.5% |  353,691,496.00 |  152,611,234.00 |  2.318 |  59,948,519.00 |    1.4% |      0.51 | `BlockToJsonVerbosity3`

@DrahtBot DrahtBot requested review from l0rinc and andrewtoth January 6, 2025 10:14
@ismaelsadeeq ismaelsadeeq changed the title RPC: Add reserve member function to UniValue and use it in getblock RPC RPC: Add reserve member function to UniValue and use it in blockToJSON function Jan 8, 2025
Copy link
Member

@maflcko maflcko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this worth it, when the real end-to-end speedup is less than a percent, according to #31179 (comment)?

Edit: I see you had an end-to-end benchmark in the initial description, but it was replaced by the micro-benchmark. I guess the block in the micro-benchmark is too small to make a noticeable difference?

@ismaelsadeeq
Copy link
Member Author

Is this worth it, when the real end-to-end speedup is less than a percent, according to #31179 (comment)?

I think it is useful to have 1749aef
We can use it in places like bf5c569 and maybe more like @l0rinc mentioned #31179 (review).

Edit: I see you had an end-to-end benchmark in the initial description, but it was replaced by the micro-benchmark. I guess the block in the micro-benchmark is too small to make a noticeable difference?

Yeah the first run of the end to end benchmark shows a noticeable difference but then subsequent runs were very slight, so the performance increase due to the reallocation is not much, hence I limit the scope of the change to just adding the reservation feature and using it in blockToJSON.

@ismaelsadeeq ismaelsadeeq force-pushed the 10-2024-add-reserve-to-univalue branch from bf5c569 to ea62aae Compare January 8, 2025 18:25
- Only reserve keys when the typ is of `VOBJ`.
- Reserving space avoid reallocation, this provide noticeable
  performance increase in verbosity 1.
@ismaelsadeeq ismaelsadeeq force-pushed the 10-2024-add-reserve-to-univalue branch from ea62aae to 5d82d92 Compare January 22, 2025 22:34
luke-jr pushed a commit to bitcoinknots/bitcoin that referenced this pull request Feb 26, 2025
- Only reserve keys when the typ is of `VOBJ`.

Github-Pull: bitcoin#31179
Rebased-From: 952463c
luke-jr pushed a commit to bitcoinknots/bitcoin that referenced this pull request Feb 26, 2025
- Reserving space avoid reallocation, this provide noticeable
  performance increase in verbosity level 1, 2.

Github-Pull: bitcoin#31179
Rebased-From: 28e3392
@DrahtBot
Copy link
Contributor

There hasn't been much activity lately. What is the status here?

Finding reviewers may take time. However, if the patch is no longer relevant, please close this pull request. If the author lost interest or time to work on this, please close it and mark it 'Up for grabs' with the label, so that it can be picked up in the future.

@ismaelsadeeq ismaelsadeeq requested review from maflcko and Eunovo July 22, 2025 07:15
@maflcko
Copy link
Member

maflcko commented Jul 22, 2025

review ACK 5d82d92 🐀

Show signature

Signature:

untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
trusted comment: review ACK 5d82d92aff7c11ce17ee809c060e37f73a8a687a 🐀
qjQpXl4a54Be7NspYxvMwo7sXYk4VexhjMNKMam19QanyHVtiG9qYMoopQZyaTcZap5LpDA8M8N8ev9ZA2M5Bw==

Copy link
Contributor

@Eunovo Eunovo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-ACK 5d82d92

@l0rinc
Copy link
Contributor

l0rinc commented Jul 23, 2025

While I don't think this is a measurable optimization (i.e. RPCs won't get faster because of it), it does make sense to reduce useless work and memory fragmentation.
We're reserving the right amounts - and can do other such cases (e.g. https://github.com/bitcoin/bitcoin/blob/master/src/rpc/rawtransaction.cpp#L1246) in follow-ups.

rm -rfd build && cmake -B build -DBUILD_BENCH=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build -j$(nproc) && build/bin/bench_bitcoin -filter='BlockToJsonVerbosity.*'

Before (bd46119):

ns/op op/s err% total benchmark
120,922.57 8,269.75 2.0% 0.01 BlockToJsonVerbosity1
19,956,458.00 50.11 0.3% 0.22 BlockToJsonVerbosity2
20,062,458.00 49.84 0.8% 0.22 BlockToJsonVerbosity3

After (5d82d92):

ns/op op/s err% total benchmark
103,754.20 9,638.16 1.3% 0.01 BlockToJsonVerbosity1
19,978,000.00 50.06 0.6% 0.22 BlockToJsonVerbosity2
20,106,791.00 49.73 0.5% 0.22 BlockToJsonVerbosity3

ACK 5d82d92

@achow101
Copy link
Member

ACK 5d82d92

@achow101 achow101 merged commit eb13718 into bitcoin:master Jul 23, 2025
18 checks passed
@ismaelsadeeq ismaelsadeeq deleted the 10-2024-add-reserve-to-univalue branch July 23, 2025 20:44
TheCharlatan added a commit to TheCharlatan/rust-bitcoinkernel that referenced this pull request Jul 28, 2025
…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
TheCharlatan added a commit to TheCharlatan/rust-bitcoinkernel that referenced this pull request Jul 28, 2025
…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
alexanderwiederin added a commit to alexanderwiederin/rust-bitcoinkernel that referenced this pull request Aug 6, 2025
…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
TheCharlatan added a commit to TheCharlatan/rust-bitcoinkernel that referenced this pull request Aug 7, 2025
…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
alexanderwiederin added a commit to alexanderwiederin/rust-bitcoinkernel that referenced this pull request Aug 8, 2025
…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
alexanderwiederin added a commit to alexanderwiederin/rust-bitcoinkernel that referenced this pull request Aug 8, 2025
…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
stringintech added a commit to stringintech/go-bitcoinkernel that referenced this pull request Aug 17, 2025
35fced5df7 kernel: Fix bitcoin-chainstate for windows
c164264fd8 kernel: Add Purpose section to header documentation
9096c35c05 kernel: Allowing reducing exports
6d0d4b2507 kernel: Add pure kernel bitcoin-chainstate
ccd85f0333 kernel: Add functions to get the block hash from a block
925f21c37b kernel: Add block index utility functions to C header
b7441841c9 kernel: Add function to read block undo data from disk to C header
bc0e6f098e kernel: Add functions to read block from disk to C header
5120302f96 kernel: Add function for copying block data to C header
718ccee732 kernel: Add functions for the block validation state to C header
eb363ab30e kernel: Add validation interface to C header
246886c6ea kernel: Add interrupt function to C header
f3b34ca457 kernel: Add import blocks function to C header
fe08857d52 kernel: Add chainstate load options for in-memory dbs in C header
f93f171e01 kernel: Add options for reindexing in C header
dca7b4c26e kernel: Add block validation to C header
f031e9ce03 kernel: Add chainstate loading when instantiating a ChainstateManager
3cb99f73ec kernel: Add chainstate manager option for setting worker threads
9454ad8512 kernel: Add chainstate manager object to C header
3bead9ebdd kernel: Add notifications context option to C header
dda805dfb6 kernel: Add chain params context option to C header
ea5334925d kernel: Add kernel library context object
36fafbaef9 kernel: Add logging to kernel library C header
d28eef5cf2 kernel: Introduce initial kernel C header API
daca51bf80 Merge bitcoin/bitcoin#32750: refactor: CFeeRate encapsulates FeeFrac internally
f679bad605 Merge bitcoin/bitcoin#33105: validation: detect witness stripping without re-running Script checks
63d604af05 Merge bitcoin/bitcoin#33152: Release: Prepare "Open Transifex translations for v30.0" step
27aefac425 validation: detect witness stripping without re-running Script checks
2907b58834 policy: introduce a helper to detect whether a transaction spends Segwit outputs
26e9db2df0 Merge bitcoin/bitcoin#31886: cli: return local services in -netinfo
2bb06bcaf2 Merge bitcoin/bitcoin#31679: cmake: Install internal binaries to <prefix>/libexec/
6a2bb0fd83 Merge bitcoin/bitcoin#33151: subtree: update crc32c subtree
656e16aa5e qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file
a0eaa44925 Fix typos
b43b8be782 Merge bitcoin/bitcoin#33125: ci: Use mlc `v1` and fix typos
8d4aaaec49 Update Transifex slug for 30.x
8ef8dd6871 Update crc32c subtree to latest upstream master
9a5d29711a Squashed 'src/crc32c/' changes from b60d2b7334..efb8ea04e4
f28a94b40e ci: update shellcheck to v0.11.0
e46af30441 ci: update mlc to v1
7d60c0eb69 fix typo
49f2f3c89f doc: fix typos
d818340e7e test: Rename shuffled_indeces to shuffled_indices
96f8673b87 doc: fix typos
d767503b6a Merge bitcoin/bitcoin#33039: refactor,test: follow-ups to multi-byte block obfuscation
cf15d45192 Merge bitcoin/bitcoin#33044: contrib: drop use of `PermissionsStartOnly` & `Group=`
d7ed47fb80 Merge bitcoin/bitcoin#33077: kernel: create monolithic kernel static library
38e6ea9f3a Merge bitcoin/bitcoin#33101: cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED`
c92115dcb2 Merge bitcoin/bitcoin#33119: rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix
1dab8d0635 Merge bitcoin/bitcoin#33113: refactor: Use immediate lambda to work around GCC bug 117966
45bdbb1317 Merge bitcoin/bitcoin#33122: test: remove duplicated code in test/functional/wallet_migration.py
a45cc17d34 Merge bitcoin/bitcoin#33115: cmake: Switch to generated `ts_files.cmake` file
b90da9c2e9 Merge bitcoin/bitcoin#33138: ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container
fa1d2f6380 ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container
fd813bf863 Merge bitcoin/bitcoin#33002: ci: Only pass documented env vars
9617a42fdb Merge bitcoin/bitcoin#32581: allocators: Apply manual ASan poisoning to `PoolResource`
33e7fc51f4 Merge bitcoin/bitcoin#33133: rpc: fix getpeerinfo ping duration unit docs
721a051320 test: add coverage for -netinfo header and local services
f7d2db28e9 netinfo: return shortened services, if peers list requested
4489ab526a netinfo: return local services in the default report
1252eeb997 rpc: fix getpeerinfo ping duration unit docs
eb073209db qa: test witness stripping in p2p_segwit
6a7c0d3f87 test: refactor to remove duplicated test code
d1b583181d Merge bitcoin/bitcoin#32654: init: make `-blockmaxweight` startup option debug only
50a92cd56f Merge bitcoin/bitcoin#33060: test: Slay BnB Mutants
643bacd124 Merge bitcoin/bitcoin#33058: test: add assertions to SRD max weight test
eeb0b31e3a Merge bitcoin/bitcoin#32941: p2p: TxOrphanage revamp cleanups
c0642e558a [fuzz] fix latency score check in txorphan_protected
0cb1ed2b7c Merge bitcoin/bitcoin#33132: fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging`
a26fbee38f qt: Translations update
444dcb2f99 fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging`
83a2216f52 Merge bitcoin/bitcoin#33118: test: fix anti-fee-sniping off-by-one error
3543bfdfec test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field
e07e2532b4 test: fix anti-fee-sniping off-by-one error
c7a24c3052 ci: Re-enable DEBUG=1 in centos task
3d4d4f0d92 scripted-diff: rename "ann" variables to "latency_score"
3b92448923 [doc] comment fixups for orphanage changes
1384dbaf6d [config] emit warning for -maxorphantx, but allow it to be set
b10c55b298 fix up TxOrphanage lower_bound sanity checks
cfd71c6704 scripted-diff: rename TxOrphanage outpoints index
edb97bb3f1 [logging] add logs for inner loop of LimitOrphans
8a58d0e87d scripted-diff: rename OrphanTxBase to OrphanInfo
cc50f2f0df [cleanup] replace TxOrphanage::Size() with CountUniqueOrphans
ed24e01696 [optimization] Maintain at most 1 reconsiderable announcement per wtxid
af7402ccfa [refactor] make TxOrphanage keep itself trimmed
d1fac25ff3 [doc] 31829 release note
75ed673193 Merge bitcoin/bitcoin#33048: test: reduce runtime of p2p_opportunistic_1p1c.py
ca04eebd72 cmake: Switch to generated `ts_files.cmake` file
95341de6ca cmake, refactor: Move handling of Qt TS files into `locale` directory
24246c3deb Merge bitcoin/bitcoin#31385: package validation: relax the package-not-child-with-unconfirmed-parents rule
b8025b30cc Merge bitcoin/bitcoin#32559: doc: add alpine build instructions
18d1071dd1 init: replace deprecated PermissionsStartOnly systemd directive
1caaf65043 init: remove Group= as it will default to the user's default group
a7bafb3e05 refactor: Use immediate lambda to work around GCC bug 117966
b093a19ae2 cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED`
eb59a192d9 cmake, refactor: Encapsulate adding secp256k1 subtree in function
4f27e8ca4d Merge bitcoin/bitcoin#33083: qa: test that we do not disconnect a peer for submitting an invalid compact block
bfc9d95129 Merge bitcoin/bitcoin#33104: test: Perform backup filename checks in migrate_and_get_rpc in wallet_migration.py
8712e074bb Merge bitcoin/bitcoin#33093: refactor: remove unused `ser_writedata16be` and `ser_readdata16be`
5ee4e79669 Merge bitcoin/bitcoin#31244: descriptors: MuSig2
4b80147feb test: Perform backup filename checks in migrate_and_get_rpc
aef2dbb402 Merge bitcoin/bitcoin#33099: ci: allow for any libc++ intrumentation & use it for TSAN
8283af13fe Merge bitcoin/bitcoin#32584: depends: hard-code necessary c(xx)flags rather than setting them per-host
547c64814d Merge bitcoin/bitcoin#32987: init: [gui] Avoid UB/crash in InitAndLoadChainstate
e6bfd95d50 Merge bitcoin-core/gui#881: Move `FreespaceChecker` class into its own module
8a94cf8efe Merge bitcoin/bitcoin#30635: rpc: add optional blockhash to waitfornewblock, unhide wait methods in help
dc78ed2140 Merge bitcoin/bitcoin#33005: refactor: GenTxid type safety followups
3cb65ffa83 Merge bitcoin/bitcoin#33100: ci: remove `ninja-build` from MSAN jobs
7aa5b67132 ci: remove DEBUG_LOCKORDER from TSAN job
b09af2ce50 ci: instrument libc++ in TSAN job
6653cafd0b ci: allow libc++ instrumentation other than msan
3333d3f75f ci: Only pass documented env vars
3fe3fdb02b Merge bitcoin/bitcoin#33102: fuzz: cover BanMan::IsDiscouraged
c2ed576d2c fuzz: cover BanMan::IsDiscouraged
3a03f07560 qt: Avoid header circular dependency
cab6736b70 ci: remove ninja-build from MSAN jobs
0431a690c3 cleanup: remove unused `ser_writedata16be` and `ser_readdata16be`
00604296e1 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration
91058877ff Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration.
6b99670e3c Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes
2cef200340 Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall`
932e993b37 Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign
0bed946e5d Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB
28ec91c30e Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs
c157438116 qa: test that we do disconnect upon a second invalid compact block being announced
2f410ad78c Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls
6757052fc4 doc: move `cmake -B build -LH` up in Unix build docs
9954d6c833 depends: hard-code necessary c(xx)flags rather than setting them per-host
953c90d764 Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py
5888b4a2a5 doc: add note for watch-only wallet migration
3b23f95e34 ci: limit max stack size to 512 KiB
2931a87477 ci: limit stack size to 512kb in native macOS jobs
3724e9b40a Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views
0ce041ea88 tracing: fix pointer argument handling in mempool_monitor.py
25884bd896 qt, refactor: Move `FreespaceChecker` class into its own module
fb2dcbb160 qa: test cached failure for compact block
f12d8b104e qa: test a compact block with an invalid transaction
d6c37b28a7 qa: remove unnecessary tx removal from compact block
321984705d Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline
94b39ce738 refactor: Change `m_tx_inventory_to_send` from `std::set<GenTxid>` to `std::set<Wtxid>`
fa45ccc15d doc: Add legacy wallet removal release notes
2a97ff466d Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo`
fd068257e0 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes`
9cafdf8941 Merge bitcoin/bitcoin#33064: test: fix RPC coverage check
fdbade6f8d kernel: create monolithic kernel static library
c8309198f8 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example
1bed0f734b guix: warn SOURCE_DATE_EPOCH set in guix-codesign
cc33e45789 test: improve assertion for SRD max weight test
1c10b7351e RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo
e83699a626 doc/zmq: fix unix socket path example
8aed477c33 test: fix RPC coverage check
2630b64f81 test: add abortrescan RPC test
75a5c8258e Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON"
d5104cfbae prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline
52121506b2 test: assert `CScript` allocation characteristics
65ac7f6d4d refactor: modernize `CScriptBase` definition
756da2a994 refactor: extract `STATIC_SIZE` constant to prevector
251d020846 init, wallet: replace hardcoded output types with `FormatAllOutputTypes`
3b188b8b3d Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite
2e97541396 Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC
b08041cac8 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs
a3cf623364 test: Test max_selection_weight edge cases
57fe8acc8a test: Check max_weight_exceeded error
e3ba0757a9 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes`
fc162299f0 Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe
633d8ea17b Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck
faa1c3e80d Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON"
6cdc5a90cf Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs
443c32a3e6 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic
face8123fd log: [refactor] Use info level for init logs
fa183761cb log: Remove function name from init logs
5ad79b2035 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC
ea17a9423f [doc] release note for relaxing requirement of all unconfirmed parents present
12f48d5ed3 test: add chained 1p1c propagation test
525be56741 [unit test] package submission 2p1c with 1 parent missing
f24771af05 relax child-with-unconfirmed-parents rule
e17fb86382 Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit
fd3d80c209 Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior
1119ac51f0 Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs
e2f2df0ead Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success
16f7b43b68 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README
b59dc21847 doc: Fix typos in asmap README
ca38cf701d doc: fix a few obvious typos in the affected files
ddab466e0d doc: remove manual TOCs
26a3730711 doc: unify `developer-notes` and `productivity` header styles
eb13718448 Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function
86e3a0a8cb refactor: standardize obfuscation memory alignment
13f00345c0 refactor: write `Obfuscation` object when new key is generated in dbwrapper
eb65f57f31 [test] setmocktime instead of waiting in 1p1c tests
70772dd469 [test] cut the number of transactions involved in 1p1c DoS tests
b94c6356a2 test: check proper OP_2ROT behavior
73e754bd01 Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions
a9819b0e9d refactor: Change `FindTxForGetData` to take GenTxid instead of CInv
d588575ed1 refactor: miscellaneous GenTxid followups
cfb859e82e Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS)
afd3b34dc5 Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default
49bbf9ff28 Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master
c5c1960f93 doc: Add release notes for changes in RPCs
90fd5acbe5 rpc, test: Fix error message in getdescriptoractivity
39fef1d203 test: Add missing logging info for each test
53ac704efd rpc, test: Fix error message in unloadwallet
1fc3a8e8e7 rpc, test: Add EnsureUniqueWalletName tests
900bb53905 Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func
c8ec423719 Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer
09f004bd9f Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing
5d98fc7559 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime
e5b1b7c557 refactor: rename `OBFUSCATION_KEY_KEY`
298bf95105 refactor: simplify `Obfuscation::HexKey`
2dea045425 test: make `obfuscation_serialize` more thorough
a17d8202c3 test: merge xor_roundtrip_random_chunks and xor_bytes_reference
b635bc0896 rpc, util: Add EnsureUniqueWalletName
da318fe53f test: delete commented out tests
6d80e999a0 test: external signer returns invalid JSON response
065e42976a test: IsFinalTx returns true when there is no locktime
1cb2399703 doc: clarify the GetAddresses/GetAddressesUnsafe documentation
e5a7dfd79f p2p: rename GetAddresses -> GetAddressesUnsafe
faa2f3b1af doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS)
336b8be37b Update secp256k1 subtree to latest master
5600e6fc4b Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a
06ab3a394a tests: speed up coins_tests by parallelizing
7129c9ea8e Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD
11c6a864c9 Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow
9bc33432e2 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task
5878f35446 Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation
249889bee6 orphanage: avoid vtx iteration when no orphans
41ad2be434 mempool: Avoid expensive loop in `removeForBlock` during IBD
e9edd43a95 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard
80067ac111 Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds
31c4e77a25 test: fix ReadTopologicalSet unsigned integer overflow
672c85cb1e Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects
fa1a14a13a fuzz: Reset chainman state in process_message(s) targets
fa9a3de09b fuzz: DisableNextWrite
aeeeeec9f7 fuzz: Reset dirty connman state in process_message(s) targets
fa11eea405 fuzz: Avoid non-determinism in process_message(s) target (PeerMan)
faa3e68411 test: Log KeyboardInterrupt as exception
fac90e5261 test: Check that the GUI interactive reindex works
b2d07f872c Add release notes for -natpmp enabled by default
3fc660d267 mapport: turn -natpmp to on by default
fa30b34026 test: Do not pass tests on unhandled exceptions
96da68a38f qa: functional test a transaction running into the legacy sigop limit
367147954d qa: unit test standardness of inputs packed with legacy sigops
5863315e33 policy: make pathological transactions packed with legacy sigops non-standard.
5fa34951ea test: avoid unneeded block header hash -> integer conversions
2118301d77 test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency
23be0ec2f0 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency
8b09cc350a test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls
0716382c20 test: remove header hash caching in CBlockHeader class
0f044e82bd test: avoid direct block header modification in feature_block.py
f3c791d2e3 test: refactor: dedup `CBlockHeader` serialization
fad040a578 ci: Use APT_LLVM_V in msan task
76fe0e59ec test: Migration of a wallet ending in `../`
f0bb3d50fe test: Migration of a wallet ending in `/`
41faef5f80 test: Migration fail recovery w/ `../` in path
63c6d36437 test: Migration of a wallet with `../` in path.
70f1c99c90 wallet: Fix migration of wallets with pathnames.
f6ee59b6e2 wallet: migration: Make backup in walletdir
e22c3599c6 test: wallet: Check direct file backup name.
060695c22a test: Failed load after migrate should restore backup
248b6a27c3 optimization: peel align-head and unroll body to 64 bytes
e7114fc6dc optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t`
478d40afc6 refactor: encapsulate `vector`/`array` keys into `Obfuscation`
377aab8e5a refactor: move `util::Xor` to `Obfuscation().Xor`
fa5d296e3b refactor: prepare mempool_persist for obfuscation key change
6bbf2d9311 refactor: prepare `DBWrapper` for obfuscation key change
0b8bec8aa6 scripted-diff: unify xor-vs-obfuscation nomenclature
972697976c bench: make ObfuscationBench more representative
618a30e326 test: compare util::Xor with randomized inputs against simple impl
a5141cd39e test: make sure dbwrapper obfuscation key is never obfuscated
54ab0bd64c refactor: commit to 8 byte obfuscation keys
7aa557a37b random: add fixed-size `std::array` generation
b6d4688f77 [doc] reword comments in test_mid_package_replacement
f3a613aa5b [cleanup] delete brittle test_mid_package_eviction
9f713b83dc Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage
2dfeb6668c wallet: remove outdated `pszSkip` arg of database `Rewrite` func
faaaddaaf8 init: [gui] Avoid UB/crash in InitAndLoadChainstate
8a4cfddf23 wallet: Set migrated wallet name only on success
4f502baf8f doc: add alpine depends build instructions
d89c6fa4a7 wallet: Remove `upgradewallet` RPC
184159e4f3 Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection
5d17e64a02 Merge bitcoin/bitcoin#32677: test: headers sync timeout
0087ba409b Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py
50024620b9 [bench] worst case LimitOrphans and EraseForBlock
45c7a4b56d [functional test] orphan resolution works in the presence of DoSy peers
835f5c77cd [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests
b113877545 [fuzz] Add simulation fuzz test for TxOrphanage
03aaaedc6d [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet
ea29c4371e [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000
24afee8d8f [fuzz] TxOrphanage protects peers that don't go over limit
a2878cfb4a [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order
7ce3b7ee57 [unit test] basic TxOrphanage eviction and protection
4d23d1d7e7 [cleanup] remove unused rng param from LimitOrphans
067365d2a8 [p2p] overhaul TxOrphanage with smarter limits
1a41e7962d [refactor] create aliases for TxOrphanage Count and Usage
b50bd72c42 [prep] change return type of EraseTx to bool
3da6d7f8f6 [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl
77ebe8f280 [prep/test] have TxOrphanage remember its own limits in LimitOrphans
d0af4239b7 [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h
51365225b8 [prep/config] remove -maxorphantx
8dd24c29ae [prep/test] modify test to not access TxOrphanage internals
c3cd7fcb2c [doc] remove references to now-nonexistent Finalize() function
d8140f5f05 don't make a copy of m_non_base_coins
98ba2b1db2 [doc] MemPoolAccept coins views
ba02c30b8a [doc] always CleanupTemporaryCoins after a mempool trim
b53fab1467 Merge bitcoin/bitcoin#32948: refactor: cleanup index logging
62ed1f92ef txgraph: check that DoWork finds optimal if given high budget (tests)
f3c2fc867f txgraph: add work limit to DoWork(), try optimal (feature)
fa1fd07468 ci: Enable more shellcheck
e96b00d99e txgraph: make number of acceptable iterations configurable (feature)
cfe9958852 txgraph: track amount of work done in linearization (preparation)
6ba316eaa0 txgraph: 1-or-2-tx split-off clusters are optimal (optimization)
fad0eb091e txgraph: reset quality when merging clusters (bugfix)
61e800e75c test: headers sync timeout
28416f367a test: fix intermittent failure in rpc_invalidateblock.py
e72cb20c3f Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE`
97fb46d0a0 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir
69b9ad02da Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object
faa3171ff2 ci: Use optimized Debug build type in test-each-commit
fa21c3401e ci: [doc] reword debug log message
12a6959892 cmake: Drop no longer necessary "cmakeMinimumRequired" object
44f5327824 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan
15a4ec9069 [prep/rpc] remove entry and expiry time from getorphantxs
08e58fa911 [prep/refactor] move txorphanage to node namespace and directory
bb91d23fa9 [txorphanage] change type of usage to int64_t
c18bf0bd9b refactor: cleanup index logging
f5647c6c5a depends: fix libevent _WIN32_WINNT usage
44f3bae300 depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE`
fad191ff48 ci: Avoid cd into build dir
4bb4c86599 test: document HOST for get_previous_releases.py
609203d507 test: stop signing previous releases >= v28.2
c6dc2c29f8 test: replace v28.0 with notarized v28.2
5bd73d96a3 test: fix macOS detection
d3b8a54a81 Refactor CFeeRate to use FeeFrac internally
f49840dd90 doc: Fix typo in files.md
f5cf0b1ccc bitcoin wrapper: improve help output
aac0b6dd79 test: test sendall and send do anti-fee-sniping
20802c7b65 wallet, rpc: add anti-fee-sniping to `send` and `sendall`
5fe7915c86 doc: Add musig() example
d576079ab4 tests: Test musig() parsing
a53924bee3 descriptor: Parse musig() key expressions
9473e9606c descriptors: Move DeriveType parsing into its own function
4af0dca096 descriptor: Add MuSigPubkeyProvider
c40dbbbf77 test: Move `script_assets_tests` into its own suite
d00d95437d Add MuSig2 Keyagg Cache helper functions
8ecea91bf2 sign: Add GetMuSig2ParticipantPubkeys to SigningProvider
fac0ee0bfc build: Enable secp256k1 musig module
1894f97503 descriptors: Add PubkeyProvider::IsBIP32()
12bc1d0b1e util/string: Allow Split to include the separator
8811312571 script/parsing: Allow Const to not skip the found constant
e017ef3c7e init: make `-blockmaxweight` startup option debug-only
6135e0553e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC
c810b168b8 doc: Add description of installed files to files.md
94ffd01a02 doc: Add release notes describing libexec/ binaries
cd97905ebc cmake: Move internal binaries from bin/ to libexec/
ad132761fc [allocators] Apply manual ASan poisoning to PoolResource
5fe4c66462 XOnlyPubKey: Add GetCPubKeys
5332082d00 doc: add alpine build instructions
c6e2c31c55 rpc: unhide waitfor{block,newblock,blockheight}
0786b7509a rpc: add optional blockhash to waitfornewblock
5d82d92aff rpc: reserve space for `UniValue` variables  in `blockToJSON`
6a506d5c37 UniValue: add reserve member function
bd461195f4 bench: support benching all verbosity of `BlockToJson`
REVERT: 1ffc1c9d94 kernel: Fix bitcoin-chainstate for windows
REVERT: 686c4108cc kernel: Add Purpose section to header documentation
REVERT: 8d47a40731 kernel: Add pure kernel bitcoin-chainstate
REVERT: ba84650882 kernel: Add functions to get the block hash from a block
REVERT: a421727342 kernel: Add block index utility functions to C header
REVERT: aedbe73cf0 kernel: Add function to read block undo data from disk to C header
REVERT: 109dda0845 kernel: Add functions to read block from disk to C header
REVERT: 3e24c34ad4 kernel: Add function for copying block data to C header
REVERT: 9ab3d14c1d kernel: Add functions for the block validation state to C header
REVERT: 4408228f85 kernel: Add validation interface to C header
REVERT: 0c3054ef4b kernel: Add interrupt function to C header
REVERT: 45895c4ac7 kernel: Add import blocks function to C header
REVERT: 994c869ba2 kernel: Add chainstate load options for in-memory dbs in C header
REVERT: b4ad47e312 kernel: Add options for reindexing in C header
REVERT: 591b28d615 kernel: Add block validation to C header
REVERT: a1fe6b4264 kernel: Add chainstate loading when instantiating a ChainstateManager
REVERT: 0cf99f827e kernel: Add chainstate manager option for setting worker threads
REVERT: c18b35135c kernel: Add chainstate manager object to C header
REVERT: 1de2db7eac kernel: Add notifications context option to C header
REVERT: b1e6a28d17 kernel: Add chain params context option to C header
REVERT: 369cfd3f6c kernel: Add kernel library context object
REVERT: f9e13dbb1a kernel: Add logging to kernel library C header
REVERT: ce12888287 kernel: Introduce initial kernel C header API

git-subtree-dir: depend/bitcoin
git-subtree-split: 35fced5df783bc79720d8a74b89a5a0a62ebab72
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants