Skip to content

Conversation

@Sjors
Copy link
Member

@Sjors Sjors commented Oct 30, 2025

When an IPC client requests a new block template via the Mining interface, we hold on to its CBlock. That way when they call submitSolution() we can modify it in place, rather than having to reconstruct the full block like the submitblock RPC does.

Before this commit however we forgot to invalidate m_checked_witness_commitment, which we should since the client brings a new coinbase.

This would cause us to accept an invalid chaintip.

Fix this and add a test to confirm that we now reject such a block. As a sanity check, we add a second node to the test and confirm that will accept our mined block.

As first noticed in #33374 the IPC code takes the coinbase as provided, unlike the submitblock RPC which calls UpdateUncommittedBlockStructures() and adds witness commitment to the coinbase if it was missing.

Although that could have been an alternative fix, we instead document that IPC clients are expected to provide the full coinbase including witness commitment.

Patch to produce the original issue:

diff --git a/src/node/miner.cpp b/src/node/miner.cpp
index b988e28a3f..28e9048a4d 100644
--- a/src/node/miner.cpp
+++ b/src/node/miner.cpp
@@ -450,15 +450,10 @@ void AddMerkleRootAndCoinbase(CBlock& block, CTransactionRef coinbase, uint32_t
     }
     block.nVersion = version;
     block.nTime = timestamp;
     block.nNonce = nonce;
     block.hashMerkleRoot = BlockMerkleRoot(block);
-
-    // Reset cached checks
-    block.m_checked_witness_commitment = false;
-    block.m_checked_merkle_root = false;
-    block.fChecked = false;
 }

 std::unique_ptr<CBlockTemplate> WaitAndCreateNewBlock(ChainstateManager& chainman,
                                                       KernelNotifications& kernel_notifications,
                                                       CTxMemPool* mempool,
diff --git a/test/functional/interface_ipc.py b/test/functional/interface_ipc.py
index cce56e3294..bf1b7048ab 100755
--- a/test/functional/interface_ipc.py
+++ b/test/functional/interface_ipc.py
@@ -216,22 +216,22 @@ class IPCInterfaceTest(BitcoinTestFramework):
             assert_equal(res.result, True)

             # The remote template block will be mutated, capture the original:
             remote_block_before = await self.parse_and_deserialize_block(template, ctx)

-            self.log.debug("Submitted coinbase must include witness")
+            self.log.debug("Submitted coinbase with missing witness is accepted")
             assert_not_equal(coinbase.serialize_without_witness().hex(), coinbase.serialize().hex())
             res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize_without_witness())
-            assert_equal(res.result, False)
+            assert_equal(res.result, True)

             self.log.debug("Even a rejected submitBlock() mutates the template's block")
             # Can be used by clients to download and inspect the (rejected)
             # reconstructed block.
             remote_block_after = await self.parse_and_deserialize_block(template, ctx)
             assert_not_equal(remote_block_before.serialize().hex(), remote_block_after.serialize().hex())

-            self.log.debug("Submit again, with the witness")
+            self.log.debug("Submit again, with the witness - does not replace the invalid block")
             res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize())
             assert_equal(res.result, True)

             self.log.debug("Block should propagate")
             assert_equal(self.nodes[1].getchaintips()[0]["height"], current_block_height + 1)

@DrahtBot
Copy link
Contributor

DrahtBot commented Oct 30, 2025

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/33745.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK ryanofsky, TheCharlatan, ismaelsadeeq

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

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #33819 (mining: add getCoinbase() by Sjors)
  • #32420 (miner: drop dummy extraNonce in coinbase scriptSig for templates requested via IPC by Sjors)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@fanquake
Copy link
Member

https://github.com/bitcoin/bitcoin/actions/runs/18939943748/job/54075967306?pr=33745#step:9:2351:

test/miner_tests.cpp(70): Entering test suite "miner_tests"
test/miner_tests.cpp(686): Entering test case "CreateNewBlock_validity"
<snip>
 2025-10-30T12:08:21.221330Z [test] [validationinterface.cpp:218] [void ValidationSignals::BlockConnected(ChainstateRole, const std::shared_ptr<const CBlock> &, const CBlockIndex *)] [validation] Enqueuing BlockConnected: block hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f block height=0
2025-10-30T12:08:21.221451Z [scheduler] [validationinterface.cpp:218] [auto ValidationSignals::BlockConnected(ChainstateRole, const std::shared_ptr<const CBlock> &, const CBlockIndex *)::(anonymous class)::operator()() const] [validation] BlockConnected: block hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60node/miner.cpp:187 CreateNewBlock: Assertion `pblock->m_checked_witness_commitment' failed.

@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 68fc907 to 43b92a2 Compare October 30, 2025 13:44
@Sjors
Copy link
Member Author

Sjors commented Oct 30, 2025

@TheCharlatan wrote:

What about the other checked flags? Should we just reset all of them in AddMerkleRootAndCoinbase?

Done and pushed, but still checking the CI failure.

@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 43b92a2 to fcb8b98 Compare October 30, 2025 13:46
@Sjors
Copy link
Member Author

Sjors commented Oct 30, 2025

I dropped Assume(pblock->m_checked_witness_commitment); from miner.cpp, since the assumptions seems to be wrong.

@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from fcb8b98 to 7d57c4e Compare October 30, 2025 14:54
Copy link
Contributor

@ryanofsky ryanofsky left a comment

Choose a reason for hiding this comment

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

Code review ACK 7d57c4e44451ce1167ba76a73c9cc6f6fd6cfca4. Code, test, documentation updates all seem like improvements and it is good to make submitSolution provide better feedback. I do think more improvements could be made here: documentation could be updated to say what requirements on submitSolution inputs are, and I think BlockTemplate accessors could be added so miners do not need to make hardcoded assumptions about the coinbase transaction? (#33745 (comment)). It would also be nice to return error messages and not just the false return value.

res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize_without_witness())
assert_equal(res.result, False)

self.log.debug("Submit again, with the witness")
res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize())
assert_equal(res.result, True)
Copy link
Contributor

@davidgumberg davidgumberg Oct 30, 2025

Choose a reason for hiding this comment

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

I want to suggest adding a check here:

Suggested change
assert_equal(res.result, True)
assert_equal(res.result, True)
# self.nodes[1]'s chaintip did not advance.
assert_equal(self.nodes[1].getchaintips()[0]["height"], current_block_height)

But I'm a bit confused, because testing this without the changes to src/node/miner.cpp, self.nodes[1]'s chaintip advances after submitSolution is called with the witnessless coinbase, and this check I'm suggesting fails.

To reproduce, I'm using the following diff on this branch:

diff --git a/src/node/miner.cpp b/src/node/miner.cpp
index b988e28a3f..485984e437 100644
--- a/src/node/miner.cpp
+++ b/src/node/miner.cpp
@@ -454,9 +454,9 @@ void AddMerkleRootAndCoinbase(CBlock& block, CTransactionRef coinbase, uint32_t
     block.hashMerkleRoot = BlockMerkleRoot(block);

     // Reset cached checks
-    block.m_checked_witness_commitment = false;
-    block.m_checked_merkle_root = false;
-    block.fChecked = false;
+    // block.m_checked_witness_commitment = false;
+    // block.m_checked_merkle_root = false;
+    // block.fChecked = false;
 }

 std::unique_ptr<CBlockTemplate> WaitAndCreateNewBlock(ChainstateManager& chainman,
diff --git a/test/functional/interface_ipc.py b/test/functional/interface_ipc.py
index a6010c2fb3..0d99a6b2c3 100755
--- a/test/functional/interface_ipc.py
+++ b/test/functional/interface_ipc.py
@@ -219,7 +219,9 @@ class IPCInterfaceTest(BitcoinTestFramework):
             self.log.debug("Submitted coinbase must include witness")
             assert_not_equal(coinbase.serialize_without_witness().hex(), coinbase.serialize().hex())
             res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize_without_witness())
-            assert_equal(res.result, False)
+            #assert_equal(res.result, False)
+            # self.nodes[1]'s chaintip did not advance.
+            assert_equal(self.nodes[1].getchaintips()[0]["height"], current_block_height)

             self.log.debug("Submit again, with the witness")
             res = await template.result.submitSolution(ctx, block.nVersion, block.nTime, block.nNonce, coinbase.serialize())

And the check fails, because self.nodes[1]'s chaintip was advanced!

Copy link
Member Author

@Sjors Sjors Oct 31, 2025

Choose a reason for hiding this comment

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

What your patch demonstrates is that without the fix in this PR (clearing the cache), the invalid block is accepted by the node.

If you then also drop the assert_equal ... current_block_height) line, you'll see that the fails at "Block should propagate".

The "Submit again, with the witness" step doesn't replace the invalid block, and ProcessNewBlock returns true for duplicate blocks and submitSolution passes it on.

I think is good, because in Stratum v2 (depending on configuration) the same solution may be submitted via the pool and the individual miner, causing a race over the p2p network. I'll add a note to clarify this.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added a patch to the PR description which reproduces the issue.

Copy link
Contributor

@sedited sedited left a comment

Choose a reason for hiding this comment

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

ACK 7d57c4e44451ce1167ba76a73c9cc6f6fd6cfca4

@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 7d57c4e to 2fc95ca Compare October 31, 2025 08:53
@Sjors
Copy link
Member Author

Sjors commented Oct 31, 2025

Pushed 7d57c4e to 2fc95ca: compare. No behavior change.

I added a patch the to PR description that reproduces the original issue.

Expanded the submitSolution documentation to indicate that a duplicate block is not considered a failure, and why.

I kept all three reset caches for simplicity.

Note that m_checked_merkle_root will be false anyway, because BlockAssembler::CreateNewBlock skips the merle root check. If we really wanted to skip that check, since we created the merle root ourselves, we would have to modify ProcessNewBlock to forward check_merkle_root to its CheckBlock call. That seems out of scope.

Similarly fChecked will already be false because the only place that sets it to true is guarded by if (fCheckPOW && fCheckMerkleRoot).

@Sjors
Copy link
Member Author

Sjors commented Oct 31, 2025

@ryanofsky wrote:

I do think more improvements could be made here:

These could be followups, some thoughts:

  • documentation could be updated to say what requirements on submitSolution inputs are

Not sure what to write there, basically whatever consensus requires. Previously (external) mining software would generate the whole coinbase from scratch and we never really documented that.

The Stratum v2 spec does specify what their SubmitSolution message should look like: https://stratumprotocol.org/specification/07-Template-Distribution-Protocol/#77-submitsolution-client-server

That's presumably based on their understanding of our code, so we shouldn't blindly copy-paste it.

and I think BlockTemplate accessors could be added so miners do not need to make hardcoded assumptions about the coinbase transaction? (#33745 (comment)).

The Template Provider I implemented takes all sorts of stuff from the coinbase in order to produce its NewTemplate message:

This could be refactored to use more accessors. Though I'd be worried about having lots of back and forth IPC messages.

It would also be nice to return error messages and not just the false return value.

Indeed, though this requires a refactor of ProcessNewBlock.

assert_equal(self.nodes[1].getchaintips()[0]["height"], current_block_height + 1)
# Stalls if a regression causes submitBlock() to accept an invalid block:
self.sync_all()
assert_equal(self.nodes[0].getchaintips()[0], self.nodes[1].getchaintips()[0])
Copy link
Member Author

@Sjors Sjors Oct 31, 2025

Choose a reason for hiding this comment

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

If you apply the patch in the description and also drop the sync_all call, you'll see that the second node sees the block as headers-only.

@Sjors
Copy link
Member Author

Sjors commented Oct 31, 2025

cc @ajtowns

Sjors added 2 commits October 31, 2025 11:47
When an IPC client requests a new block template via the Mining interface,
we hold on to its CBlock. That way when they call submitSolution() we can
modify it in place, rather than having to reconstruct the full block like
the submitblock RPC does.

Before this commit however we forgot to invalidate
m_checked_witness_commitment, which we should since the client brings a
new coinbase.

This would cause us to accept an invalid chaintip.

Fix this and add a test to confirm that we now reject such a block.
As a sanity check, we add a second node to the test and confirm that will
accept our mined block.

Note that the IPC code takes the coinbase as provided, unlike the
submitblock RPC which calls UpdateUncommittedBlockStructures() and adds
witness commitment to the coinbase if it was missing.

Although that could have been an alternative fix, we instead document that
IPC clients are expected to provide the full coinbase including witness
commitment.
@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 2fc95ca to 58d2186 Compare October 31, 2025 10:58
@Sjors
Copy link
Member Author

Sjors commented Oct 31, 2025

I split the template block mutation test into a third commit and documented its history in the commit message.

@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 58d2186 to 7c7e695 Compare October 31, 2025 11:00
PR bitcoin#33374 proposed a new Mining IPC method applySolution() which
could be used by clients to obtain the reconstructed block for
inspection, especially in the case of a rejected block.

However it was pointed out during review that submitBlock() modified
the template CBlock in place, so the client can just call getBlock()
and no new method is needed.

This commit adds a test to document that (now intentional) behavior.
@Sjors Sjors force-pushed the 2025/10/submit-solution-doc branch from 7c7e695 to 6eaa00f Compare October 31, 2025 11:01
@Sjors
Copy link
Member Author

Sjors commented Oct 31, 2025

I wrote:

The Template Provider I implemented takes all sorts of stuff from the coinbase in order to produce its NewTemplate message

This is a continuing source of confusion, see e.g. https://github.com/Sjors/sv2-tp/pull/55#pullrequestreview-3404172536

Orthogonal to this PR, but I plan to add some getters to the interface later.

@ryanofsky
Copy link
Contributor

ryanofsky commented Oct 31, 2025

Code review ACK 6eaa00f. Just documentation updates and test clarifications since last review, also splitting up a commit.


re: #33745 (comment)

and I think BlockTemplate accessors could be added so miners do not need to make hardcoded assumptions about the coinbase transaction? (#33745 (comment)).

The Template Provider I implemented takes all sorts of stuff from the coinbase [...]

Thanks, those links to your implementation were really helpful. I didn't realize all of the required information for a possible protocol upgrade is actually available from getCoinbaseTx() and getWitnessCommitmentIndex() and not that hard to access. It's really the SV2 protocol that needs to change to be more future proof, not the mining interface.

This could be refactored to use more accessors. Though I'd be worried about having lots of back and forth IPC messages.

Yeah I wouldn't suggest adding lots of accessors just for convenience. If there are maybe a handful of fields that would be useful to return, could have a single getCoinbaseInfo() or similar method. But seems not very important.

It would also be nice to return error messages and not just the false return value.

Indeed, though this requires a refactor of ProcessNewBlock.

Yes, and definitely tangential to this PR, but it does seem like this change wouldn't be a big refactor since there is already a BlockValidationState variable that can be returned.

  • documentation could be updated to say what requirements on submitSolution inputs are

Not sure what to write there, basically whatever consensus requires. Previously (external) mining software would generate the whole coinbase from scratch and we never really documented that.

I guess the following comment would be overkill, but honestly I find this issue pretty confusing and think if we are going to be in an awkward state where external software and protocols are making hardcoded assumptions about the node it could be useful to have a description of what's required and why.

I asked chatgpt to write a comment describing requirements fully and maybe this is just useful for me personally, but to me it covers the information that seems useful to know:

/**
 * Construct a block from this template using the supplied header fields and
 * coinbase transaction, then submit it for processing/broadcast.
 *
 * SegWit / coinbase requirements:
 *   - When a witness commitment is expected for this template
 *     (i.e. getWitnessCommitmentIndex() != -1), the caller MUST supply a
 *     coinbase that is consistent with the template’s commitment semantics:
 *
 *       • Coinbase OUTPUT at the commitment index with script
 *         OP_RETURN 0xaa21a9ed <32-byte commitment>.
 *
 *       • Coinbase INPUT witness stack that contains a single 32-byte
 *         “witness-reserved value” R at vin[0].scriptWitness.stack[0].
 *
 *       • The 32-byte commitment MUST equal:
 *            SHA256d( WitnessMerkleRoot(block) || R )
 *
 *     IMPORTANT (future-proofing): The value R is consensus-opaque. Its
 *     contents and required construction MAY change via soft-fork in the
 *     future. Clients MUST treat R as a node-provided value and MUST NOT
 *     invent or substitute their own, unless the template explicitly
 *     authorizes client-chosen R.
 *
 * Provided helpers on BlockTemplate:
 *   - getCoinbaseTx()               : Base coinbase transaction for this template
 *                                     satisfying the requirements.
 *   - getWitnessCommitmentIndex()   : vout index of the witness-commitment OP_RETURN
 *                                     or -1 if no commitment is expected.
 *   - getCoinbaseCommitment()       : Serialized OP_RETURN script (0xaa21a9ed || 32B payload)
 *                                     to place at the commitment index.
 *
 * No auto-fixups:
 *     Unlike the submitblock RPC method, this IPC method
 *     DOES NOT call UpdateUncommittedBlockStructures() and
 *     DOES NOT modify/mint R or the commitment on your behalf. If the
 *     coinbase is missing/malformed/inconsistent or R does not match the
 *     template’s requirements, the call SHOULD fail with a descriptive error.
 *
 * Mutation:
 *   - This call mutates the underlying template’s block (coinbase, merkle
 *     root, header fields). Subsequent getBlockHeader()/getBlock()/
 *     getCoinbaseTx() reflect the updated state.
 *
 * Errors (recommended set):
 *   - MissingWitnessCommitmentOutput
 *   - MissingCoinbaseWitnessReservedValue
 *   - InvalidWitnessReservedValueSize
 *   - WitnessCommitmentMismatch
 *   - ReservedValueNotAuthorized   // client supplied R not matching template
 *   - TemplateStale
 *
 * Parameters:
 *   @param version   Block header nVersion.
 *   @param timestamp Block header nTime (UNIX epoch).
 *   @param nonce     Block header nNonce (32-bit).
 *   @param coinbase  COMPLETE coinbase tx (including witness if required).
 *
 * @returns true if enqueued for processing (independent of final validity).
 */
virtual bool submitSolution(uint32_t version,
                            uint32_t timestamp,
                            uint32_t nonce,
                            CTransactionRef coinbase) = 0;

@DrahtBot DrahtBot requested a review from sedited October 31, 2025 18:18
Copy link
Member

@ismaelsadeeq ismaelsadeeq left a comment

Choose a reason for hiding this comment

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

Concept ACK, will review.

Copy link
Contributor

@sedited sedited 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 6eaa00f

Copy link
Member

@ismaelsadeeq ismaelsadeeq left a comment

Choose a reason for hiding this comment

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

Code review and tested ACK 6eaa00f

This looks really good. I have verified that previously, we would indeed accept a block with an invalid witness commitment because we did not check for it. The new toggle of the cached flags to false in the first commit prevents us from doing so.
The added documentation also looks good.

Before the patch in the first commit, the added test in the second commit failed

2025-11-10T17:14:58.517226Z TestFramework (INFO): PRNG seed is: 6082034237012765229
2025-11-10T17:14:58.517665Z TestFramework (INFO): Initializing test directory /var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_fm1o0xxb
2025-11-10T17:15:00.198939Z TestFramework (INFO): Running echo test
2025-11-10T17:15:00.205953Z TestFramework (INFO): Running mining test
2025-11-10T17:15:06.280650Z TestFramework (ERROR): Unexpected exception
Traceback (most recent call last):
  File "/Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/test/functional/test_framework/test_framework.py", line 142, in main
    self.run_test()
    ~~~~~~~~~~~~~^^
  File "/Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/build/test/functional/interface_ipc.py", line 252, in run_test
    self.run_mining_test()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/build/test/functional/interface_ipc.py", line 248, in run_mining_test
    asyncio.run(capnp.run(async_routine()))
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "capnp/lib/capnp.pyx", line 1965, in run
  File "capnp/lib/capnp.pyx", line 1966, in capnp.lib.capnp.run
  File "/Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/build/test/functional/interface_ipc.py", line 221, in async_routine
    assert_equal(res.result, False)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/test/functional/test_framework/util.py", line 80, in assert_equal
    raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
AssertionError: not(True == False)
2025-11-10T17:15:06.340210Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
2025-11-10T17:15:06.340318Z TestFramework (WARNING): Not cleaning up dir /var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_fm1o0xxb
2025-11-10T17:15:06.340356Z TestFramework (ERROR): Test failed. Test logging available at /var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_fm1o0xxb/test_framework.log
2025-11-10T17:15:06.340441Z TestFramework (ERROR): 
2025-11-10T17:15:06.340567Z TestFramework (ERROR): Hint: Call /Users/abubakarismail/Desktop/Work/bitcoin-dev/bitcoin-work-tree/bitcoin-master/test/functional/combine_logs.py '/var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_fm1o0xxb' to consolidate all logs
2025-11-10T17:15:06.340599Z TestFramework (ERROR): 
2025-11-10T17:15:06.340621Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-11-10T17:15:06.340669Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
2025-11-10T17:15:06.340712Z TestFramework (ERROR): 
[node 1] Cleaning up leftover process
[node 0] Cleaning up leftover process

After compiling with the first commit, it succeeded.

2025-11-10T17:21:00.220383Z TestFramework (INFO): PRNG seed is: 2383671957558385254
2025-11-10T17:21:00.220788Z TestFramework (INFO): Initializing test directory /var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_q5ioic08
2025-11-10T17:21:01.905456Z TestFramework (INFO): Running echo test
2025-11-10T17:21:01.912516Z TestFramework (INFO): Running mining test
2025-11-10T17:21:08.054949Z TestFramework (INFO): Stopping nodes
2025-11-10T17:21:08.163859Z TestFramework (INFO): Cleaning up /var/folders/dj/d8p8jhd172n7wnq81ryfl6rc0000gn/T/bitcoin_func_test_q5ioic08 on exit
2025-11-10T17:21:08.163922Z TestFramework (INFO): Tests successful

@Sjors
Copy link
Member Author

Sjors commented Nov 11, 2025

Note that 6eaa00f test: clarify submitBlock() mutates the template seems to conflict with what is proposed for the BlockTemplateCache in #33421, see #33421 (review). The plan there is to copy the template CBlock and apply the solution to that copy.

The choice between modifying in place and copying is not material to this pull request, and the code and test can be modified later, but it's probably better to decide which direction to go first.

@ismaelsadeeq
Copy link
Member

See #33421 (comment)

That PR should be updated. This is the right direction IMO.

@glozow glozow merged commit 3c3c6ad into bitcoin:master Nov 12, 2025
22 checks passed
yuvicc added a commit to yuvicc/bitcoinkernel-jdk that referenced this pull request Nov 16, 2025
c66e988754 Merge bitcoin/bitcoin#33865: cmake: Specify Windows plugin path in `test_bitcoin-qt` property
e221b25246 Merge bitcoin/bitcoin#33860: depends: drop Qt patches
dfde31f2ec Merge bitcoin/bitcoin#33864: scripted-diff: fix leftover references to `policy/fees.h`
0dd8d5c237 cmake: Specify Windows plugin path in `test_bitcoin-qt` property
b0a3887154 scripted-diff: fix leftover references to `policy/fees.h`
48d4b936e0 Merge bitcoin/bitcoin#33511: init: Fix Ctrl-C shutdown hangs during wait calls
3c3c6adb72 Merge bitcoin/bitcoin#33745: mining: check witness commitment in submitBlock
e652b69b8d Merge bitcoin/bitcoin#33003: test: add option to skip large re-org test in feature_block
3789215f73 Merge bitcoin/bitcoin#33724: refactor: Return uint64_t from GetSerializeSize
d4e2a45833 Merge bitcoin/bitcoin#33750: doc: document fingerprinting risk when operating node on multiple networks
47618446a0 Merge bitcoin/bitcoin#33853: kernel: Allow null arguments for serialized data
3e9aca6f1b depends: drop qtbase-moc-ignore-gcc-macro.patch qt patch
0da5a82700 depends: drop unused qt patch
d0da953773 Merge bitcoin/bitcoin#32482: build: add `-W*-whitespace`
f450761f83 Merge bitcoin/bitcoin#33842: build: Bump g++ minimum supported version to 12
fa9f29a4a7 doc: Recommend latest Debian stable or Ubuntu LTS
fa1711ee0d doc: Add GCC-12 min release notes
faa8be75c9 ci: Enable experimental kernel stuff in G++-12 task (previous releases)
fabce97b30 test: Remove gccbug_90348 test case
fa3854e432 test: Remove unused fs::create_directories test
fa9dacdbde util: [refactor] Remove unused create_directories workaround
138726a6f8 Merge bitcoin/bitcoin#33850: depends: drop qtbase_avoid_native_float16 qt patch
1c3d5c8ffd Merge bitcoin/bitcoin#33840: test: [refactor] Use reference over ptr to chainman
40dcbf580d build: add -Wtrailing-whitespace=any
a3ac59a431 ci: Enable experimental kernel stuff in ASan task
5b89956eeb kernel: Allow null arguments for serialized data
169f93d2ac depends: drop qtbase_avoid_native_float16 qt patch
d7659cd7e6 build: add -Wleading-whitespace=spaces
d86650220a cmake: Disable `-Wtrailing-whitespace` warnings for RCC-generated files
aabc5ca6ed cmake: Switch from AUTORCC to `qt6_add_resources`
25ae14c339 subprocess: replace tab with space
0c2b9dadd5 scripted-diff: remove whitespace in sha256_sse4.cpp
4da084fbc9 scripted-diff: change whitespace to spaces in univalue
e6caf150b3 ci: add moreutils to lint job
a7e8067610 Merge bitcoin/bitcoin#33181: guix: build for Linux HOSTS with `-static-libgcc`
b354d1ce5c Merge bitcoin/bitcoin#33820: kernel: trim Chain interface
fa807f78ae build: Bump g++ minimum supported version to 12
a4e96cae7d Merge bitcoin/bitcoin#33042: refactor: inline constant return values from `dbwrapper` write methods
8c2710b041 Merge bitcoin/bitcoin#32517: rpc: add "ischange: true" to decoded tx outputs in wallet gettransaction response
1fe851a478 Merge bitcoin/bitcoin#32180: p2p: Advance pindexLastCommonBlock early after connecting blocks
5f0303b93f Merge bitcoin/bitcoin#33443: log: reduce excessive "rolling back/forward" messages during block replay
f4903dddc9 Merge bitcoin/bitcoin#33433: Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found
7a4901c902 test, refactor: Fix `-Warray-bounds` warning
06e9458869 Merge bitcoin/bitcoin#32856: Update `minisketch` subtree
66978a1a95 kernel: remove btck_chain_get_tip
4dd7e6dc48 kernel: remove btck_chain_get_genesis
faf2759c8c test: [refactor] Use reference over ptr to chainman
490cb056f6 Merge bitcoin/bitcoin#33785: util: Allow `Assert` (et al.) in contexts without __func__
dcd0099a76 Merge bitcoin/bitcoin#33826: scripted-diff: Remove obsolete comment
01adbbcd9c Merge bitcoin/bitcoin#33827: doc: Correct `pkgin` command usage on NetBSD
eec21bc7c8 Merge bitcoin/bitcoin#33536: doc: reference fuzz coverage steps in quick-start
035f934e02 Merge bitcoin/bitcoin#33823: ci: Use cmake --preset=dev-mode in test-each-commit task
ddd2afac10 Merge bitcoin/bitcoin#33676: interfaces: enable cancelling running `waitNext` calls
dee7eec643 doc: mention coverage build in quickstart section
0698c6b494 doc: Correct `pkgin` command usage on NetBSD
36724205fc scripted-diff: Remove obsolete comment
ca1ce52a0f Merge bitcoin/bitcoin#33825: refactor: Add missing include in bitcoinkernel_wrapper.h
fa1e8d8bad refactor: Add missing include in bitcoinkernel_wrapper.h
fa6db67369 ci: [refactor] Extract build_dir constant in ci-test-each-commit-exec.py
fa95e6cdc1 ci: Use cmake --preset=dev-mode in test-each-commit task
513a0da2e0 Merge bitcoin/bitcoin#33818: ci: Extend tidy job to cover kernel code
5d0a40d607 ci: Extend tidy job to cover kernel code
93e79181da Merge bitcoin/bitcoin#33786: script: remove dead code in `CountWitnessSigOps`
3c4bec6223 Merge bitcoin/bitcoin#33782: test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py
4b12beedae Merge bitcoin/bitcoin#33793: test: move create_malleated_version() to messages.py for reuse
0b45e6db10 Merge bitcoin/bitcoin#33789: doc: add cmake help option in Windows build docs
2b9c351198 Merge bitcoin/bitcoin#33768: refactor: remove dead branches in `SingletonClusterImpl`
fad6efd3be refactor: Use STR_INTERNAL_BUG macro where possible
fada379589 doc: Remove unused bugprone-lambda-function-name suppression
f06c6e1898 guix: build for Linux HOSTS with -static-libgcc
1bdf4695b0 guix: patch store paths out of libunwind
078a72c35f guix: move static-libc++ into CMAKE_EXE_LINKER_FLAGS flags
2bd155e6ee test: move create_malleated_version() to messages.py for reuse
5c5704e730 Merge bitcoin/bitcoin#33791: kernel: Use enumeration type for flags argument
ed5720509f kernel: Use enumeration type for flags argument
50d106a4d6 Merge bitcoin/bitcoin#33781: clang-tidy: Remove no longer needed NOLINT
ffd7ca3c46 Merge bitcoin/bitcoin#33780: guix: disable libsanitizer in Linux GCC build
9577daa3b8 doc: Add cmake help option in Windows build instructions
fae1d99651 refactor: Use const reference to std::source_location
fa5fbcd615 util: Allow Assert() in contexts without __func__
24bcad3d4d refactor: remove dead code in `CountWitnessSigOps`
33389f1144 Merge bitcoin-core/gui#899: Modernize custom filtering
ec8516ceb7 test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py
038849e2e0 clang-tidy: Remove no longer needed NOLINT
5c41fa2918 guix: disable libsanitizer in Linux GCC build
4da01123df Merge bitcoin/bitcoin#30595: kernel: Introduce C header API
96614fff63 Merge bitcoin/bitcoin#33714: random: scope environ extern to macOS, BSDs and Illumos
4e9bd579d3 Merge bitcoin/bitcoin#33045: depends: disable variables, rules and suffixes.
5ffa63d681 Merge bitcoin/bitcoin#33626: ci: run native fuzz with MSAN job
75baff98fc Merge bitcoin/bitcoin#33744: ci: Fix lint runner selection (and docker cache)
2593ed1b5f Merge bitcoin/bitcoin#33574: doc: update Guix INSTALL.md
1cd8d9fe5c Merge bitcoin/bitcoin#33445: ci: Update Clang in "tidy" job
56329beaee Merge bitcoin/bitcoin#32301: test: cover invalid codesep positions for signature in taproot
1e6e32fa8a ci: run native fuzz with MSAN job
3784d15bcd ci: use LLVM libcxx 21.1.5
6c7a34f3b0 kernel: Add Purpose section to header documentation
7e9f00bcc1 kernel: Allowing reducing exports
7990463b10 kernel: Add pure kernel bitcoin-chainstate
36ec9a3ea2 Kernel: Add functions for working with outpoints
5eec7fa96a kernel: Add block hash type and block tree utility functions to C header
f5d5d1213c kernel: Add function to read block undo data from disk to C header
09d0f62638 kernel: Add functions to read block from disk to C header
a263a4caf2 kernel: Add function for copying block data to C header
b30e15f432 kernel: Add functions for the block validation state to C header
aa262da7bc kernel: Add validation interface to C header
d27e27758d kernel: Add interrupt function to C header
1976b13be9 kernel: Add import blocks function to C header
a747ca1f51 kernel: Add chainstate load options for in-memory dbs in C header
070e77732c kernel: Add options for reindexing in C header
ad80abc73d kernel: Add block validation to C header
cb1590b05e kernel: Add chainstate loading when instantiating a ChainstateManager
e2c1bd3d71 kernel: Add chainstate manager option for setting worker threads
65571c36a2 kernel: Add chainstate manager object to C header
c62f657ba3 kernel: Add notifications context option to C header
9e1bac4585 kernel: Add chain params context option to C header
337ea860df kernel: Add kernel library context object
28d679bad9 kernel: Add logging to kernel library C header
2cf136dec4 kernel: Introduce initial kernel C header API
e15e8cbada qt: Modernize custom filtering
745eb053a4 Merge bitcoin-core/gui#901: Add createwallet, createwalletdescriptor, and migratewallet to history filter
52b1595850 depends: disable builtin variables
8b5a28fa78 depends: disable builtin rules and suffixes.
7632e0ba31 ci: fix configure docker action inputs
746d36cc80 Merge bitcoin/bitcoin#33754: ci: gha: Set debug_pull_request_number_str annotation
2d23820ee1 refactor: remove dead branches in `SingletonClusterImpl`
e346ecae83 Add eclipse, partitioning, and fingerprinting note to i2p.md
25c45bb0d0 Merge bitcoin/bitcoin#33567: node: change a tx-relay on/off flag to enum
422b468229 Merge bitcoin/bitcoin#33683: refactor/doc: Add blockman param to GetTransaction doc comment
da6f041e39 Merge bitcoin/bitcoin#31645: [IBD] coins: increase default UTXO flush batch size to 32 MiB
832a57673a Merge bitcoin/bitcoin#33749: test: ipc: resolve symlinks in `which capnp`
3cd4263bf6 Merge bitcoin/bitcoin#33753: test: Format strings in `test_runner`
78d4d36730 test: Format strings in `*.rs`
fa9d0f994b ci: gha: Set debug_pull_request_number_str annotation
6eaa00fe20 test: clarify submitBlock() mutates the template
862bd43283 mining: ensure witness commitment check in submitBlock
00d1b6ef4b doc: clarify UpdateUncommittedBlockStructures
305384a037 Merge bitcoin/bitcoin#33746: ci: Add missing python3-dev package for riscv64
8eda7210eb Merge bitcoin/bitcoin#33743: fuzz: refactor memcpy to std::ranges::copy to work around ubsan warn
19a6a3e75e Add eclipse, partitioning, and fingerprinting note in tor.md
51093d6ae1 test: resolve symlinks in which result for capnp
fa6c0bedd3 refactor: Return uint64_t from GetSerializeSize
fad0c8680e refactor: Use uint64_t over size_t for serialized-size values
fa4f388fc9 refactor: Use fixed size ints over (un)signed ints for serialized values
6f359695c3 Merge bitcoin/bitcoin#33698: test: Use same rpc timeout for authproxy and cli
c281bb6837 Merge bitcoin/bitcoin#32924: test: add valid tx test with minimum-sized ECDSA signature (8 bytes DER-encoded)
facf8b771a ci: Add missing python3-dev package for riscv64
b4d0288c46 doc: update Guix INSTALL.md
0b3b8a3be1 ci: fix lint docker caching
fa4b52bd16 fuzz: refactor memcpy to std::ranges::copy to work around ubsan warn
72511fd02e Merge bitcoin/bitcoin#33555: build: Bump clang minimum supported version to 17
060bb55508 rpc: add decoded tx details to gettransaction with extra wallet fields
ad1c3bdba5 [move only] move DecodeTxDoc() to a common util file for sharing
d633db5416 rpc: add "ischange: true" in wallet gettransaction decoded tx output
79d6f458e2 random: scope environ extern to macOS, BSDs and Illumos
292ea0eb89 Merge bitcoin/bitcoin#33677: ci: Retry image building once on failure
dd82c6c5d0 Merge bitcoin/bitcoin#33693: ci: use pycapnp 2.2.1
3bb30658e6 Merge bitcoin/bitcoin#32380: Modernize use of UTF-8 in Windows code
5a58d4915e Merge bitcoin/bitcoin#33546: test: add functional test for `TestShell` (matching doc example)
1abc8fa308 Merge bitcoin/bitcoin#33218: refactor: rename `fees.{h,cpp}` to `fees/block_policy_estimator.{h,cpp}`
de15e52f09 Merge bitcoin/bitcoin#32867: doc: mention key removal in rpc interface modification
5d784bebaf clang-tidy: Disable `ArrayBound` check in src/ipc and src/test
5efdb0ef30 ci: Update Clang in "tidy" job
fa01f38e53 move-only: Move CBlockFileInfo to kernel namespace
fa2bbc9e4c refactor: [rpc] Remove cast when reporting serialized size
fa364af89b test: Remove outdated comment
24434c1284 Merge bitcoin/bitcoin#31308: ci, iwyu: Treat warnings as errors for specific directories
27cd7f5049 Merge bitcoin/bitcoin#33185: guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2
80bb7012be Merge bitcoin/bitcoin#31514: wallet: allow label for non-ranged external descriptor (if `internal=false`) & disallow label for ranged descriptors
5e1f626ac3 Merge bitcoin/bitcoin#32504: test: descriptor: cover invalid multi/multi_a cases
dcb56fd4cb interfaces: add interruptWait method
56e9703968 Merge bitcoin/bitcoin#29640: Fix tiebreak when loading blocks from disk (and add tests for comparing chain ties)
53b34c80c6 ci: use pycapnp 2.2.1 in mac native job
865432869c ci: remove Python version comment from mac config
9bd9ec00b2 Merge bitcoin/bitcoin#33688: test: Update BIP324 test vectors
1a7fb5eeee fees: return current block height in estimateSmartFee
ab49480d9b fees: rename fees_args to block_policy_estimator_args
06db08a435 fees: refactor: rename fees to block_policy_estimator
6dfdd7e034 fees: refactor: rename policy_fee_tests.cpp to feerounder_tests.cpp
f54ffb4bc1 Merge bitcoin/bitcoin#32813: clang-format: make formatting deterministic for different formatter versions
1916c51cd8 Merge bitcoin/bitcoin#33210: fuzz: enhance wallet_fees by mocking mempool stuff
0eb554728c Merge bitcoin/bitcoin#33336: log: print every script verification state change
c6c4edf324 Merge bitcoin/bitcoin#32983: rpc: refactor: use string_view in Arg/MaybeArg
00ad998d95 Merge bitcoin/bitcoin#33252: p2p: add `DifferenceFormatter` fuzz target and invariant check
1a1f46c228 refactor/doc: Add blockman param to `GetTransaction` doc comment and reorder out param
66667d6512 test: Use same rpc timeout for authproxy and cli
5555bce994 ci: Document why IN_GETOPT_BIN env var is needed on macOS
fabe516440 ci: Export the container id in python script
f6ba97cea1 Merge bitcoin/bitcoin#33666: ci: Drop libFuzzer from msan fuzz task
af78d36512 Merge bitcoin/bitcoin#32588: util: Abort on failing CHECK_NONFATAL in debug builds
51877f2fc5 test: Update BIP324 test vectors
161864a038 Merge bitcoin/bitcoin#32579: p2p: Correct unrealistic headerssync unit test behavior
70a6fb5e5a Merge bitcoin/bitcoin#33172: test: p2p block malleability
99cb2054bd Merge bitcoin/bitcoin#33600: refactor: Construct g_verify_flag_names on first use
211bf6c975 Merge bitcoin/bitcoin#33566: miner: fix empty mempool case for waitNext()
944e5ff848 doc: mention key removal in rpc interface modification
d32f9525e4 Merge bitcoin/bitcoin#33679: test: set number of RPC server threads to 2
1c85d06232 Merge bitcoin/bitcoin#32266: depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent`
11684c9ce2 Merge bitcoin/bitcoin#33674: ci: Doc ASLR workaround for sanitizer tasks
e9cd45e3d3 test: set number of RPC server threads to 2
fa6aa9f42f ci: Retry image building once on failure
fa4dbe04d7 ci: Allow overwriting check option in run() helper
fa8e4de5c3 ci: Use os.environ[key] access when value must be set
7d27af98c7 Merge bitcoin/bitcoin#33461: ci: add Valgrind fuzz
1569bcc387 Merge bitcoin/bitcoin#33639: ci: Only write docker build images to Cirrus cache
98c4994d0f Merge bitcoin/bitcoin#33570: randomenv: Fix MinGW dllimport warning for `environ`
c211d18322 Merge bitcoin/bitcoin#33670: test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py
e4b04630bc ci: add Valgrind fuzz
3fee0754a2 Merge bitcoin/bitcoin#33550: Fix windows libc++ `fs::path` `fstream` compile errors
fa0e36156c ci: Doc ASLR workaround for sanitizer tasks
fa20275db3 test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py
c862936d16 Merge bitcoin/bitcoin#33370: ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow
fabe0e07de ci: Only write docker build images to Cirrus cache
fab64a5d6f ci: Move buildx command to python script
fa72a2bd5c ci: Remove unused MAYBE_CPUSET
fa70e23de7 ci: Drop libFuzzer from msan fuzz task
abe7cbfe1a Merge bitcoin/bitcoin#33470: build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script
689ec28d1d Merge bitcoin/bitcoin#33633: test: [move-only] binary utils to utils.py
0eeae4d174 Merge bitcoin/bitcoin#33625: Update secp256k1 subtree to latest master
4b41f99d57 build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script
d30f149360 Merge bitcoin/bitcoin#33630: doc: correct topology requirements in submitpackage helptext
3d22282564 [doc] correct topology requirements in submitpackage helptext
e744fd1249 Merge bitcoin/bitcoin#33641: Update leveldb subtree to latest master
4371740beb Merge bitcoin/bitcoin#33642: doc: archive release notes for v28.3
ceea24b921 doc: archive release notes for v28.3
54ffe3de5b Update leveldb subtree to latest master
f21162d819 Squashed 'src/leveldb/' changes from aba469ad6a..cad64b151d
e14451ac87 Merge bitcoin/bitcoin#33469: TxGraph: change m_excluded_clusters
f76e1ae389 Merge bitcoin/bitcoin#32313: coins: fix `cachedCoinsUsage` accounting in `CCoinsViewCache`
59c4898994 guix: remove python-pydantic-core input from LIEF
9f2a6927d3 guix: use Clang & LLVM 19 for macOS build
9570ddbec9 guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2
7b5cc276aa guix: patch around riscv issue with newer (2.40+) binutils
91b5cbaabb ci: use Debian Trixie for macOS cross job
fa75ef4328 test: Move export_env_build_path to util.py
fa9f495308 test: Move get_binary_paths and Binaries to util.py
40e7d4cd0d Merge bitcoin/bitcoin#33549: ci: Add macOS cross task for arm64-apple-darwin
ea17618c11 Merge bitcoin/bitcoin#33480: ci: Turn CentOS config into Alpine musl config
b1f8a13702 Merge bitcoin/bitcoin#33624: test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH`
879c21045e Update secp256k1 subtree to latest master
3cbf7cb3e6 Squashed 'src/secp256k1/' changes from b9313c6e1a..d543c0d917
2f7a50f67c Merge bitcoin/bitcoin#33462: ci: add libcpp hardening flags to macOS fuzz job
07a926474b node: change a tx-relay on/off flag to enum
48aa0e98d0 Merge bitcoin/bitcoin#29675: wallet: Be able to receive and spend inputs involving MuSig2 aggregate keys
db4bde0b03 Merge bitcoin/bitcoin#33517: multiprocess: Fix high overhead from message logging
3a10d700bc test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH` flag
9314113b29 Merge bitcoin/bitcoin#33610: doc: archive release notes for v29.2
9b43428c96 TxGraph: change m_excluded_clusters
6e1adbbaa1 Merge bitcoin/bitcoin#33612: test: change log rate limit version gate
fdcf67de80 Merge bitcoin/bitcoin#33157: cluster mempool: control/optimize TxGraph memory usage
7b544341c0 test: change log rate limit version gate from 299900 to 290100
9610b0d1e2 randomenv: Fix MinGW dllimport warning for `environ`
6c4fe401e9 Merge bitcoin/bitcoin#33508: ci: fix buildx gha cache authentication on forks
8f7673257a miner: fix empty mempool case for waitNext()
c11a3dcc88 doc: archive release notes for v29.2
64a7c7cbb9 Merge bitcoin/bitcoin#33558: ci: Use native platform for win-cross task
93b56e95c0 Merge bitcoin/bitcoin#33601: doc: archive release notes for v30.0
c235aa468b Update minisketch subtree to latest upstream
4543a3bde2 Squashed 'src/minisketch/' changes from ea8f66b1ea..d1bd01e189
563747971b Merge bitcoin/bitcoin#33580: depends: Use $(package)_file_name when downloading from the fallback
24d861da78 coins: only adjust `cachedCoinsUsage` on `EmplaceCoinInternalDANGER` insert
d7c9d6c291 coins: fix `cachedCoinsUsage` accounting to prevent underflow
39cf8bb3d0 refactor: remove redundant usage tracking from `CoinsViewCacheCursor`
67cff8bec9 refactor: assert newly-created parent cache entry has zero memory usage
023cd5a546 txgraph: add SingletonClusterImpl (mem optimization)
e346250732 txgraph: give Clusters a range of intended tx counts (preparation)
e93b0f09cc txgraph: abstract out creation of empty Clusters (refactor)
6baf12621f txgraph: comment fixes (doc fix)
726b995739 txgraph: make Cluster an abstract class (refactor)
2602d89edd txgraph: avoid accessing other Cluster internals (refactor)
04c808ac4c txgraph: expose memory usage estimate function (feature)
7680bb8fd4 txgraph: keep track of Cluster memory usage (preparation)
4ba562e5f4 txgraph: keep data structures compact (mem optimization)
bb5cb222ae depgraph: add memory usage control (feature)
b1637a90de txgraph: avoid holes in DepGraph positions (mem optimization)
2b1d302508 txgraph: move some sanity checks from Cluster to TxGraphImpl (refactor)
d40302fbaf txgraph: Make level of Cluster implicit (optimization)
8d6e49158e doc: archive release notes for v30.0
4e352efa2c qt: add createwallet, createwalletdescriptor, and migratewallet to history filter
0626b90f50 multiprocess: align our logging with libmultiprocess's
9d068225ee multiprocess: update multiprocess EventLoop construction to use options
d2987102dd Merge bitcoin/bitcoin#33573: doc: bump the template macOS version
f6567527d8 doc: bump the template macOS version
faa9d10c84 refactor: Construct g_verify_flag_names on first use
becf150013 Merge bitcoin/bitcoin#33518: Update libmultiprocess subtree to support reduced logging
01cc20f330 test: improve coverage for a resolved stalling situation
9af6daf07e test: remove magic number when checking for blocks that have arrived
3069d66dca p2p: During block download, adjust pindexLastCommonBlock better
cd1b7fa1ff Merge bitcoin/bitcoin#33577: Revert "depends: Update URL for `qrencode` package source tarball"
fa0fa0f700 refactor: Revert "disable self-assign warning for tests"
faed118fb3 build: Bump clang minimum supported version to 17
6b4a92b0fa Merge bitcoin/bitcoin#33568: doc: how to update a subtree
90b2884ce4 Merge bitcoin/bitcoin#33581: ci: Properly include $FILE_ENV in DEPENDS_HASH
d44b860cd0 Merge bitcoin/bitcoin#33584: ci: upgrade GitHub Action to download-artifact@v5
57f7c68821 test: add functional test for `TestShell` (matching doc example)
53874f7934 doc: test: update TestShell example instructions/options
b35341b9ba Update ci.yml
ceeb53adcd ci: Properly include $FILE_ENV in DEPENDS_HASH
671b774d1b depends: Use $(package)_file_name when downloading from the fallback
e4335a3192 Revert "depends: Update URL for `qrencode` package source tarball"
a89a822e6e Revert "depends: Use hash instead of file name for package download stamp"
fad5a7101c ci: Add macOS cross task for arm64
fa8c750a0a ci: Refactor get_previous_releases step in win-test-cross task
e4c04f7759 ci: add libcpp hardening flags to macOS fuzz job
a1226bc760 doc: how to update a subtree
eda91b07fd Merge commit '0f01e1577f7c6734eb345139a12aba329ef22a5f' into pr/subtree-6
0f01e1577f Squashed 'src/ipc/libmultiprocess/' changes from 47d79db8a552..a4f929696490
fa6fd16f36 ci: Use native platform for win-cross task
53e4951a5b Switch to ANSI Windows API in `fsbridge::fopen()` function
dbe770d921 Switch to ANSI Windows API in `Win32ErrorString()` function
06d0be4e22 Remove no longer necessary `WinCmdLineArgs` class
f366408492 cmake: Set process code page to UTF-8 on Windows
dccbb17806 Set minimum supported Windows version to 1903 (May 2019 Update)
c864a4c194 Simplify fs::path by dropping filename() and make_preferred() overloads
b0113afd44 Fix windows libc++ fs::path fstream compile errors
b63428ac9c rpc: refactor: use more (Maybe)Arg<std::string_view>
037830ca0d refactor: increase string_view usage
b3bf18f0ba rpc: refactor: use string_view in Arg/MaybeArg
45bd891465 log: split assumevalid ancestry-failure-reason message
6c13a38ab5 log: separate script verification reasons
f2ea6f04e7 refactor: untangle assumevalid decision branches
9bc298556c validation: log initial script verification state
4fad4e992c test: add assumevalid scenarios scaffold
c25a5e670b init: Signal m_tip_block_cv on Ctrl-C
6a29f79006 test: Test SIGTERM handling during waitforblockheight call
ac599c4a9c test: Test MuSig2 in the wallet
68ef954c4c wallet: Keep secnonces in DescriptorScriptPubKeyMan
4a273edda0 sign: Create MuSig2 signatures for known MuSig2 aggregate keys
258db93889 sign: Add CreateMuSig2AggregateSig
bf69442b3f sign: Add CreateMuSig2PartialSig
512b17fc56 sign: Add CreateMuSig2Nonce
82ea67c607 musig: Add MuSig2AggregatePubkeys variant that validates the aggregate
d99a081679 psbt: MuSig2 data in Fill/FromSignatureData
4d8b4f5336 signingprovider: Add musig2 secnonces
c06a1dc86f Add MuSig2SecNonce class for secure allocation of musig nonces
9baff05e49 sign: Include taproot output key's KeyOriginInfo in sigdata
4b24bfeab9 pubkey: Return tweaks from BIP32 derivation
bc706955d7 ci: expose all ACTIONS_* vars
444409ff2b ci: Reduce Alpine musl task to md runner size
fa6b2e9efe ci: Turn centos config into alpine musl config
1fc7a81f1f log: reduce excessive messages during block replay
79b4c276e7 Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found
91ac64b0a6 log: reword `signature validations` to `script verification` in `assumevalid` log
f14876213a musig: Move synthetic xpub construction to its own function
f031536f2d ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow
cc5dda1de3 headerssync: Make HeadersSyncState more flexible and move constants
8fd1c2893e test(headerssync): Test returning of pow_validated_headers behavior
7b00643ef5 test(headerssync): headers_sync_chainwork test improvements
04eeb9578c doc(test): Improve comments
fe896f8faa refactor(test): Store HeadersSyncState on the stack
f03686892a refactor(test): Break up headers_sync_state
e984618d0b refactor(headerssync): Process spans of headers
a4ac9915a9 refactor(headerssync): Extract test constants ahead of breakup into functions
02d2b5a11c ci, iwyu: Treat warnings as errors for specific directories
57a3eac387 refactor: Fix includes in `index` directory
bdb8eadcdc refactor: Fix includes in `crypto` directory
56f2a689a2 ci: Do not patch `leveldb` to workaround UB in "tidy" CI job
65a10fc3c5 p2p: add assertion for BlockTransactionsRequest indexes
58be359f6b fuzz: add a target for DifferenceFormatter Class
13f36c020f clang-format: regenerate configs
5ded99a7f0 fuzz: MockMempoolMinFee in wallet_fees
c9a7a198d9 test: move MockMempoolMinFee to util/txmempool
adf67eb21b fuzz: create FeeEstimatorTestingSetup to set fee_estimator
ff10a37e99 fuzz: mock CBlockPolicyEstimator in wallet_fuzz
f591c3beca fees: make estimateSmartFee/HighestTargetTracked virtual for mocking
b6f8c48946 coins: increase default `dbbatchsize` to 32 MiB
8bbb7b8bf8 refactor: Extract default batch size into kernel
d0e1bbad01 test: repeat block malleability test with relayable block over P2P
19273d0705 fuzz: set mempool options in wallet_fees
81e5c8385b test: cover invalid codesep positions for signature in taproot
743abbcbde refactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag`
e030240e90 refactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing`
cdab9480e9 refactor: inline constant return value of `CDBWrapper::Write`
d1847cf5b5 refactor: inline constant return value of `TxIndex::DB::WriteTxs`
50b63a5698 refactor: inline constant return value of `CDBWrapper::WriteBatch`
fb8720f1e0 sign: Refactor Schnorr sighash computation out of CreateSchnorrSig
a4cfddda64 tests: Clarify why musig derivation adds a pubkey and xpub
39a63bf2e7 descriptors: Add a doxygen comment for has_hardened output_parameter
2320184d0e descriptors: Fix meaning of any_key_parsed
0465574c12 test: Fixes send_blocks_and_test docs
09c95f21e7 test: Adds block tiebreak over restarts tests
18524b072e Make nSequenceId init value constants
8b91883a23 Set the same best tip on restart if two candidates have the same work
5370bed21e test: add functional test for complex reorgs
ab145cb3b4 Updates CBlockIndexWorkComparator outdated comment
fa37153288 util: Abort on failing CHECK_NONFATAL in debug builds
fa0dc4bdff test: Allow testing of check failures
faeb58fe66 refactor: Set G_ABORT_ON_FAILED_ASSUME when G_FUZZING_BUILD
8810642b57 test: add option to skip large re-org test in feature_block
5fa81e239a test: add valid tx test with minimum-sized ECDSA signature (8 bytes DER-encoded)
58e55b17e6 test: descriptor: cover invalid multi/multi_a cases
664657ed13 bugfix: disallow label for ranged descriptors & allow external non-ranged descriptors to have label
fe71a4b139 depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent`
REVERT: 81cec737e6 kernel: Fix bitcoin-chainstate for windows
REVERT: 1826c485dd kernel: Add Purpose section to header documentation
REVERT: d7e618aa98 kernel: Allowing reducing exports
REVERT: fb7f524133 kernel: Add pure kernel bitcoin-chainstate
REVERT: dd0bdf279e Kernel: Add functions for working with outpoints
REVERT: eaa6abfc73 kernel: Add block hash type and block tree utility functions to C header
REVERT: 824ddf2885 kernel: Add function to read block undo data from disk to C header
REVERT: 76cab0768b kernel: Add functions to read block from disk to C header
REVERT: e41f6f459a kernel: Add function for copying block data to C header
REVERT: 39c647647a kernel: Add functions for the block validation state to C header
REVERT: 8a19a9d607 kernel: Add validation interface to C header
REVERT: 38a990dd48 kernel: Add interrupt function to C header
REVERT: fee8f6ff38 kernel: Add import blocks function to C header
REVERT: c29a6b87cc kernel: Add chainstate load options for in-memory dbs in C header
REVERT: e788b3ba06 kernel: Add options for reindexing in C header
REVERT: 2707fc515c kernel: Add block validation to C header
REVERT: 51a24c4004 kernel: Add chainstate loading when instantiating a ChainstateManager
REVERT: ea01a8caf3 kernel: Add chainstate manager option for setting worker threads
REVERT: add5904e0a kernel: Add chainstate manager object to C header
REVERT: 37a3395d27 kernel: Add notifications context option to C header
REVERT: d838a934be kernel: Add chain params context option to C header
REVERT: dc58ae9fc0 kernel: Add kernel library context object
REVERT: 7744997596 kernel: Add logging to kernel library C header
REVERT: dc504f57b3 kernel: Introduce initial kernel C header API

git-subtree-dir: bitcoinkernel/bitcoin
git-subtree-split: c66e988754391a094af93ef2a9127200d093b669
fanquake added a commit that referenced this pull request Nov 20, 2025
…on test

2578e6f test: Fix race condition in IPC interface block propagation test (Fabian Jahr)

Pull request description:

  CI failed on this condition here: https://github.com/bitcoin/bitcoin/actions/runs/19395398994/job/55494696022?pr=33878#step:9:3983

  The check was added not too long ago in #33745 and the fix here switches the check to the node which actually produces the block. There are also some comments added to make the checks easier so understand.

  Closes #33884

ACKs for top commit:
  Sjors:
    re-utACK 2578e6f
  maflcko:
    lgtm ACK 2578e6f

Tree-SHA512: bfb7ae44aede50a00d4096e1a9922f9b8df31ce4242e12863e329d0d1e714d8cb46c852f694c32314e4bd26b524535e3a6967b7c57861a9b00cf09831a950b99
stringintech added a commit to stringintech/go-bitcoinkernel that referenced this pull request Nov 24, 2025
0690514d4f Merge bitcoin/bitcoin#33770: init: Require explicit -asmap filename
b2f88b53e0 Merge bitcoin/bitcoin#33286: doc: update multisig tutorial to use multipath descriptors
313cdd2bfb Merge bitcoin/bitcoin#33915: test: Retry download in get_previous_releases.py
17072f7005 Merge bitcoin/bitcoin#33912: clang-format: Set PackConstructorInitializers: CurrentLine
6b2d17b132 Merge bitcoin/bitcoin#33888: ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG
ac71df4338 Merge bitcoin/bitcoin#33870: refactor: remove incorrect lifetimebounds
6cdb51c14e Merge bitcoin/bitcoin#33887: doc: Improve CI docs on env and qemu-user-static
29c37651c7 Merge bitcoin/bitcoin#33880: test: Fix race condition in IPC interface block progation test
32368cd3e9 Merge bitcoin/bitcoin#33905: ci: Consistenly only cache on the default branch
e55c49f851 Merge bitcoin/bitcoin#33851: depends: update xcb-util packages to latest versions
a07bd8415d Merge bitcoin/bitcoin#33824: ci: Enable experimental kernel stuff in most CI tasks via `dev-mode`
f541b92cf2 depends: expat 2.7.3
fad06f3bb4 test: retry download in get_previous_releases.py
2ebf4356e6 depends: libxcb 1.17.0
ba7ac870a3 depends: xcb_proto 1.17.0
fad0c76d0a clang-format: Set PackConstructorInitializers: CurrentLine
42d0692f91 depends: libxcb-util-cursor 0.1.6
25b85919ab depends: libxcb 1.15
d129384ca9 depends: libxcb-util-wm 0.4.2
0b857ae9e5 depends: libxcb-util-renderutil 0.3.10
35e50488b2 depends: libxcb-util-keysyms 0.4.1
74b68ad28b depends: libxcb-util-image 0.4.1
5bc0dde85d depends: libxcb-util 0.4.1
8d07292c28 depends: libXau 1.0.12
1af46cff94 Merge bitcoin/bitcoin#33896: clang-format: Set InsertNewlineAtEOF: true
27ac11ea0a Merge bitcoin/bitcoin#33867: kernel: handle null or empty directories in implementation
2578e6fc0f test: Fix race condition in IPC interface block propagation test
288b8c30be doc: Drop (default: none) from -i2psam description
509dc91db1 Merge bitcoin/bitcoin#33026: test, refactor: Embedded ASMap [1/3]: Selected minor preparatory work
b126f98194 Merge bitcoin-core/gui#910: Added test coverage for qt gui#901 console history filter
7d7b829c36 Merge bitcoin-core/gui#908: Remove HD seed reference from blank wallet tooltip
53b72372da Merge bitcoin/bitcoin#31734: miniscript: account for all `StringType` variants in `Miniscriptdescriptor::ToString()`
a7f9bbe4c5 Merge bitcoin/bitcoin#32821: rpc: Handle -named argument parsing where '=' character is used
55555db055 doc: Add missing --platform=linux to docker build command
fa0ce4c148 ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG
faa0973de2 ci: [refactor] Rename CIRRUS_PR env var to LINT_CI_IS_PR
fa411f938e ci: Consistenly only cache on the default branch
552eb90071 doc: CI - Describe qemu-user-static usage
2afbbddee5 doc: CI - Clarify how important `env -i` is and why
2444488f6a Merge bitcoin/bitcoin#33894: net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()`
fa1bf6818f clang-format: Set InsertNewlineAtEOF: true
115d298a9f Merge bitcoin/bitcoin#33872: init: completely remove `-maxorphantx` option
a90f3922ff Merge bitcoin/bitcoin#32419: psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows
4d893c0f46 net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()`
fa1dacaebe ci: Move lint exec snippet to stand-alone py file
ead849c9f1 Merge bitcoin/bitcoin#33886: test: Remove tests violating hardened std::span
c03081fdb4 Merge bitcoin/bitcoin#33776: ci: Lint follow-ups
fadb4f63cb test: Remove tests violating hardened std::span
6e21558160 Merge bitcoin/bitcoin#33869: refactor: Avoid -W*-whitespace in git archive
c8715aca95 Merge bitcoin/bitcoin#33247: build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings
ee5de407e3 Merge bitcoin/bitcoin#33537: guix: build `bitcoin-qt` with static libxcb & utils
024a787350 Merge bitcoin/bitcoin#33876: doc: Update NetBSD Build Guide
c66e988754 Merge bitcoin/bitcoin#33865: cmake: Specify Windows plugin path in `test_bitcoin-qt` property
c29eaeeaf9 doc: Update NetBSD Build Guide
7f318e1dd0 test: Add better coverage for Autofile size()
e221b25246 Merge bitcoin/bitcoin#33860: depends: drop Qt patches
b7af960eb8 refactor: Add AutoFile::size
ec0f75862e refactor: Modernize logging in util/asmap.cpp
606a251e0a tests: add unit test vectors for asmap interpreter
6657bcbdb4 kernel: allow null data_directory
0aebdac95d init: completely remove `-maxorphantx` option
99d012ec80 refactor: return reference instead of pointer
f743e6c5dd refactor: add missing LIFETIMEBOUND annotation for parameter
fa95353902 ci: Run macos tasks in a git archive, not git checkout
141117f5e8 refactor: remove incorrect LIFETIMEBOUND annotations
fae3618fd6 ci: Annotate all check runs with the pull request number
faf05d637d ci: Retry lint image building once after failure
96963b888e depends: static libxcb
ad06843fab depends: avoid qdbusviewer in Qt build
6848ed56dc depends: apply Qt patches to fix static libxcb use
dfde31f2ec Merge bitcoin/bitcoin#33864: scripted-diff: fix leftover references to `policy/fees.h`
5f1b016beb depends: static libxcb-util-image
98a2fbbe70 depends: static libxkbcommon
1412baf772 depends: static libxcb-util-wm
a4009dadf4 depends: static libxcb-keysyms
bcfb8679b3 depends: static libxcb-render-util
faf99ae379 refactor: Avoid -W*-whitespace in git archive
2594d5a189 build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings
310e4979b3 qt: Added test coverage for qt gui#901 console history filter
0dd8d5c237 cmake: Specify Windows plugin path in `test_bitcoin-qt` property
b0a3887154 scripted-diff: fix leftover references to `policy/fees.h`
48d4b936e0 Merge bitcoin/bitcoin#33511: init: Fix Ctrl-C shutdown hangs during wait calls
3c3c6adb72 Merge bitcoin/bitcoin#33745: mining: check witness commitment in submitBlock
e652b69b8d Merge bitcoin/bitcoin#33003: test: add option to skip large re-org test in feature_block
3789215f73 Merge bitcoin/bitcoin#33724: refactor: Return uint64_t from GetSerializeSize
d4e2a45833 Merge bitcoin/bitcoin#33750: doc: document fingerprinting risk when operating node on multiple networks
47618446a0 Merge bitcoin/bitcoin#33853: kernel: Allow null arguments for serialized data
3e9aca6f1b depends: drop qtbase-moc-ignore-gcc-macro.patch qt patch
fac4f6de28 ci: Rewrite lint task Bash snippet to Python
fa0d37a579 ci: Rewrite Bash to check inputs to Python
0da5a82700 depends: drop unused qt patch
fae83611b8 ci: [refactor] Use --preset=dev-mode in mac_native task
fadb67b4b4 ci: [refactor] Base nowallet task on --preset=dev-mode
6666980e86 ci: Enable bitcoin-chainstate and test_bitcoin-qt in win64 task
d0da953773 Merge bitcoin/bitcoin#32482: build: add `-W*-whitespace`
f450761f83 Merge bitcoin/bitcoin#33842: build: Bump g++ minimum supported version to 12
faff7b2312 ci: Enable experimental kernel stuff in i686 task
fa1632eecf ci: Enable experimental kernel stuff in mac-cross tasks
fad10ff7c9 ci: Enable experimental kernel stuff in armhf task
fa9d67c13d ci: Enable experimental kernel stuff in Alpine task
fab3fb8302 ci: Enable experimental kernel stuff in s390x task
fa7da8a646 ci: Enable experimental kernel stuff in valgrind task
fa9c2973d6 ci: Enable experimental kernel stuff in TSan task
fad30d4395 ci: Enable experimental kernel stuff in MSan task
fa9f29a4a7 doc: Recommend latest Debian stable or Ubuntu LTS
fa1711ee0d doc: Add GCC-12 min release notes
faa8be75c9 ci: Enable experimental kernel stuff in G++-12 task (previous releases)
fabce97b30 test: Remove gccbug_90348 test case
fa3854e432 test: Remove unused fs::create_directories test
fa9dacdbde util: [refactor] Remove unused create_directories workaround
138726a6f8 Merge bitcoin/bitcoin#33850: depends: drop qtbase_avoid_native_float16 qt patch
1c3d5c8ffd Merge bitcoin/bitcoin#33840: test: [refactor] Use reference over ptr to chainman
40dcbf580d build: add -Wtrailing-whitespace=any
a3ac59a431 ci: Enable experimental kernel stuff in ASan task
5b89956eeb kernel: Allow null arguments for serialized data
169f93d2ac depends: drop qtbase_avoid_native_float16 qt patch
d7659cd7e6 build: add -Wleading-whitespace=spaces
d86650220a cmake: Disable `-Wtrailing-whitespace` warnings for RCC-generated files
aabc5ca6ed cmake: Switch from AUTORCC to `qt6_add_resources`
25ae14c339 subprocess: replace tab with space
0c2b9dadd5 scripted-diff: remove whitespace in sha256_sse4.cpp
4da084fbc9 scripted-diff: change whitespace to spaces in univalue
e6caf150b3 ci: add moreutils to lint job
a7e8067610 Merge bitcoin/bitcoin#33181: guix: build for Linux HOSTS with `-static-libgcc`
b354d1ce5c Merge bitcoin/bitcoin#33820: kernel: trim Chain interface
fa807f78ae build: Bump g++ minimum supported version to 12
a4e96cae7d Merge bitcoin/bitcoin#33042: refactor: inline constant return values from `dbwrapper` write methods
8c2710b041 Merge bitcoin/bitcoin#32517: rpc: add "ischange: true" to decoded tx outputs in wallet gettransaction response
1fe851a478 Merge bitcoin/bitcoin#32180: p2p: Advance pindexLastCommonBlock early after connecting blocks
5f0303b93f Merge bitcoin/bitcoin#33443: log: reduce excessive "rolling back/forward" messages during block replay
f4903dddc9 Merge bitcoin/bitcoin#33433: Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found
7a4901c902 test, refactor: Fix `-Warray-bounds` warning
06e9458869 Merge bitcoin/bitcoin#32856: Update `minisketch` subtree
66978a1a95 kernel: remove btck_chain_get_tip
4dd7e6dc48 kernel: remove btck_chain_get_genesis
faf2759c8c test: [refactor] Use reference over ptr to chainman
490cb056f6 Merge bitcoin/bitcoin#33785: util: Allow `Assert` (et al.) in contexts without __func__
dcd0099a76 Merge bitcoin/bitcoin#33826: scripted-diff: Remove obsolete comment
01adbbcd9c Merge bitcoin/bitcoin#33827: doc: Correct `pkgin` command usage on NetBSD
eec21bc7c8 Merge bitcoin/bitcoin#33536: doc: reference fuzz coverage steps in quick-start
035f934e02 Merge bitcoin/bitcoin#33823: ci: Use cmake --preset=dev-mode in test-each-commit task
ddd2afac10 Merge bitcoin/bitcoin#33676: interfaces: enable cancelling running `waitNext` calls
dee7eec643 doc: mention coverage build in quickstart section
0698c6b494 doc: Correct `pkgin` command usage on NetBSD
36724205fc scripted-diff: Remove obsolete comment
ca1ce52a0f Merge bitcoin/bitcoin#33825: refactor: Add missing include in bitcoinkernel_wrapper.h
fa1e8d8bad refactor: Add missing include in bitcoinkernel_wrapper.h
fa6db67369 ci: [refactor] Extract build_dir constant in ci-test-each-commit-exec.py
fa95e6cdc1 ci: Use cmake --preset=dev-mode in test-each-commit task
513a0da2e0 Merge bitcoin/bitcoin#33818: ci: Extend tidy job to cover kernel code
5d0a40d607 ci: Extend tidy job to cover kernel code
93e79181da Merge bitcoin/bitcoin#33786: script: remove dead code in `CountWitnessSigOps`
3c4bec6223 Merge bitcoin/bitcoin#33782: test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py
4b12beedae Merge bitcoin/bitcoin#33793: test: move create_malleated_version() to messages.py for reuse
0b45e6db10 Merge bitcoin/bitcoin#33789: doc: add cmake help option in Windows build docs
2b9c351198 Merge bitcoin/bitcoin#33768: refactor: remove dead branches in `SingletonClusterImpl`
fad6efd3be refactor: Use STR_INTERNAL_BUG macro where possible
fada379589 doc: Remove unused bugprone-lambda-function-name suppression
f06c6e1898 guix: build for Linux HOSTS with -static-libgcc
1bdf4695b0 guix: patch store paths out of libunwind
078a72c35f guix: move static-libc++ into CMAKE_EXE_LINKER_FLAGS flags
2bd155e6ee test: move create_malleated_version() to messages.py for reuse
9577daa3b8 doc: Add cmake help option in Windows build instructions
fae1d99651 refactor: Use const reference to std::source_location
fa5fbcd615 util: Allow Assert() in contexts without __func__
24bcad3d4d refactor: remove dead code in `CountWitnessSigOps`
ec8516ceb7 test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py
2d23820ee1 refactor: remove dead branches in `SingletonClusterImpl`
e346ecae83 Add eclipse, partitioning, and fingerprinting note to i2p.md
f6ec3519a3 init: Require explicit -asmap filename
6eaa00fe20 test: clarify submitBlock() mutates the template
862bd43283 mining: ensure witness commitment check in submitBlock
00d1b6ef4b doc: clarify UpdateUncommittedBlockStructures
929f69d0ff qt: Remove HD seed reference from blank wallet tooltip
19a6a3e75e Add eclipse, partitioning, and fingerprinting note in tor.md
fa6c0bedd3 refactor: Return uint64_t from GetSerializeSize
fad0c8680e refactor: Use uint64_t over size_t for serialized-size values
fa4f388fc9 refactor: Use fixed size ints over (un)signed ints for serialized values
060bb55508 rpc: add decoded tx details to gettransaction with extra wallet fields
ad1c3bdba5 [move only] move DecodeTxDoc() to a common util file for sharing
d633db5416 rpc: add "ischange: true" in wallet gettransaction decoded tx output
fa01f38e53 move-only: Move CBlockFileInfo to kernel namespace
fa2bbc9e4c refactor: [rpc] Remove cast when reporting serialized size
fa364af89b test: Remove outdated comment
dcb56fd4cb interfaces: add interruptWait method
de7c3587cd doc: Update add checksum instructions in tutorial
c235aa468b Update minisketch subtree to latest upstream
4543a3bde2 Squashed 'src/minisketch/' changes from ea8f66b1ea..d1bd01e189
01cc20f330 test: improve coverage for a resolved stalling situation
9af6daf07e test: remove magic number when checking for blocks that have arrived
3069d66dca p2p: During block download, adjust pindexLastCommonBlock better
2a46e94a16 doc: Update multisig-tutorial.md to use multipath descriptors
c25a5e670b init: Signal m_tip_block_cv on Ctrl-C
f53dbbc505 test: Add functional tests for named argument parsing
694f04e2bd rpc: Handle -named argument parsing where '=' character is used
6a29f79006 test: Test SIGTERM handling during waitforblockheight call
1fc7a81f1f log: reduce excessive messages during block replay
79b4c276e7 Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found
743abbcbde refactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag`
e030240e90 refactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing`
cdab9480e9 refactor: inline constant return value of `CDBWrapper::Write`
d1847cf5b5 refactor: inline constant return value of `TxIndex::DB::WriteTxs`
50b63a5698 refactor: inline constant return value of `CDBWrapper::WriteBatch`
8810642b57 test: add option to skip large re-org test in feature_block
d31158d364 psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows
28a4fcb03c test: check listdescriptors do not return a mix of hardened derivation marker
975783cb79 descriptor: account for all StringType in MiniscriptDescriptor::ToStringHelper()

git-subtree-dir: depend/bitcoin
git-subtree-split: 0690514d4f72aac251ee0b876cded9187d42c63e
alexanderwiederin added a commit to alexanderwiederin/rust-bitcoinkernel that referenced this pull request Dec 1, 2025
…356041e58d1

6356041e58d1 Merge bitcoin/bitcoin#33972: cmake: Make `BUILD_KERNEL_TEST` depend on `BUILD_KERNEL_LIB`
7d7cb1bb48f1 Merge bitcoin/bitcoin#33971: cmake: Set `WITH_ZMQ` to `ON` in Windows presets
fe1815d48f0c cmake: Make `BUILD_KERNEL_TEST` depend on `BUILD_KERNEL_LIB`
49c672853503 cmake: Set `WITH_ZMQ` to `ON` in Windows presets
f6acbef1084e Merge bitcoin/bitcoin#33764: ci: Add Windows + UCRT jobs for cross-compiling and native testing
808f1d972be3 Merge bitcoin/bitcoin#32009: contrib: turn off compression of macOS SDK to fix determinism (across distros)
4de26b111f4d Merge bitcoin/bitcoin#33514: ci: clear out space on CentOS, depends, gui GHA job
38c8474d0d77 Merge bitcoin/bitcoin#33914: Change Parse descriptor argument to string_view
4b25b274de66 Merge bitcoin/bitcoin#33951: test: check for output to stdout in `TestShell` test
52230a7f697f test: check for output to stdout in `TestShell` test
85d058dc537e Merge bitcoin/bitcoin#33946: interfaces: remove redundant mempool lock in ChainImpl::isInMempool()
e07e57368e9f ci: clear out space on centos job
79d6e874e1da Merge bitcoin/bitcoin#32587: test: Fix reorg patterns in tests to use proper fork-based approach
e249ea7da6c2 Merge bitcoin/bitcoin#33945: depends: latest config.guess & config.sub
3e01b5d0e7be contrib: rename gen-sdk to gen-sdk.py
c1213a35abed macdeploy: disable compression in macOS gen-sdk script
a33d03454508 contrib: more selectively pick files for macOS SDK
70d9e8f0a15d fix: reorg behaviour in mempool tests to match real one
540ed333f6c8 Move the create_empty_fork method to the test framework's blocktools.py module to enable reuse across multiple tests.
2909655fba91 fix: remove redundant mempool lock in ChainImpl::isInMempool()
d5ed4ba9d862 Merge bitcoin/bitcoin#33906: depends: Add patch for Windows11Style plugin
3e4355314b1a depends: latest config.sub
04eb84fe3f73 depends: latest config.guess
b30262dcaa28 Merge bitcoin/bitcoin#33903: ci: Remove redundant busybox option
1a5f1eb08067 Merge bitcoin/bitcoin#33921: doc: clarify and cleanup macOS fuzzing notes
72cb8cef9778 Merge bitcoin/bitcoin#33862: txgraph: drop move assignment operator
ade0397f59f2 txgraph: drop move assignment operator
5336bcd57849 Merge bitcoin/bitcoin#33855: kernel: add btck_block_tree_entry_equals
4f65a1c5db84 Merge bitcoin/bitcoin#33917: clang-format: Set Bitcoin Core IncludeCategories
902717b66dc1 Merge bitcoin/bitcoin#33918: depends: Update Qt download link
68ab2b65bfac Merge bitcoin/bitcoin#33919: ci: Run GUI unit tests in cross-Windows task
7e129b644ec9 Merge bitcoin/bitcoin#33893: test: add `-alertnotify` test for large work invalid chain warning
5fe753b56f45 Merge bitcoin/bitcoin#32655: depends: sqlite 3.50.4; switch to autosetup
ff8c2f37497f Merge bitcoin/bitcoin#33932: ci: Use latest Xcode that the minimum macOS version allows
fa283d28e261 Merge bitcoin/bitcoin#33629: Cluster mempool
2e27bd9c3af9 ci: Add Windows + UCRT jobs for cross-compiling and native testing
238c1c8933b1 Merge bitcoin-core/gui#914: Revert "gui, qt: brintToFront workaround for Wayland"
8343a9ffcc75 test: add `-alertnotify` test for large work invalid chain warning
c34bc01b2ff2 doc: clarify and cleanup macOS fuzzing notes
fa9537cde101 ci: Use latest Xcode that the minimum macOS version allows
17cf9ff7efdb Use cluster size limit for -maxmempool bound, and allow -maxmempool=0 in general
315e43e5d86c Sanity check `GetFeerateDiagram()` in CTxMemPool::check()
de2e9a24c40e test: extend package rbf functional test to larger clusters
4ef4ddb504e5 doc: update policy/packages.md for new package acceptance logic
79f73ad713a8 Add check that GetSortedScoreWithTopology() agrees with CompareMiningScoreWithTopology()
a86ac1176817 Update comments for CTxMemPool class
9567eaa66da8 Invoke TxGraph::DoWork() at appropriate times
0690514d4f72 Merge bitcoin/bitcoin#33770: init: Require explicit -asmap filename
b2f88b53e0ec Merge bitcoin/bitcoin#33286: doc: update multisig tutorial to use multipath descriptors
313cdd2bfb71 Merge bitcoin/bitcoin#33915: test: Retry download in get_previous_releases.py
bd130db994e2 ci: Rename items specific to Windows + MSVCRT
0672e727bf1d Revert "gui, qt: brintToFront workaround for Wayland"
17072f70051d Merge bitcoin/bitcoin#33912: clang-format: Set PackConstructorInitializers: CurrentLine
fa7ea497c3ef ci: Run GUI unit tests in cross-Windows task
fa0fee44a89c ci: Remove redundant busybox option
fa102ec69fae doc: Shorten ci name
fa7e222a2326 clang-format: Set Bitcoin Core IncludeCategories
222222378048 doc: Remove bash -c wrapper
6b2d17b13220 Merge bitcoin/bitcoin#33888: ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG
ac71df43383a Merge bitcoin/bitcoin#33870: refactor: remove incorrect lifetimebounds
6cdb51c14eba Merge bitcoin/bitcoin#33887: doc: Improve CI docs on env and qemu-user-static
50cbde3295b4 depends: Update Qt download link
29c37651c74b Merge bitcoin/bitcoin#33880: test: Fix race condition in IPC interface block progation test
32368cd3e9f3 Merge bitcoin/bitcoin#33905: ci: Consistenly only cache on the default branch
e55c49f85143 Merge bitcoin/bitcoin#33851: depends: update xcb-util packages to latest versions
a07bd8415df4 Merge bitcoin/bitcoin#33824: ci: Enable experimental kernel stuff in most CI tasks via `dev-mode`
c0bfe72f6e1f Change Parse descriptor argument to string_view
f541b92cf2bb depends: expat 2.7.3
fad06f3bb436 test: retry download in get_previous_releases.py
2ebf4356e63d depends: libxcb 1.17.0
ba7ac870a32a depends: xcb_proto 1.17.0
fad0c76d0a10 clang-format: Set PackConstructorInitializers: CurrentLine
42d0692f9131 depends: libxcb-util-cursor 0.1.6
25b85919ab62 depends: libxcb 1.15
d129384ca97f depends: libxcb-util-wm 0.4.2
0b857ae9e555 depends: libxcb-util-renderutil 0.3.10
35e50488b25a depends: libxcb-util-keysyms 0.4.1
74b68ad28ba2 depends: libxcb-util-image 0.4.1
5bc0dde85d74 depends: libxcb-util 0.4.1
8d07292c286f depends: libXau 1.0.12
1af46cff9478 Merge bitcoin/bitcoin#33896: clang-format: Set InsertNewlineAtEOF: true
27ac11ea0a27 Merge bitcoin/bitcoin#33867: kernel: handle null or empty directories in implementation
2578e6fc0f4a test: Fix race condition in IPC interface block propagation test
288b8c30be42 doc: Drop (default: none) from -i2psam description
509dc91db143 Merge bitcoin/bitcoin#33026: test, refactor: Embedded ASMap [1/3]: Selected minor preparatory work
b126f981943d Merge bitcoin-core/gui#910: Added test coverage for qt gui#901 console history filter
7d7b829c36b7 Merge bitcoin-core/gui#908: Remove HD seed reference from blank wallet tooltip
8558902e576e depends: Add patch for Windows11Style plugin
53b72372da91 Merge bitcoin/bitcoin#31734: miniscript: account for all `StringType` variants in `Miniscriptdescriptor::ToString()`
a7f9bbe4c5e7 Merge bitcoin/bitcoin#32821: rpc: Handle -named argument parsing where '=' character is used
55555db055b5 doc: Add missing --platform=linux to docker build command
fa0ce4c1486b ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG
faa0973de296 ci: [refactor] Rename CIRRUS_PR env var to LINT_CI_IS_PR
fa411f938e47 ci: Consistenly only cache on the default branch
6c5c44f77405 test: add functional test for new cluster mempool RPCs
72f60c877e00 doc: Update mempool_replacements.md to reflect feerate diagram checks
21693f031a53 Expose cluster information via rpc
72e74e0d4228 fuzz: try to add more code coverage for mempool fuzzing
f107417490ab bench: add more mempool benchmarks
7976eb1ae77a Avoid violating mempool policy limits in tests
84de685cf7ee Stop tracking parents/children outside of txgraph
88672e205ba1 Rewrite GatherClusters to use the txgraph implementation
1ca4f01090cf Fix miniminer_tests to work with cluster limits
1902111e0f20 Eliminate CheckPackageLimits, which no longer does anything
3a646ec46264 Rework RBF and TRUC validation
19b8479868e5 Make getting parents/children a function of the mempool, not a mempool entry
5560913e51af Rework truc_policy to use descendants, not children
a4458d6c4062 Use txgraph to calculate descendants
c8b6f70d6492 Use txgraph to calculate ancestors
241a3e666b59 Simplify ancestor calculation functions
b9cec7f0a1e0 Make removeConflicts private
0402e6c78080 Remove unused limits from CalculateMemPoolAncestors
08be765ac26a Remove mempool logic designed to maintain ancestor/descendant state
fc4e3e6bc122 Remove unused members from CTxMemPoolEntry
ff3b398d124b mempool: eliminate accessors to mempool entry ancestor/descendant cached state
b9a2039f5122 Eliminate use of cached ancestor data in miniminer_tests and truc_policy
ba09fc9774d5 mempool: Remove unused function CalculateDescendantMaximum
8e49477e86b3 wallet: Replace max descendant count with cluster_count
e031085fd464 Eliminate Single-Conflict RBF Carve Out
cf3ab8e1d0a2 Stop enforcing descendant size/count limits
89ae38f48965 test: remove rbf carveout test from mempool_limit.py
c0bd04d18fdf Calculate descendant information for mempool RPC output on-the-fly
bdcefb8a8b06 Use mempool/txgraph to determine if a tx has descendants
69e1eaa6ed22 Add test case for cluster size limits to TRUC logic
9cda64b86c59 Stop enforcing ancestor size/count limits
1f93227a84a5 Remove dependency on cached ancestor data in mini-miner
9fbe0a4ac26c rpc: Calculate ancestor data from scratch for mempool rpc calls
7961496dda2e Reimplement GetTransactionAncestry() to not rely on cached data
feceaa42e8eb Remove CTxMemPool::GetSortedDepthAndScore
21b5cea588a7 Use cluster linearization for transaction relay sort order
6445aa7d9755 Remove the ancestor and descendant indices from the mempool
216e69372903 Implement new RBF logic for cluster mempool
ff8f115dec6e policy: Remove CPFP carveout rule
c3f1afc934e6 test: rewrite PopulateMempool to not violate mempool policy (cluster size) limits
47ab32fdb158 Select transactions for blocks based on chunk feerate
dec138d1ddc7 fuzz: remove comparison between mini_miner block construction and miner
6c2bceb200aa bench: rewrite ComplexMemPool to not create oversized clusters
1ad4590f6385 Limit mempool size based on chunk feerate
b11c89cab210 Rework miner_tests to not require large cluster limit
95a8297d481e Check cluster limits when using -walletrejectlongchains
95762e675959 Do not allow mempool clusters to exceed configured limits
edb3e7cdf636 [test] rework/delete feature_rbf tests requiring large clusters
435fd5671116 test: update feature_rbf.py replacement test
34e32985e811 Add new (unused) limits for cluster size/count
838d7e355366 Add transactions to txgraph, but without cluster dependencies
552eb90071fd doc: CI - Describe qemu-user-static usage
2afbbddee550 doc: CI - Clarify how important `env -i` is and why
2444488f6ad3 Merge bitcoin/bitcoin#33894: net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()`
fa1bf6818f09 clang-format: Set InsertNewlineAtEOF: true
115d298a9fa3 Merge bitcoin/bitcoin#33872: init: completely remove `-maxorphantx` option
a90f3922ff7d Merge bitcoin/bitcoin#32419: psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows
4d893c0f4605 net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()`
fa1dacaebe5d ci: Move lint exec snippet to stand-alone py file
ead849c9f177 Merge bitcoin/bitcoin#33886: test: Remove tests violating hardened std::span
c03081fdb467 Merge bitcoin/bitcoin#33776: ci: Lint follow-ups
fadb4f63cb0f test: Remove tests violating hardened std::span
6e2155816058 Merge bitcoin/bitcoin#33869: refactor: Avoid -W*-whitespace in git archive
c8715aca95d0 Merge bitcoin/bitcoin#33247: build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings
ee5de407e369 Merge bitcoin/bitcoin#33537: guix: build `bitcoin-qt` with static libxcb & utils
024a7873500e Merge bitcoin/bitcoin#33876: doc: Update NetBSD Build Guide
c66e98875439 Merge bitcoin/bitcoin#33865: cmake: Specify Windows plugin path in `test_bitcoin-qt` property
c29eaeeaf937 doc: Update NetBSD Build Guide
7f318e1dd049 test: Add better coverage for Autofile size()
e221b2524659 Merge bitcoin/bitcoin#33860: depends: drop Qt patches
b7af960eb82f refactor: Add AutoFile::size
ec0f75862e67 refactor: Modernize logging in util/asmap.cpp
606a251e0a31 tests: add unit test vectors for asmap interpreter
6657bcbdb4d0 kernel: allow null data_directory
0aebdac95da9 init: completely remove `-maxorphantx` option
99d012ec80a4 refactor: return reference instead of pointer
f743e6c5dd38 refactor: add missing LIFETIMEBOUND annotation for parameter
fa95353902b7 ci: Run macos tasks in a git archive, not git checkout
141117f5e8b4 refactor: remove incorrect LIFETIMEBOUND annotations
fae3618fd6c8 ci: Annotate all check runs with the pull request number
faf05d637d67 ci: Retry lint image building once after failure
96963b888e5a depends: static libxcb
ad06843fab06 depends: avoid qdbusviewer in Qt build
6848ed56dc5f depends: apply Qt patches to fix static libxcb use
dfde31f2ec1f Merge bitcoin/bitcoin#33864: scripted-diff: fix leftover references to `policy/fees.h`
5f1b016bebd2 depends: static libxcb-util-image
98a2fbbe70b8 depends: static libxkbcommon
1412baf77295 depends: static libxcb-util-wm
a4009dadf466 depends: static libxcb-keysyms
bcfb8679b3ba depends: static libxcb-render-util
faf99ae37963 refactor: Avoid -W*-whitespace in git archive
2594d5a189e5 build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings
310e4979b36c qt: Added test coverage for qt gui#901 console history filter
0dd8d5c237e2 cmake: Specify Windows plugin path in `test_bitcoin-qt` property
b0a38871546d scripted-diff: fix leftover references to `policy/fees.h`
48d4b936e09f Merge bitcoin/bitcoin#33511: init: Fix Ctrl-C shutdown hangs during wait calls
3c3c6adb7260 Merge bitcoin/bitcoin#33745: mining: check witness commitment in submitBlock
e652b69b8da4 Merge bitcoin/bitcoin#33003: test: add option to skip large re-org test in feature_block
3e9aca6f1b52 depends: drop qtbase-moc-ignore-gcc-macro.patch qt patch
fac4f6de28e7 ci: Rewrite lint task Bash snippet to Python
fa0d37a57985 ci: Rewrite Bash to check inputs to Python
0da5a82700e9 depends: drop unused qt patch
fae83611b8ef ci: [refactor] Use --preset=dev-mode in mac_native task
fadb67b4b4e1 ci: [refactor] Base nowallet task on --preset=dev-mode
6666980e8653 ci: Enable bitcoin-chainstate and test_bitcoin-qt in win64 task
096924d39d64 kernel: add btck_block_tree_entry_equals
faff7b231246 ci: Enable experimental kernel stuff in i686 task
fa1632eecf58 ci: Enable experimental kernel stuff in mac-cross tasks
fad10ff7c923 ci: Enable experimental kernel stuff in armhf task
fa9d67c13d0d ci: Enable experimental kernel stuff in Alpine task
fab3fb83026e ci: Enable experimental kernel stuff in s390x task
fa7da8a646ed ci: Enable experimental kernel stuff in valgrind task
fa9c2973d60b ci: Enable experimental kernel stuff in TSan task
fad30d439502 ci: Enable experimental kernel stuff in MSan task
d5ed9cb3eb52 Add accessor for sigops-adjusted weight
1bf3b513966e Add sigops adjusted weight calculator
c18c68a950d3 Create a txgraph inside CTxMemPool
29a94d5b2f26 Make CTxMemPoolEntry derive from TxGraph::Ref
92b0079fe386 Allow moving CTxMemPoolEntry objects, disallow copying
f6ec3519a330 init: Require explicit -asmap filename
6eaa00fe2020 test: clarify submitBlock() mutates the template
862bd432837e mining: ensure witness commitment check in submitBlock
00d1b6ef4b12 doc: clarify UpdateUncommittedBlockStructures
929f69d0ff29 qt: Remove HD seed reference from blank wallet tooltip
1db74914706f depends: sqlite 3.50.4
286f3e49c84c guix: sqlite wants tcl
de7c3587cd45 doc: Update add checksum instructions in tutorial
6c73e4744837 mempool: Store iterators into mapTx in mapNextTx
51430680ecb7 Allow moving an Epoch::Marker
2a46e94a1600 doc: Update multisig-tutorial.md to use multipath descriptors
c25a5e670b27 init: Signal m_tip_block_cv on Ctrl-C
f53dbbc5057b test: Add functional tests for named argument parsing
694f04e2bd34 rpc: Handle -named argument parsing where '=' character is used
6a29f79006a9 test: Test SIGTERM handling during waitforblockheight call
8810642b571e test: add option to skip large re-org test in feature_block
d31158d3646f psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows
28a4fcb03c0f test: check listdescriptors do not return a mix of hardened derivation marker
975783cb79e9 descriptor: account for all StringType in MiniscriptDescriptor::ToStringHelper()

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: 6356041e58d1ba86695e2e7c219c68ee5abe583f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants