Skip to content

Conversation

@instagibbs
Copy link
Member

@instagibbs instagibbs commented May 2, 2025

Retains the -datacarrier* args, marks them as deprecated, and does not require another startup argument for multiple OP_RETURN outputs.

If a user has set -datacarriersize the value is "budgeted" across all seen OP_RETURN output scriptPubKeys. In other words the total script bytes stays the same, but can be spread across any number of outputs. This is done to not introduce an additional argument to support multiple outputs.

I do not advise people use the option with custom arguments and it is marked as deprecated to not mislead as a promise to offer it forever. The argument itself can be removed in some future release to clean up the code and minimize footguns for users.

@DrahtBot
Copy link
Contributor

DrahtBot commented May 2, 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/32406.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK stickies-v, Sjors, polespinasa, theStack, 1440000bytes, hodlinator, willcl-ark, ajtowns, dergoegge, fanquake, mzumsande, petertodd, murchandamus
Concept NACK wizkid057, Retropex, nsvrn, moth-oss, luke-jr, Fiach-Dubh, iicuriosity, liviu-liviu, 1ma, moonbootspleb, n4HeVQSGqDeEu6, ariel-lore, k98kurz, pithosian, juanitoddd, jmatcho, bigshiny90, blockdyor, GregTonoski, lordnakamoto, chrisguida
Concept ACK ismaelsadeeq, miketwenty1, TheCharlatan, Psifour, jamesob, aviv57, Kixunil, delta1, michaelfolkson, waketraindev, encloinc, darosior, negatratoron, yuvicc
Stale ACK vostrnad
User requested bot ignore gmaxwell, BitcoinMechanic

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:

  • #29954 (RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo by kristapsk)

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.

@sedited
Copy link
Contributor

sedited commented May 5, 2025

Concept ACK

I think I'd prefer keeping the option until #32401 is addressed. Clearly there seems to be at least some demand for mining on charitable templates. If this is worth the additional code and maintenance is another discussion, and in the meantime I'd also support it being marked for future removal.

@wizkid057
Copy link

Concept NACK
Reasons outlined on mailing list and other PR

@BitcoinMechanic
Copy link

BitcoinMechanic commented May 5, 2025

Concept NACK. Nodes have no incentive to become free relays between those who want to store arbitrary data and miners. Setting defaults to the opposite effect just results in distrust of Core and migration away from it (as we have witnessed over the last week - although of course not Sybil resistant, seems genuine.)

@pinheadmz
Copy link
Member

@BitcoinMechanic

no incentive

Fee estimation and block propagation to name a few: https://groups.google.com/g/bitcoindev/c/d6ZO7gXGYbQ/m/3WVL60u6EQAJ

@BitcoinMechanic
Copy link

BitcoinMechanic commented May 5, 2025

@BitcoinMechanic

no incentive

Fee estimation and block propagation to name a few: https://groups.google.com/g/bitcoindev/c/d6ZO7gXGYbQ/m/3WVL60u6EQAJ

It does no harm to fee estimation or block propagation. Nodes can and do cache transactions they reject from their mempools making compact blocks just as quick to verify regardless of if some of their contents was filtered.

As for fee estimation, it does not require knowledge of "the" mempool and there can never be such a thing.

The efforts to design Bitcoin Core around the increased reliance on mempool homogeneity are misguided and a trend in the wrong direction.

More high level - if nodes can configure their own mempool policies it obviously doesn't break things and demonstrably never has.

@Sjors
Copy link
Member

Sjors commented May 5, 2025

Concept ACK. This adds a deprecation step to #32359, which seems fine from a technical point of view, and was requested by regular contributors as well.

It will re-invite the brigading when the actual code is removed, but it will be easier to point to earlier discussion.

Code looks reasonable at first glance, when compared to #32359, but will re-review it.

3ba7449f6c335026b752366c53f9c309f09e6c64 could be split between a commit that allows multiple outputs and one that switches the default.


There's no need to Concept N(ACK) this if all you're going to do is repeat comments from #32359. They're not votes. Any actual reviewer of this PR (including maintainers) can read those arguments there.

@Retropex
Copy link

Retropex commented May 5, 2025

Concept NACK.

For the same reasons mentioned in #32359.

@nsvrn
Copy link
Contributor

nsvrn commented May 5, 2025

Concept NACK

If fee estimation, block propagation etc has issues with mempool diversity specially for defense against spam/DoS then the position of not fixing that or making a future economic judgement based on theoretical assumptions is a fallacy. This broad position of Bitcoin Core can clearly increase spam and centralization regardless of economic incentives of miners which are all speculations and projections to modify how Bitcoin works instead of being realistic about the end goal of Bitcoin network. It's disappointing where this is headed.

@instagibbs
Copy link
Member Author

FWIW I will not engage in meta discussion here. I will respond to any deficiencies in the code itself.

3ba7449 could be split between a commit that allows multiple outputs and one that switches the default.

Touching tests twice is kind of annoying, but I can do if it makes code history easier and others agree.

@pinheadmz
Copy link
Member

@nsvrn this PR specifically enables users to have a divergent mempool. I don't understand the use case for that, but the proposal here addresses feedback on #32359 and adds a feature specifically for users who do not want their mempool to anticipate miner behavior.

@BitcoinMechanic
Copy link

@Sjors this is materially different from the other PR as it at least allows users the ability to configure. Not sure it's appropriate to invoke same reasoning in both cases?

@BitcoinMechanic
Copy link

@nsvrn this PR specifically enables users to have a divergent mempool. I don't understand the use case for that

The use case for users maintaining control over their mempools is self evident.

@Sjors
Copy link
Member

Sjors commented May 5, 2025

@BitcoinMechanic wrote:

allows users the ability to configure

It briefly retains it, typically deprecation is followed by removal one release later.

So if you're opposed to direct removal, then everyone will understand that you're also opposed to deprecation, so there's nothing new to say.

Copy link
Member

@polespinasa polespinasa left a comment

Choose a reason for hiding this comment

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

cACK

I like this approach, is far less problematic than #32359
Not going to add any more argument than the ones given there.

Left two small non-blocking comments

src/init.cpp Outdated
Copy link
Member

Choose a reason for hiding this comment

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

I think this should be a warning- something like:

warnings.push_back(_("Warning: Options '-datacarrier' or '-datacarriersize' are set but are marked as deprecated. They will be removed in future versions."));

See #31278

Copy link
Member Author

Choose a reason for hiding this comment

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

functional tests were failing on shutdown when InitWarning was being triggered on an earlier version of my code. Is there a way to make the tests ok with it being set for specific tests?

Copy link
Member

Choose a reason for hiding this comment

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

Oh right my bad should be InitWarning(_("Warning: ..."))!

Anyway yes you should be able to do so. You have to specify the expected stderr like:

self.restart_node(0, expected_stderr='Warning: -paytxfee is deprecated and will be fully removed in v31.0.')

By default is set to an empty string:

def stop_node(self, i, expected_stderr='', wait=0):

Copy link
Member Author

Choose a reason for hiding this comment

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

still fumbling this. In mempool_datacarrier.py I'm not explicitly stopping or restarting the nodes but allowing test teardown to do it. Should I just be stopping the node myself with the optional arg?

Copy link
Member

Choose a reason for hiding this comment

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

I just checked, when is auto-stopped at the end it stop all nodes by calling:

self.log.info("Stopping nodes")
            if self.nodes:
                self.stop_nodes()

It uses stop_nodes() which doesn't give any expected_stderr value:

    def stop_node(self, i, expected_stderr='', wait=0):
        """Stop a bitcoind test node"""
        self.nodes[i].stop_node(expected_stderr, wait=wait)

    def stop_nodes(self, wait=0):
        """Stop multiple bitcoind test nodes"""
        for node in self.nodes:
            # Issue RPC to stop nodes
            node.stop_node(wait=wait, wait_until_stopped=False)

Maybe could define a self.expected_stderr=[""]*self.nNodes at test_framework class and pass it to stop_node by default instead of an empty string. So you could override it on set_test_params(self)

Copy link
Member

@maflcko maflcko May 6, 2025

Choose a reason for hiding this comment

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

Should I just be stopping the node myself with the optional arg?

I'd say yes, if you go down the route. Not sure about adding implicit fields to the test framework for this.

Copy link
Member

Choose a reason for hiding this comment

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

Code suggested here: #32406 (review)

Copy link
Member

Choose a reason for hiding this comment

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

However, if some people prefer the option to not be deprecated (for whatever reason), it seems pretty minimal maintenance to keep it around without deprecation for now. There is no rush for this pull request, as the 30.x release is months away and also no rush to remove or deprecate the setting. Even if it is only for the extremely unlikely case to avoid having to undeprecate it later on (see also #32359 (comment)). The option has existed for many years, and if it were to be removed completely, it shouldn't matter much if that were to happen at time N or time N+6mo.

Copy link
Member

Choose a reason for hiding this comment

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

A personal opinion to read the code (non blocking)

Maybe would be more clear to have it as a constant and override it if the option is set?
If not, maybe a comment would be good.

Copy link

Choose a reason for hiding this comment

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

agreed on this nit.

It is not immediately apparent that max_datacarrier_bytes will be set to MAX_OP_RETURN_RELAY if no -datacarriersize flag is present.

Copy link
Member Author

Choose a reason for hiding this comment

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

Documentation for this is in src/kernel/mempool_options.h, it can be further spelled out in policy.h for IsStandardTx if that helps?

Choose a reason for hiding this comment

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

For additional context, in mempool_args.cpp::apply_args_man_options, we have this check:

if (argsman.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER)) {
    mempool_opts.max_datacarrier_bytes = argsman.GetIntArg("-datacarriersize", MAX_OP_RETURN_RELAY);
} else {
    mempool_opts.max_datacarrier_bytes = std::nullopt;
}

GetIntArg can't take nullopt as a default (it wants an integer), so the true path has to set to MAX_OP_RETURN_RELAY as the default, rather than setting nullopt with the false path setting 0. The false path could set zero, but this guard would still need to be here (foregoing a fair amount of extra churn to make max_datacarrier_bytes an integer, not an optional integer).

I think this line is fine as-is, but were it to be clarified something as simple as the following could suffice:

unsigned int datacarrier_bytes_left = max_datacarrier_bytes.value_or(0 /* datacarrier=false */);

Copy link
Contributor

Choose a reason for hiding this comment

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

nit: no strong view, and not important, but my preference would be to just remove the std::optional altogether. Simplifies fn signature and defines what zero means in a single location.

git diff on c164064c26
diff --git a/src/kernel/mempool_options.h b/src/kernel/mempool_options.h
index d57dbb393f..4786aca67d 100644
--- a/src/kernel/mempool_options.h
+++ b/src/kernel/mempool_options.h
@@ -48,9 +48,9 @@ struct MemPoolOptions {
      * type is designated as TxoutType::NULL_DATA.
      *
      * Maximum size of TxoutType::NULL_DATA scripts that this node considers standard.
-     * If nullopt, any size is nonstandard.
+     * If zero, any size is nonstandard.
      */
-    std::optional<unsigned> max_datacarrier_bytes{DEFAULT_ACCEPT_DATACARRIER ? std::optional{MAX_OP_RETURN_RELAY} : std::nullopt};
+    unsigned int max_datacarrier_bytes{DEFAULT_ACCEPT_DATACARRIER ? MAX_OP_RETURN_RELAY : 0};
     bool permit_bare_multisig{DEFAULT_PERMIT_BAREMULTISIG};
     bool require_standard{true};
     bool persist_v1_dat{DEFAULT_PERSIST_V1_DAT};
diff --git a/src/node/mempool_args.cpp b/src/node/mempool_args.cpp
index 6dbba78381..c2bf1749a9 100644
--- a/src/node/mempool_args.cpp
+++ b/src/node/mempool_args.cpp
@@ -84,7 +84,7 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& argsman, const CChainP
     if (argsman.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER)) {
         mempool_opts.max_datacarrier_bytes = argsman.GetIntArg("-datacarriersize", MAX_OP_RETURN_RELAY);
     } else {
-        mempool_opts.max_datacarrier_bytes = std::nullopt;
+        mempool_opts.max_datacarrier_bytes = 0;
     }
 
     mempool_opts.require_standard = !argsman.GetBoolArg("-acceptnonstdtxn", DEFAULT_ACCEPT_NON_STD_TXN);
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index fdc2fdb9cd..51f5ae972e 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.cpp
@@ -96,7 +96,7 @@ bool IsStandard(const CScript& scriptPubKey, TxoutType& whichType)
     return true;
 }
 
-bool IsStandardTx(const CTransaction& tx, const std::optional<unsigned>& max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason)
+bool IsStandardTx(const CTransaction& tx, unsigned int max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason)
 {
     if (tx.version > TX_MAX_STANDARD_VERSION || tx.version < 1) {
         reason = "version";
@@ -133,7 +133,7 @@ bool IsStandardTx(const CTransaction& tx, const std::optional<unsigned>& max_dat
         }
     }
 
-    unsigned int datacarrier_bytes_left = max_datacarrier_bytes.value_or(0);
+    unsigned int datacarrier_bytes_left{max_datacarrier_bytes};
     TxoutType whichType;
     for (const CTxOut& txout : tx.vout) {
         if (!::IsStandard(txout.scriptPubKey, whichType)) {
diff --git a/src/policy/policy.h b/src/policy/policy.h
index e62efa02e3..82cb13d1e6 100644
--- a/src/policy/policy.h
+++ b/src/policy/policy.h
@@ -149,7 +149,7 @@ static constexpr decltype(CTransaction::version) TX_MAX_STANDARD_VERSION{3};
 * Check for standard transaction types
 * @return True if all outputs (scriptPubKeys) use only standard transaction forms
 */
-bool IsStandardTx(const CTransaction& tx, const std::optional<unsigned>& max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason);
+bool IsStandardTx(const CTransaction& tx, unsigned int max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason);
 /**
 * Check for standard transaction types
 * @param[in] mapInputs       Map of previous transactions that have outputs we're spending
diff --git a/src/test/fuzz/transaction.cpp b/src/test/fuzz/transaction.cpp
index c9eb11222f..f5cbacfb78 100644
--- a/src/test/fuzz/transaction.cpp
+++ b/src/test/fuzz/transaction.cpp
@@ -61,8 +61,8 @@ FUZZ_TARGET(transaction, .init = initialize_transaction)
 
     const CFeeRate dust_relay_fee{DUST_RELAY_TX_FEE};
     std::string reason;
-    const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, std::nullopt, /* permit_bare_multisig= */ true, dust_relay_fee, reason);
-    const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, std::nullopt, /* permit_bare_multisig= */ false, dust_relay_fee, reason);
+    const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, /*max_datacarrier_bytes=*/0, /* permit_bare_multisig= */ true, dust_relay_fee, reason);
+    const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, /*max_datacarrier_bytes=*/0, /* permit_bare_multisig= */ false, dust_relay_fee, reason);
     if (is_standard_without_permit_bare_multisig) {
         assert(is_standard_with_permit_bare_multisig);
     }
diff --git a/src/test/script_p2sh_tests.cpp b/src/test/script_p2sh_tests.cpp
index bb408b7b0f..68909dbb8a 100644
--- a/src/test/script_p2sh_tests.cpp
+++ b/src/test/script_p2sh_tests.cpp
@@ -21,13 +21,13 @@
 // Helpers:
 static bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, std::string& reason)
 {
-    return IsStandardTx(tx, std::nullopt, permit_bare_multisig, CFeeRate{DUST_RELAY_TX_FEE}, reason);
+    return IsStandardTx(tx, /*max_datacarrier_bytes=*/0, permit_bare_multisig, CFeeRate{DUST_RELAY_TX_FEE}, reason);
 }
 
 static bool IsStandardTx(const CTransaction& tx, std::string& reason)
 {
-    return IsStandardTx(tx, std::nullopt, /*permit_bare_multisig=*/true, CFeeRate{DUST_RELAY_TX_FEE}, reason) &&
-           IsStandardTx(tx, std::nullopt, /*permit_bare_multisig=*/false, CFeeRate{DUST_RELAY_TX_FEE}, reason);
+    return IsStandardTx(tx, /*max_datacarrier_bytes=*/0, /*permit_bare_multisig=*/true, CFeeRate{DUST_RELAY_TX_FEE}, reason) &&
+           IsStandardTx(tx, /*max_datacarrier_bytes=*/0, /*permit_bare_multisig=*/false, CFeeRate{DUST_RELAY_TX_FEE}, reason);
 }
 
 static std::vector<unsigned char> Serialize(const CScript& s)

Copy link
Member Author

@instagibbs instagibbs May 13, 2025

Choose a reason for hiding this comment

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

that's not the same behavior IIUC
leaving as-is to not increase scope of review

diff --git a/test/functional/mempool_datacarrier.py b/test/functional/mempool_datacarrier.py
index 6347215b86..ce1d65a9ed 100755
--- a/test/functional/mempool_datacarrier.py
+++ b/test/functional/mempool_datacarrier.py
@@ -20,16 +20,17 @@ from random import randbytes
 # The historical maximum, now used to test coverage
 CUSTOM_DATACARRIER_ARG = 83
 
 class DataCarrierTest(BitcoinTestFramework):
     def set_test_params(self):
-        self.num_nodes = 4
+        self.num_nodes = 5
         self.extra_args = [
             [], # default is uncapped
             ["-datacarrier=0"], # no relay of datacarrier
             ["-datacarrier=1", f"-datacarriersize={CUSTOM_DATACARRIER_ARG}"],
             ["-datacarrier=1", "-datacarriersize=2"],
+            ["-datacarrier=1", "-datacarriersize=0"],
         ]
 
     def test_null_data_transaction(self, node: TestNode, data, success: bool) -> None:
         tx = self.wallet.create_self_transfer(fee_rate=0)["tx"]
         data = [] if data is None else [data]
@@ -73,10 +74,11 @@ class DataCarrierTest(BitcoinTestFramework):
         self.log.info("Testing a null data transaction with no data.")
         self.test_null_data_transaction(node=self.nodes[0], data=None, success=True)
         self.test_null_data_transaction(node=self.nodes[1], data=None, success=False)
         self.test_null_data_transaction(node=self.nodes[2], data=None, success=True)
         self.test_null_data_transaction(node=self.nodes[3], data=None, success=True)
+        self.test_null_data_transaction(node=self.nodes[4], data=None, success=True)
 
         self.log.info("Testing a null data transaction with zero bytes of data.")
         self.test_null_data_transaction(node=self.nodes[0], data=zero_bytes, success=True)
         self.test_null_data_transaction(node=self.nodes[1], data=zero_bytes, success=False)
         self.test_null_data_transaction(node=self.nodes[2], data=zero_bytes, success=True)

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 on relaxing the maximum capacity of the OP_RETURN size to the current transaction standardness limit.

  1. This change will improve fee estimation in Bitcoin Core, as users will now be able to see the fee pressure from "data-carier" transactions that were previously broadcast out of band.

  2. It will also improve block propagation time and make mining fairer, as data carrier transactions below standardness limit will now be relayed in nodes' mempools before being included in block templates. Nodes that already have these transactions can validate new blocks faster and relay them to peers and potentially other miners. If I understand correctly, Bitcoin's incentives require miners to learn about new blocks as quickly as possible so this is a positive change.

  3. This could also potentially reduce the reliance on "out-of-band" services that collect data carrier transactions at high fees and possibly earn more revenue than other miners.

However, I still believe that while Bitcoin Core's transaction relay policy rules have significant advantages, they leave room for out-of-band services like those in point 3. As long as new innovations seek to utilize create transactions that violate those policies, we may continue to see these services persist.

This leads us to repeat the same process of relaxing rules to address issues 1, 2, and 3.

In my opinion, policy rules are an "easy way out" but limited solution. If we truly want to prevent issues 1, 2, and 3, those rules should be part of the consensus layer.


On Deprecating this feature: I will like to see this option not being deprecated and let's give users the ability to have a datacarier limit as they see fit; even though it is a footgun; we have a far worst option available i,e -blocksonly mode; in blocks only mode fee estimation is disabled. The work in #30157 allows a node to also detect when it's mempool is roughly not in sync with miners and prevent serving fee rate estimate.

Copy link
Member

Choose a reason for hiding this comment

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

Contrary to the PR title and description we still have a capacity of the maximum standard tx weight?

So could this be clarified to indicate that we still maintain the standardness limit?


"hypothetical" but what if we see in the future "transaction landscape has rendered this cap ineffective" as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

This should be a no-op at default due to MAX_STANDARD_TX_WEIGHT, but if it's clearer to set it to int max or similar, I can do that

Copy link
Contributor

Choose a reason for hiding this comment

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

In a vacuum it might be nice as a std::optional<unsigned int>, but that probably causes too much downstream churn.

src/init.cpp Outdated
Copy link
Member

Choose a reason for hiding this comment

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

From what I see from previous PR is that after deprecation; the feature will be removed in next release cycle, so maybe indicate that?
#31278 (comment)

If we will eventually deprecate this then let's indicate that.

Copy link
Member Author

@instagibbs instagibbs May 5, 2025

Choose a reason for hiding this comment

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

Personally, I'm fine with the option being sunset over a longer period. I'll let other people weigh in on that as a possibility.

Copy link
Member

Choose a reason for hiding this comment

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

I think "deprecated" is clear enough, no need to commit to a timeline.

@moth-oss
Copy link

moth-oss commented May 5, 2025

Concept NACK

I've read the justifications but remain unconvinced the timing as well as the decision to altogether remove the option to configure is the right one.

Increasing the default and giving node runners the option to change that is the right way to go. And a few versions layers maybe the discussion to remove it altogether can be restarted. Current PR is way too sudden. It seems we did not learn the lesson from the unintentional effect lifting the witness script size limit had on the quantity of arbitrary data getting stored in the block.

Yes, I am aware it was possible to store data even before that, but it became economically lucrative since that specific change of removing the 10kb limit. Instead of capping that somehow, we are on a path to remove any and all data size configuration option the node runners currently have.

Besides, removing this option doesn't even help in a major way to remove utxo bloat because segwit discount will still be preferred for data above a certain size threshold.

Earnestly urge the project maintainers to rethink this one and implement it in more gradual changes. Thank you.

@miketwenty1
Copy link
Contributor

Concept ACK.

I believe this is a marginal improvement over #32359. It's better to err on the side of a normal deprecation path with more knobs rather than fewer, especially since this knob (-datacarriersize) was previously available. Its removal has been a specific point of controversy, explicitly described by some as core compelling speech. However, this conceptual change will likely affect only a small percentage of previous NACKers, since the intent and outcome seem clear and unchanged imo. At best, it provides hypothetical hope that if the option proves beneficial during the deprecation period, it might not ultimately be removed.

yuvicc added a commit to yuvicc/differential-bitcoin-kernel that referenced this pull request Aug 26, 2025
bce88ae28a kernel: Fix bitcoin-chainstate for windows
3a7e9f0eaf kernel: Add Purpose section to header documentation
5bae79ace5 kernel: Allowing reducing exports
d0308a2489 kernel: Add pure kernel bitcoin-chainstate
05a569070c kernel: Add functions to get the block hash from a block
8566ec6e83 kernel: Add block index utility functions to C header
b4d0e80f84 kernel: Add function to read block undo data from disk to C header
488999ac77 kernel: Add functions to read block from disk to C header
3dc76bb7f7 kernel: Add function for copying block data to C header
6151b45a42 kernel: Add functions for the block validation state to C header
5d00432f27 kernel: Add validation interface to C header
facf209aee kernel: Add interrupt function to C header
129f553e4e kernel: Add import blocks function to C header
f7ed7b944d kernel: Add chainstate load options for in-memory dbs in C header
67d9f53a98 kernel: Add options for reindexing in C header
ebc826319f kernel: Add block validation to C header
511a1c8a78 kernel: Add chainstate loading when instantiating a ChainstateManager
aad295899e kernel: Add chainstate manager option for setting worker threads
c701cb2405 kernel: Add chainstate manager object to C header
1df8b87602 kernel: Add notifications context option to C header
571c1a2acb kernel: Add chain params context option to C header
a2cab9f1cd kernel: Add kernel library context object
944ef6b630 kernel: Add logging to kernel library C header
d0cb841fba kernel: Introduce initial kernel C header API
04c115dfde Merge bitcoin/bitcoin#33078: kernel: improve BlockChecked ownership semantics
bc797d2271 Merge bitcoin/bitcoin#33154: test: use local `CBlockIndex` in block read hash mismatch check
d3c58a5be9 Merge bitcoin/bitcoin#33193: Release: Prepare "Translation string freeze" step
9cf7b3d90c Merge bitcoin/bitcoin#33211: test: modify logging_filesize_rate_limit params
f5f853d952 Merge bitcoin/bitcoin#32878: index: fix wrong assert of current_tip == m_best_block_index
5dda364c4b test: modify logging_filesize_rate_limit params
0df2c3c42e qt: Update `src/qt/locale/bitcoin_en.xlf` translation source file
22e689587a Merge bitcoin/bitcoin#33209: cmake: Drop python dependency for translate
be356fc49b Merge bitcoin/bitcoin#32896: wallet, rpc: add v3 transaction creation and wallet support
3c4a109aa8 cmake: Drop python dependency for translate
f58de8749e Merge bitcoin/bitcoin#32345: ipc: Handle unclean shutdowns better
d31dc8f818 Merge bitcoin/bitcoin#33200: cmake: Introduce translate.cmake script for translate target
05255d5d1e cmake: Drop dependency on sed for translate target
d5054beca5 cmake: Introduce translate.cmake script for translate target
57e8f34fe2 Merge bitcoin/bitcoin#32977: wallet: Remove wallet version and several legacy related functions
97593c1fd3 Merge bitcoin/bitcoin#32975: assumevalid: log every script validation state change
5c8bf7b39e doc: add release notes for version 3 transactions
4ef8065a5e test: add truc wallet tests
5d932e14db test: extract `bulk_vout` from `bulk_tx` so it can be used by wallet tests
2cb473d9f2 rpc: Support version 3 transaction creation
4c20343b4d rpc: Add transaction min standard version parameter
c5a2d08011 wallet: don't return utxos from multiple truc txs in AvailableCoins
da8748ad62 wallet: limit v3 tx weight in coin selection
85c5410615 wallet: mark unconfirmed v3 siblings as mempool conflicts
0804fc3cb1 wallet: throw error at conflicting tx versions in pre-selected inputs
cc155226fe wallet: set m_version in coin control to default value
2e9617664e  wallet: don't include unconfirmed v3 txs with children in available coins
ec2676becd wallet: unconfirmed ancestors and descendants are always truc
7b4a1350df Merge bitcoin/bitcoin#33183: validation: rename block script verification error from "mandatory" to "block"
c99f5c5e1b Merge bitcoin/bitcoin#33106: policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee
578b512bdd Merge bitcoin/bitcoin#33011: log: rate limiting followups
8405fdb06e Merge bitcoin/bitcoin#33169: interfaces, chain, refactor: Remove unused getTipLocator and incaccurate getActiveChainLocator
c0d91fc69c Add release note for #33050 and #33183 error string changes
e17b5da0d6 Merge bitcoin/bitcoin#33179: doc: update wallet build instruction
9b1a7c3e8d Merge bitcoin/bitcoin#33116: refactor: Convert uint256 to Txid
b3f781a0ef contrib: adapt max reject string size in tracing demo
9a04635432 scripted-diff: validation: rename mandatory errors into block errors
dbf8b0980b Merge bitcoin/bitcoin#33171: ci: Update `actions/checkout` version
d6887f0cec Merge bitcoin/bitcoin#33178: guix: increase maximum allowed (runtime) GCC to 7
2b00030af8 interfaces, chain, refactor: Remove inaccurate getActiveChainLocator
110a0f405c interfaces, chain, refactor: Remove unused getTipLocator
dadf15f88c Merge bitcoin/bitcoin#33050: net, validation: don't punish peers for consensus-invalid txs
cb173b8e93 test: use local `CBlockIndex` in block read hash mismatch test to avoid data race
73972d5617 Merge bitcoin/bitcoin#31296: wallet: Translate [default wallet] string in progress messages
67e186deb0 doc: update wallet build instruction
5c74a0b397 config: add DEBUG_ONLY -logratelimit
9f3b017bcc test: logging_filesize_rate_limit improvements
350193e5e2 test: don't leak log category mask across tests
05d7c22479 test: add ReadDebugLogLines helper function
3d630c2544 log: make m_limiter a shared_ptr
ec484bd5ce Merge bitcoin/bitcoin#31453: util: detect and warn when using exFAT on MacOS
776a163374 guix: increase maximum allowed (runtime) GCC to 7
ba84a25dee [doc] update mempool-replacements.md for incremental relay feerate change
273e600e65 Merge bitcoin/bitcoin#33021: test/refactor: revive test verifying that `GetCoinsCacheSizeState` switches from OK→LARGE→CRITICAL
18720bc5d5 [doc] release note for min feerate changes
6da5de58ca [policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB
2e515d2897 [prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit
457cfb61b5 [prep/util] help MockMempoolMinFee handle more precise feerates
3eab8b7240 [prep/test] replace magic number 1000 with respective feerate vars
5f2df0ef78 [miner] lower default -blockmintxfee to 1sat/kvB
d6213d6aa1 [doc] assert that default min relay feerate and incremental are the same
1fbee5d7b6 [test] explicitly check default -minrelaytxfee and -incrementalrelayfee
72dc18467d [test] RBF rule 4 for various incrementalrelayfee settings
85f498893f [test] check bypass of minrelay for various minrelaytxfee settings
e5f896bb1f [test] check miner doesn't select 0fee transactions
de0675f9de refactor: Move `transaction_identifier.h` to primitives
6f068f65de Remove implicit uint256 conversion and comparison
9c24cda72e refactor: Convert remaining instances from uint256 to Txid
d2ecd6815d policy, refactor: Convert uint256 to Txid
f6c0d1d231 mempool, refactor: Convert uint256 to Txid
aeb0f78330 refactor: Convert `mini_miner` from uint256 to Txid
326f244724 refactor: Convert RPCs and `merkleblock` from uint256 to Txid
41642d43b3 Merge bitcoin/bitcoin#33162: test: fix scripts in `blockfilter_basic_test`
f83c01d882 ci: Update `actions/checkout` version
a27430e259 Merge bitcoin/bitcoin#32473: Introduce per-txin sighash midstate cache for legacy/p2sh/segwitv0 scripts
34b366fa2c Merge bitcoin/bitcoin#33155: contrib: drop `bitcoin-util` exception from FORTIFY check
ca64b71ed5 test: fix scripts in `blockfilter_basic_test`
daca51bf80 Merge bitcoin/bitcoin#32750: refactor: CFeeRate encapsulates FeeFrac internally
fab2980bdc assumevalid: log every script validation state change
e8f9c37a3b log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions
3c7cae49b6 log: change LogLimitStats to struct LogRateLimiter::Stats
876dbdfb47 tests: drop expect_disconnect behaviour for tx relay
b29ae9efdf validation: only check input scripts once
266dd0e10d net_processing: drop MaybePunishNodeForTx
db3228042b util: detect and warn when using exFAT on macOS
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
4bff4ce561 contrib: drop bitcoin-util exception from FORTIFY check
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=`
83950275ed qa: unit test sighash caching
b221aa80a0 qa: simple differential fuzzing for sighash with/without caching
92af9f74d7 script: (optimization) introduce sighash midstate caching
8f3ddb0bcc script: (refactor) prepare for introducing sighash midstate cache
9014d4016a tests: add sighash caching tests to feature_taproot
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
49b3d3a92a Clean up `FindTxForGetData`
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
2581258ec2 ipc: Handle bitcoin-wallet disconnections
2160995916 ipc: Add Ctrl-C handler for spawned subprocesses
0c28068ceb doc: Improve IPC interface comments
7f65aac78b ipc: Avoid waiting for clients to disconnect when shutting down
6eb09fd614 test: Add unit test coverage for Init and Shutdown code
9a9fb19536 ipc: Use EventLoopRef instead of addClient/removeClient
5c45bc989b Merge commit 'e886c65b6b37aaaf5d22ca68bc14e55d8ec78212' into pr/ipc-stop-base
e886c65b6b Squashed 'src/ipc/libmultiprocess/' changes from 27c7e8e5a581..b4120d34bad2
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
3aef38f44b test: exercise index reorg assertion failure
acf50233cd index: fix wrong assert of current_tip == m_best_block_index
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
1d9f1cb4bd kernel: improve BlockChecked ownership semantics
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
554befd873 test: revive `getcoinscachesizestate`
64ed0fa6b7 refactor: modernize `LargeCoinsCacheThreshold`
1b40dc02a6 refactor: extract `LargeCoinsCacheThreshold` from `GetCoinsCacheSizeState`
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
8319a13468 log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW
5f70bc80df log: remove const qualifier from arguments in LogPrintFormatInternal
b8e92fb3d4 log: avoid double hashing in SourceLocationHasher
616bc22f13 test: remove noexcept(false) comment in ~DebugLogHelper
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`
9ba1fff29e kernel: refactor: ConnectTip to pass block pointer by value
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`
60d1042b9a wallet: Remove unused `WalletFeature` enums
66de58208a wallet: Remove `CWallet::nWalletVersion` and related functions
3b188b8b3d Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite
7cda3d0f5b wallet: Remove `IsFeatureSupported()` and `CanSupportFeature()`
ba01585229 wallet: `MigrateToDescriptor` no longer calls `CanSupportFeature`
63acee2797 wallet: Remove `GetClosestWalletFeature()`
e27da3150b wallet: Remove `GetVersion()`
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
7566b40bd2 Merge bitcoin/bitcoin#32961: fix spelling in tor.md docs
faa3171ff2 ci: Use optimized Debug build type in test-each-commit
fa21c3401e ci: [doc] reword debug log message
84ef5524d5 fix spelling in tor.md docs
12a6959892 cmake: Drop no longer necessary "cmakeMinimumRequired" object
6a13a6106e Merge bitcoin/bitcoin#32937: Enable `-Werror=dev` in CI & Guix
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
23e15d40b9 Merge bitcoin/bitcoin#32631: refactor: Convert GenTxid to `std::variant`
8ffbd7b778 Merge bitcoin/bitcoin#32940: cmake: Use newer signature of `qt6_add_lrelease` when available
80ce513766 Merge bitcoin/bitcoin#32933: log: Properly log warnings with warn loglevel in addrdb
c18bf0bd9b refactor: cleanup index logging
8f766f39df ci: enable -Werror=dev
7b420ca834 guix: configure with -Werror=dev
44097ddb19 cmake: enable -Werror=dev in dev-mode preset
12fb00fd42 Merge bitcoin/bitcoin#32927: fuzz: Add missing calls to `SetMockTime` for determinism
f5647c6c5a depends: fix libevent _WIN32_WINNT usage
3c1418666b Merge bitcoin/bitcoin#32930: Resolve guix non-determinism with emplace_back instead of push_back
bad998b7c0 Merge bitcoin/bitcoin#32921: test: less ambiguous error if bitcoind is missing
7f28e80329 Merge bitcoin/bitcoin#32758: wallet: remove dead code in legacy wallet migration
5ef0d4897b Merge bitcoin/bitcoin#30605: Cluster linearization: separate tests from tests-of-tests
f43571010e Resolve guix non-determinism with emplace_back instead of push_back
44f3bae300 depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE`
94931656b5 cmake: Use newer signature of `qt6_add_lrelease` when available
fad191ff48 ci: Avoid cd into build dir
b80ead8a71 Merge bitcoin/bitcoin#32890: bench: Avoid tmp files in pwd
c4f90900b5 Merge bitcoin/bitcoin#32932: test: Add missing convert_to_json_for_cli
fa894b0f3e log: Properly log warnings with warn loglevel in addrdb
83ae7802fe Merge bitcoin/bitcoin#32881: test: Turn rpcauth.py test into functional test
fa0528479d test: Add missing convert_to_json_for_cli
a40e953658 Merge bitcoin/bitcoin#30479: validation: Add eligible ancestors of reconsidered block to setBlockIndexCandidates
1ca62edd85 Merge bitcoin/bitcoin#32580: wallet, test: best block locator matches scan state follow-ups
2cad7226c2 Merge bitcoin/bitcoin#32799: mempool: use `FeeFrac` for ancestor/descendant score comparators
2d59977601 Merge bitcoin/bitcoin#32604: log: Mitigate disk filling attacks by rate limiting LogPrintf, LogInfo, LogWarning, LogError
4c772cbd83 doc: add release notes for new rate limiting logging behavior
d541409a64 log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel
a6a35cc0c2 log: use std::source_location in place of __func__, __FILE__, __LINE__
afb9e39ec5 log: introduce LogRateLimiter, LogLimitStats, Status
df7972a6cf test: Mark ~DebugLogHelper as noexcept(false)
fa8862723c fuzz: CheckGlobals in init
fa26bfde98 test: Avoid resetting mocktime in testing setup
fa6b45fa8e Add SetMockTime for time_point types
a60f863d3e scripted-diff: Replace GenTxidVariant with GenTxid
c8ba199598 Remove old GenTxid class
072a198ea4 Convert remaining instances of GenTxid to GenTxidVariant
1b528391c7 Convert `txrequest` to GenTxidVariant
bde4579b07 Convert `txdownloadman_impl` to GenTxidVariant
c876a892ec Replace GenTxid with Txid/Wtxid overloads in `txmempool`
de858ce2be move-only: make GetInfo a private CTxMemPool member
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
eee473d9f3 Convert `CompareInvMempoolOrder` to GenTxidVariant
b7e9dc8e46 Merge bitcoin/bitcoin#32884: rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF`
fa4d68cf97 Turn rpcauth.py test into functional test
83bb414557 test: less ambiguous error if bitcoind is missing
150b5c99ca wallet: replace `reload_wallet` with inline functionality
927055e42a Merge bitcoin/bitcoin#32893: doc: fix `BlockConnected` incorrect comment
a8bff38236 Merge bitcoin/bitcoin#32862: rpc: use CScheduler for relocking wallet and remove RPCTimer
21b42f3c55 Merge bitcoin/bitcoin#32660: rpc: Use type-safe exception to pass RPC help
528f79f010 Merge bitcoin/bitcoin#32835: test: fix feature_init.py intermittencies
fc543f94a9 Merge bitcoin/bitcoin#32385: test: refactor out same-txid-diff-wtxid tx to reuse in other tests
09add84fc5 Merge bitcoin/bitcoin#32618: wallet: Remove ISMINE_WATCHONLY and watchonly from RPCs
87ab69155d Merge bitcoin/bitcoin#31553: cluster mempool: add TxGraph reorg functionality
4e69aa5701 doc: fix `BlockConnected` incorrect comment
d33c111448 Merge bitcoin/bitcoin#32829: threading: use correct mutex name in reverse_lock fatal error messages
de4eef52d1 threading: use correct mutex name in reverse_lock fatal error messages
fa2fbaa4a2 bench: Avoid tmp files in pwd
d3b8a54a81 Refactor CFeeRate to use FeeFrac internally
6d19815cd4 rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF` for code clarity
f49840dd90 doc: Fix typo in files.md
4207d9bf82 test: feature_init, ensure indexes are synced prior to perturbing files
e3f416dbf7 Merge bitcoin/bitcoin#32463: test: fix an incorrect `feature_fee_estimation.py` subtest
ea4285775e Merge bitcoin/bitcoin#29307: util: explicitly close all AutoFiles that have been written
f5cf0b1ccc bitcoin wrapper: improve help output
51ccc71b1b Merge bitcoin/bitcoin#32858: doc: Add workaround for vcpkg issue with paths with embedded spaces
fcfd3db563 remove RPCTimerInterface and RPCRunLater
8a1765795f use WalletContext scheduler for walletpassphrase callback
927e9b220f Merge bitcoin/bitcoin#32716: depends: Override host compilers for FreeBSD and OpenBSD
c7fe8abb5f Merge bitcoin/bitcoin#31233: cmake: Improve Python robustness and test usability
6251949443 Merge bitcoin/bitcoin#32290: test: allow all functional tests to be run or skipped with --usecli
0f86da382d wallet: remove dead code in legacy wallet migration
49d5f1f2c6 Merge bitcoin/bitcoin#32850: test: check P2SH sigop count for coinbase tx
abd07cf733 test: feature_init, only init what's needed per perturbation/deletion round
1927432354 Merge bitcoin/bitcoin#32859: functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
68ca13e1f9 Merge bitcoin/bitcoin#32823: test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only()
35cae56a92 Merge bitcoin/bitcoin#31423: wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet
1632fc104b txgraph: Track multiple potential would-be clusters in Trim (improvement)
4608df37e0 txgraph: add Trim benchmark (benchmark)
9c436ff01c txgraph: add fuzz test scenario that avoids cycles inside Trim() (tests)
938e86f8fe txgraph: add unit test for TxGraph::Trim (tests)
a04e205ab0 txgraph: Add ability to trim oversized clusters (feature)
eabcd0eb6f txgraph: remove unnecessary m_group_oversized (simplification)
19b14e61ea txgraph: Permit transactions that exceed cluster size limit (feature)
c4287b9b71 txgraph: Add ability to configure maximum cluster size/weight (feature)
f0524cda39 functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
0a1af4418e doc: Add workaround for vcpkg issue with paths with embedded spaces
a92e8b10a5 Merge bitcoin/bitcoin#32564: miniscript, refactor: Make `operator""_mst` `consteval` (re-take)
bf75c9964f Merge bitcoin/bitcoin#32828: build, docs: Fix Boost-related issues on NetBSD
7fa9b58bd9 Merge bitcoin/bitcoin#32841: feature_taproot: sample tx version border values more
1b5c545e82 wallet, test: best block locator matches scan state follow-ups
fa33592898 Merge bitcoin/bitcoin#32723: Refactor: Redefine CTransaction equality to include witness data
ce000c8ee0 Merge bitcoin/bitcoin#32219: test: enabling wallet migration functional test on windows
f33154c464 Merge bitcoin/bitcoin#32432: wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them
fa9b1e3544 Merge bitcoin/bitcoin#32846: doc: clarify that the "-j N" goes after the "--build build" part
b1a8ac07e9 doc: Release note for removed watchonly parameters and results
15710869e1 wallet: Remove ISMINE_WATCH_ONLY
4439bf4b41 wallet, spend: Remove fWatchOnly from CCoinControl
1337c72198 wallet, rpc: Remove watchonly from RPCs
e81d95d435 wallet: Remove watchonly balances
d20dc9c6aa wallet: Wallets without private keys cannot grind R
9991f49c38 test: Watchonly wallets should estimate larger size
d6aaffcb11 test: check P2SH sigop count for coinbase tx
b1821d8dd3 Merge bitcoin/bitcoin#27286: wallet: Keep track of the wallet's own transaction outputs in memory
0e9f409db3 doc: clarify that the "-j N" goes after the "--build build" part
67dc7523f3 cmake, test: Disable tests instead of ignoring them
bb9157db5d cmake, refactor: Switch to `Python3::Interpreter` imported target
ed7a841f82 Merge bitcoin/bitcoin#32816: contrib: correct variable name in p2p_monitor.py
2ae5154dd8 Merge bitcoin/bitcoin#32842: doc: add `/spenttxouts` to REST-interface.md
243553d590 refactor: replace get_iter_from_wtxid with GetIter(const Wtxid&)
fcf92fd640 refactor: make CTxMemPool::GetIter strongly typed
23a00fcf57 Merge bitcoin/bitcoin#32783: doc: Add fetching single PRs from upstream to productivity.md
dd99cedc0b doc: add `/spenttxouts` to REST-interface.md
4be81e9746 feature_taproot: sample tx version border values more
6e5b67a370 Merge bitcoin/bitcoin#32697: test: Turn util/test_runner into functional test
fb2c16cf7b Merge bitcoin/bitcoin#32826: p2p: add more bad ports
f5f3e1f263 Merge bitcoin/bitcoin#32646: p2p: Add witness mutation check inside FillBlock
a763497b1d Merge bitcoin/bitcoin#32834: test: Use msg_generic in p2p_ping.py
fa3f100010 test: Use msg_generic in p2p_ping.py
33480573cb Merge bitcoin/bitcoin#32833: test: Add `msgtype` to `msg_generic` slots
9501738e1c Merge bitcoin/bitcoin#32825: rest: rename `strURIPart` to `uri_part`
5a5ddbd789 build: Add workaround for NetBSD bug in `Boost::headers` target
6967e8e8ab add more bad p2p ports
7dc43ea503 test: Add msgtype to msg_generic slots
4eb3cee919 doc: Update NetBSD Build Guide
856f4235b1 scripted-diff: rest: rename `strURIPart` -> `uri_part`
b3bb4031ab Merge bitcoin/bitcoin#32540: rest: fetch spent transaction outputs by blockhash
3086c21df4 Merge bitcoin/bitcoin#32243: test: added fuzz coverage for consensus/merkle.cpp
319ff58bbd Merge bitcoin/bitcoin#32638: blocks: force hash validations on disk read
ec004cdb86 test: Use rehash() in outbound eviction block-relay
26598ed21e test: Clarify roles in outbound eviction comments
689318ccd9 Merge bitcoin/bitcoin#32667: build: Find Boost in config mode
4a3475a43e Merge bitcoin/bitcoin#32819: Add release note for #32530
558f0880a8 Add release note for #32530
c43cc48aaa Merge bitcoin/bitcoin#32530: node: cap `-maxmempool` and `-dbcache` values for 32-bit
4145a9463a Merge bitcoin/bitcoin#32731: depends: Build `qt` package for FreeBSD hosts
14653b869b build: Find Boost in config mode
67ea4b9994 Merge bitcoin/bitcoin#32814: cmake: Explicitly specify `Boost_ROOT` for Homebrew's package
5170ec1ae3 Merge bitcoin/bitcoin#32665: depends: Bump boost to 1.88.0 and use new CMake buildsystem
8fafb81320 Merge bitcoin/bitcoin#32805: cmake: Use `HINTS` instead of `PATHS` in `find_*` commands
6bb38bf37f Update p2p_monitor.py
9b75cfda4d test: retain the intended behavior of `feature_fee_estimation.py` nodes
5c1236f04a test: fix incorrect subtest in `feature_fee_estimation.py`
e5f9218b6a Merge bitcoin/bitcoin#32742: test: fix catchup loop in outbound eviction functional test
11d28f21bb Implement GenTxid as a variant
215e5999e2 wallet: Remove unused CachedTxGet{Available,Immature}Credit
49675de035 wallet: Have GetDebit use the wallet's TXO set
17d453cb3a wallet: Recompute wallet TXOs after descriptor migration
764016eb22 wallet: Retrieve TXO directly in FetchSelectedInputs
c1801b78f1 wallet: Use wallet's TXO set in AvailableCoins
dde7cbe105 wallet: Change balance calculation to use m_txos
96e7a89c5e wallet: Recalculate the wallet's txos after any imports
ae888c38d0 wallet: Exit IsTrustedTx early if wtx is already in trusted_parents
ae0876ec42 wallet: Keep track of transaction outputs owned by the wallet
0f269bc48c walletdb: Load Txs last
5cc32ee2a7 test: Test for balance update due to untracked output becoming spendable
8222341d4f wallet: MarkDirty after AddWalletDescriptor
e02f2d331c bench: Have AvailableCoins benchmark include a lot of unrelated utxos
f27898c8bf Merge bitcoin/bitcoin#32721: wallet, rpc: Remove deprecated balances from getwalletinfo and getunconfirmedbalance
8578fabb95 Merge bitcoin/bitcoin#32597: wallet: Always set descriptor cache upgraded flag for new wallets
941b8f54c0 ci: run get_previous_releases as part of test cross win job
5e2182140b test: increment mocked time for migrating wallet backups
5174565802 ci: disable feature_unsupported_utxo_db functional test
3dc90d69a6 test: remove mempool.dat before copying
67a6b20d50 test: add windows support to get previous releases script
01f9081955 Merge bitcoin/bitcoin#32768: wallet: Remove `CWalletTx::fTimeReceivedIsTxTime`
c1d8a542b4 Merge bitcoin/bitcoin#32727: doc: add release notes for #32425
1a1b478ca3 scripted-diff: rename tarball to archive
4f06dc8484 test: remove building from source from get prev releases script
45b1d39757 doc: Add fetching single PRs from upstream
8800b5acc1 cmake: Explicitly specify `Boost_ROOT` for Homebrew's package
b9a2e8ee96 doc: add release notes for https://github.com/bitcoin/bitcoin/pull/32425
aac0b6dd79 test: test sendall and send do anti-fee-sniping
20802c7b65 wallet, rpc: add anti-fee-sniping to `send` and `sendall`
6c2538d5bf depends: Bump boost to 1.88.0 and use new CMake buildsystem
7d5a6d1739 Merge bitcoin/bitcoin#32798: build: add root dir to CMAKE_PREFIX_PATH in toolchain
a34fb9ad6c miniscript: Make `operator""_mst` `consteval`
14052162b1 Revert "miniscript: make operator_mst consteval"
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
ead4468748 cmake: Use `HINTS` instead of `PATHS` in `find_*` commands
ad654a4807 Merge bitcoin/bitcoin#32767: ci: Allow running CI in worktrees
67e6746dc8 Merge bitcoin/bitcoin#32780: lsan: add more Qt suppressions
e27a94596f build: add root dir to CMAKE_PREFIX_PATH
173394d951 depends: Build `qt` package for FreeBSD hosts
922adf66ac mempool: use `FeeFrac` for calculating regular score
3322b3a059 mempool: use `FeeFrac` for calculating ancestor score
ac9c113bd2 mempool: use `FeeFrac` for calculating descendant score
e95bfc1d53 Merge bitcoin/bitcoin#32797: doc: archive 28.2 release notes
666016e56b ci: use --usecli in one of the CI jobs
7ea248a020 test: Disable several (sub)tests with cli
f420b6356b test: skip subtests that check for wrong types with cli
6530d0015b test: add function to convert to json for height_or_hash params
54d28722ba test: Don't send empty named args with cli
cca422060e test: convert tuple to json for cli
af34e98086 test: make rpc_psbt.py usable with --usecli
8f8ce9e174 test: rename .rpc to ._rpc and remove unnecessary uses
5b08885986 test: enable functional tests with large rpc args for cli
7d5352ac73 test: use -stdin for large rpc commands
6c364e0c10 test: Enable various tests for usage with cli
907842363c doc: archive 28.2 release notes
c5849663ba Merge bitcoin/bitcoin#32771: contrib: tracing: Fix read of `pmsg_type` in p2p_monitor.py
8a36a471e6 Merge bitcoin/bitcoin#32781: refactor: modernize deprecated ipc headers
ed060e01e7 Merge bitcoin/bitcoin#32725: test: round difficulty and networkhashps
daf393b3f1 Merge bitcoin/bitcoin#32642: test: update BIP340 test vectors and implementation (variable-length messages)
482d255376 Merge bitcoin/bitcoin#32736: wallet: Correct dir iteration error handling
c40dbbbf77 test: Move `script_assets_tests` into its own suite
74b7e9c7db refactor: modernize deprecated ipc headers
154b98a7aa Merge bitcoin/bitcoin#32772: fuzz: wallet: remove `FundTx` from `FuzzedWallet`
fa183045a1 Merge bitcoin/bitcoin#32765: test: Fix list index out of range error in feature_bip68_sequence.py
5be31b20e5 lsan: add more Qt suppressions
e18322eff2 Merge bitcoin/bitcoin#32774: doc: Explain how to fetch commits directly
b861419254 Merge bitcoin/bitcoin#32777: doc: fix Transifex 404s
79afe6b7c0 Merge bitcoin/bitcoin#32776: doc: taproot became always active in v24.0 (doc/bips.md)
53a996f122 doc: fix transifex 404s
8ee8a951c2 doc: taproot became always active in v24.0
fa21631595 test: Use self.log
fa346f7797 test: Move error string into exception
fa1986181f test: Remove useless catch-throw
fa94fd53c9 doc: Explain how to fetch commits directly
9a7eece5a4 Merge bitcoin/bitcoin#31981: Add checkBlock() to Mining interface
8cc9845b8d wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them
3473986fe1 contrib: tracing: Correctly read msg type in p2p_monitor.py
cd1ae1b4df fuzz: wallet: remove FundTx from FuzzedWallet
fa68dcb207 ci: Add missing errexit to lint CI install
fa535a6de7 ci: Allow running CI in worktrees
faf6a04597 ci: Clean UID/GID mismatch
9eb2c82e7c walletdb: Remove unused upgraded_txs
c668033709 wallet: Remove unused fTimeReceivedIsTxTime
5e6dbfd14e Merge bitcoin/bitcoin#32465: thread-safety: fix annotations with REVERSE_LOCK
e285e691b7 test: Fix list index out of range error in feature_bip68_sequence.py
1be688f575 Merge bitcoin/bitcoin#32682: wallet: have external signer use PSBT error code EXTERNAL_SIGNER_NOT_FOUND
a201a99f8c thread-safety: fix annotations with REVERSE_LOCK
26747d9f3e Merge bitcoin/bitcoin#32760: depends: capnp 1.2.0
c10e382d2a flatfile: check whether the file has been closed successfully
4bb5dd78ea util: check that a file has been closed before ~AutoFile() is called
8bb34f07df Explicitly close all AutoFiles that have been written
a69c4098b2 rpc: take ownership of the file by WriteUTXOSnapshot()
c7eaac326a depends: capnp 1.2.0
afaaba69ed test: refactor out same-txid-diff-wtxid tx to reuse in other tests
084eee0291 Merge bitcoin/bitcoin#32743: refactor: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()`
c48846ec41 doc: add release notes for #32540
d7fca5c171 clusterlin: add big comment explaning the relation between tests
b64e61d2de clusterlin: abstract try-permutations into ExhaustiveLinearize function
1fa55a64ed clusterlin tests: verify that chunks are minimal
da23ecef29 clusterlin tests: support non-empty ReadTopologicalSubset()
94f3e17c33 clusterlin tests: compare with fuzz-provided linearizations
5f92ebee0d clusterlin tests: compare with fuzz-provided topological sets
6e37824ac3 clusterlin tests: optimize clusterlin_simple_linearize
98c1c88b6f clusterlin tests: separate testing of SimpleLinearize and Linearize
10e90f7aef clusterlin tests: make SimpleCandidateFinder always find connected
a38c38951e clusterlin tests: separate testing of Search- and SimpleCandidateFinder
77a432ee70 clusterlin tests: count SimpleCandidateFinder iterations better
a18e572328 test: more template verification tests
10c908808f test: move gbt proposal mode tests to new file
94959b8dee Add checkBlock to Mining interface
6077157531 ipc: drop BlockValidationState special handling
74690f4ed8 validation: refactor TestBlockValidity
2def858473 Merge bitcoin/bitcoin#32481: wallet, refactor: Remove Legacy wallet unused warnings and errors
287cd04a32 Merge bitcoin/bitcoin#32594: wallet, rpc: Return normalized descriptor in parent_descs
fd74d609be Merge bitcoin/bitcoin#32620: wallet: Fix wallet interface detection of encrypted wallets
6ecb9fc65f chore: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()`
65b26507b8 Merge bitcoin/bitcoin#32746: test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py
3e81684426 Merge bitcoin/bitcoin#32739: tsan: remove note about dropping Qt wildcards
b8eb17792e Merge bitcoin/bitcoin#32175: fuzz: doc: add info about `afl-system-config` for macOS
206bc05e62 test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py
272cd09b79 log: Use warning level while scanning wallet dir
1777644367 qa, wallet: Verify warning when failing to scan
893e51ffeb wallet: Correct dir iteration error handling
52e6e93c3f Merge bitcoin/bitcoin#32693: depends: fix cmake compatibility error for freetype
fa2f1c55b7 move-only util data to test/functional/data/util
faa18bf287 test: Turn util/test_runner into functional test
fa955154c7 test: Add missing skip_if_no_bitcoin_tx
9341b5333a blockstorage: make block read hash checks explicit
2371b9f4ee test/bench: verify hash in `ComputeFilter` reads
5d235d50d6 net: assert block hash in `ProcessGetBlockData` and `ProcessMessage`
5db0a4a2db tsan: remove note about dropping Qt wildcards
d91c718a68 Merge bitcoin/bitcoin#32717: doc: Update Qt 6 packages on FreeBSD
fac9db6eb0 test: Add missing tx util to Binaries
fa91835ec6 test: Use lowercase env var as attribute name
fac49094cd test: Remove duplicate ConfigParser
9dfc61d95f test: detect no external signer connected
dd8447f70f test: fix catchup loop in outbound eviction functional test
19765dca19 Merge bitcoin/bitcoin#32694: index: move disk read lookups to base class
8cc3ac6c23 validation: Don't use IsValid() to filter for invalid blocks
86d98b94e5 test: verify that ancestors of a reconsidered block can become the chain tip
3c39a55e64 validation: Add ancestors of reconsiderblock to setBlockIndexCandidates
1df96f5931 doc: Update Qt 6 packages on FreeBSD
d7c37906e7 build: patch cmake min version on freetype
fa946520d2 refactor: Use structured binding for-loop
eeeec1579e rpc: Use type-safe exception to pass RPC help
5757de4ddd Merge bitcoin/bitcoin#32673: clang-tidy: Apply modernize-deprecated-headers
1473f69924 Merge bitcoin/bitcoin#32421: test: refactor: overhaul (w)txid determination for `CTransaction` objects
7c0cfce20d Merge bitcoin/bitcoin#31405: validation: stricter internal handling of invalid blocks
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
851f540d0e Merge bitcoin/bitcoin#32703: test: Explain how to reproduce zmq:: upstream race
5af5e9791d Merge bitcoin/bitcoin#32690: depends: fix multiprocess build on OpenBSD (apply capnp patch, correct SHA256SUM command)
fed41b75fb Merge bitcoin/bitcoin#32431: deps: Bump lief to 0.16.6
e017ef3c7e init: make `-blockmaxweight` startup option debug-only
578ea3eedb test: round difficulty and networkhashps
c8abd97281 Merge bitcoin/bitcoin#32719: doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
029ba1a21d index: remove CBlockIndex access from CustomAppend()
91b7ab6c69 refactor: index, simplify CopyHeightIndexToHashIndex to process single block
4f56c9145a refactor: contrib: Move FORTIFY check to BASE_ELF
f6d25e8a2d contrib: Re-enable FORTIFY check for RISCV
765922d802 deps: bump lief to 0.16.6
4b8ac9eacd Merge bitcoin/bitcoin#32680: ci: Rewrite test-each-commit as py script
4ef6253017 test: avoid unneeded (w)txid hex -> integer conversions
472f3770ae scripted-diff: test: rename CTransaction `.getwtxid()` -> `wtxid_hex` for consistency
81af4334e8 test: rename CTransaction `.sha256` -> `.txid_int` for consistency
ce83924237 test: rename CTransaction `.rehash()`/`.hash` -> `.txid_hex` for consistency
6efbd1e1dc refactor: CTransaction equality should consider witness data
cbf9b2dab1 mempool: codify existing assumption about duplicate txids during removal
c3fe85e2d6 wallet, rpc, test: Remove deprecated getunconfirmedbalance
0ec255139b wallet, rpc: Remove deprecated balances from getwalletinfo
e9331cd6ab wallet: IsEquivalentTo should strip witness data in addition to scriptsigs
157bbd0a07 Merge bitcoin/bitcoin#32425: config: allow setting -proxy per network
ebec7bf389 Merge bitcoin/bitcoin#32572: doc: Remove stale sections in dev notes
ce90f0c99f rpc, wallet, refactor: Remove non-descriptor errors
573bcd75d7 wallet, refactor: Remove unused SetupGeneration
5431f2dc21 wallet, refactor: Remove Legacy warnings and errors
6f1392cc42 indexes, refactor: Remove remaining CBlockIndex* uses in index Rewind methods
0a248708dc indexes, refactor: Stop requiring CBlockIndex type to call IsBIP30Unspendable
011a8c5f01 Merge bitcoin/bitcoin#32696: doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
fe39050a66 Merge bitcoin/bitcoin#32678: guix: warn and abort when SOURCE_DATE_EPOCH is set
692fe280c2 Merge bitcoin/bitcoin#32713: doc: fuzz: fix AFL++ link
28299ce776 p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED
bac9ee4830 p2p: Add witness mutation check inside FillBlock
4f10a57671 depends: Override host compilers for FreeBSD and OpenBSD
239fc4d62e doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
c1d4253d31 Merge bitcoin/bitcoin#32711: doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
89526deddf doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
a39b7071cf doc: fuzz: fix AFL++ link
dff208bd5a Merge bitcoin/bitcoin#32708: rpc, doc: update `listdescriptors` RCP help
d978a43d05 Merge bitcoin/bitcoin#32408: tests: Expand HTTP coverage to assert libevent behavior
e9cdaefb0a test: introduce and use CTransaction `.wtxid_int` property
9b3dce24a3 test: remove bare CTransaction `.rehash()`/`.calc_sha256()` calls
a2724e3ea3 test: remove txid caching in CTransaction class
fa0b766f43 test: Remove intermittent and presumed fixed tsan race suppressions
f3bbc74664 Merge bitcoin/bitcoin#32406: policy: uncap datacarrier by default
b44514b876 rpc, doc: update `listdescriptors` RCP help
fa4b659dcd test: Explain how to reproduce zmq:: upstream race
d4e212e8a6 rest: fetch spent transaction outputs by blockhash
32d4e92b9a doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
e2174378aa Merge bitcoin/bitcoin#32539: init: Configure reachable networks before we start the RPC server
2053c43684 Merge bitcoin/bitcoin#32675: test: wallet: cover wallet passphrase with a null char
331a25cb16 test: indexes, avoid creating threads when sync runs synchronously
95969bc58a test: added fuzz coverage to consensus/merkle.cpp
f6b782f3aa doc: Improve m_best_header documentation
ee673b9aa0 validation: remove m_failed_blocks
ed764ea2b4 validation: Add more checks to CheckBlockIndex()
9a70883002 validation: in invalidateblock, calculate m_best_header right away
8e39f2d20d validation: in invalidateblock, mark children as invalid right away
4c29326183 validation: cache all headers with enough PoW in invalidateblock
15fa5b5a90 validation: call InvalidBlockFound also from AcceptBlock
fa9cfdf3be ci: [doc] fix url redirect
fac60b9c48 ci: Rewrite test-each-commit as py script
8713e8060d depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
2d938720bd depends: add patch to fix capnp build on OpenBSD
0a4ee93529 wallet: use PSBTError::EXTERNAL_SIGNER_NOT_FOUND
8ba2f9b7c8 refactor: use util::Result for GetExternalSigner()
ae024137bd Merge bitcoin/bitcoin#32496: depends: drop `ltcg` for Windows Qt
6a2ff67909 Merge bitcoin/bitcoin#32679: doc: update tor docs to use bitcoind binary from path
fd4399cb9c Merge bitcoin/bitcoin#32602: fuzz: Add target for coins database
130a922980 wallet, interfaces: Use BERKELEY_RO in isEncrypted
f94167512d Merge bitcoin/bitcoin#32676: test: apply microsecond precision to test framework logging
0dcb45290c Merge bitcoin/bitcoin#32607: rpc: Note in fundrawtransaction doc, fee rate is for package
4ce53495e5 doc: update tor docs to use bitcoind binary from path
a5e98dc3ae Merge bitcoin/bitcoin#32651: cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
9653ebc053 depends: remove support for Windows Qt LTO builds
7cfbb8575e test: wallet: cover wallet passphrase with a null char
5c4a0f8009 guix: warn and abort when SOURCE_DATE_EPOCH is set
4af72d8b08 Merge bitcoin/bitcoin#32647: build: add -Wthread-safety-pointer
a980918f51 Merge bitcoin/bitcoin#32568: depends: use "mkdir -p" when installing xproto
ed179e0a65 test: apply microsecond precision to test framework logging
fa9ca13f35 refactor: Sort includes of touched source files
facb152697 scripted-diff: Bump copyright headers after include changes
fae71d30f7 clang-tidy: Apply modernize-deprecated-headers
e872a566f2 Merge bitcoin/bitcoin#32644: doc: miscellaneous changes
e50312eab0 doc: fix typos
c797e50dda ci: update codespell to 2.4.1
21ee656337 doc: Remove obselete link in notificator.cpp
ee4406c04a doc: update URLs
2d819fa4df Merge bitcoin/bitcoin#29032: signet: omit commitment for some trivial challenges
f999c3775c Merge bitcoin/bitcoin#32449: wallet: init, don't error out when loading legacy wallets
6135e0553e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC
0def84d407 test: Verify parent_desc in RPCs
f98e1aaf34 rpc: Note in fundrawtransaction doc, fee rate is for package
db225cea56 wallet, refactor: Replace GetDisplayName() with LogName()
1c6602399b Merge bitcoin/bitcoin#32662: doc: Remove build instruction for running `clang-tidy`
01737883b3 wallet: Translate [default wallet] string in progress messages
4b1b36acb4 doc: Remove build instruction for running `clang-tidy`
9e105107bf Merge bitcoin/bitcoin#32656: depends: don't install & then delete sqlite pkgconf
72a5aa9b79 depends: don't install & then delete sqlite pkgconf
18cf727429 cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
83bfe1485c build: add -Wthread-safety-pointer
e639ae0531 Update leveldb subtree to latest upstream
240a4fb95d Squashed 'src/leveldb/' changes from 113db4962b..aba469ad6a
a189d63618 add release note for datacarriersize default change
a141e1bf50 Add more OP_RETURN mempool acceptance functional tests
0b4048c733 datacarrier: deprecate startup arguments for future removal
63091b79e7 test: remove unnecessary -datacarriersize args from tests
9f36962b07 policy: uncap datacarrier by default
4b1d48a686 Merge bitcoin/bitcoin#32598: walletdb: Log additional exception error messages for corrupted wallets
b933813386 Merge bitcoin/bitcoin#32619: wallet, rpc, gui: List legacy wallets with a message about migration
053bda5d9f Merge bitcoin/bitcoin#32460: fs: remove `_POSIX_C_SOURCE` defining
9393aeeca4 Merge bitcoin/bitcoin#32641: Update libmultiprocess subtree to fix clang-tidy errors
b184f5c87c test: update BIP340 test vectors and implementation (variable-length messages)
5471e29d05 Merge bitcoin/bitcoin#32304: test: test MAX_SCRIPT_SIZE for block validity
154af1eea1 Squashed 'src/ipc/libmultiprocess/' changes from 35944ffd23fa..27c7e8e5a581
9f6565488f Merge commit '154af1eea1170f5626aa1c5f19cc77d1434bcc9d' into HEAD
c810b168b8 doc: Add description of installed files to files.md
c540ede1cb Merge bitcoin/bitcoin#32633: windows: Use predefined `RC_INVOKED` macro instead of custom one
94ffd01a02 doc: Add release notes describing libexec/ binaries
cd97905ebc cmake: Move internal binaries from bin/ to libexec/
cfc42ae5b7 fuzz: add a target for the coins database
55f1c2ac8b windows: Use predefined `RC_INVOKED` macro instead of custom one
14c16e8159 Merge bitcoin/bitcoin#32582: log: Additional compact block logging
aad5938c49 Merge bitcoin/bitcoin#32516: test: add MAX_DISCONNECTED_TX_POOL_BYTES, chainlimits coverage
1062df81ee Merge bitcoin/bitcoin#32634: build: Add resource file and manifest to `bitcoin.exe`
b789907346 wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet
83df64d749 log: Stats when fulfilling GETBLOCKTXN
370c592612 Merge bitcoin/bitcoin#32630: test: fix sync function in rpc_psbt.py
dbb2d4c3d5 windows: Add application manifest to `bitcoin.exe`
df82c2dc17 windows: Add resource file for `bitcoin.exe`
3733ed2dae log: Size of missing tx'es when reconstructing compact block
4df4df45d7 test: fix sync function in rpc_psbt.py
e86d71b749 wallet: refactor, dedup wallet re-loading code
1de423e0a0 wallet: introduce method to return all db created files
d04f6a97ba refactor: remove sqlite dir path back-and-forth conversion
88b22acc3d Merge bitcoin/bitcoin#32528: rpc: Round verificationprogress to 1 for a recent tip
aee7cec0db Merge bitcoin/bitcoin#32364: refactor: validation: mark CheckBlockIndex as const
ce46000712 Merge bitcoin/bitcoin#32509: qa: feature_framework_startup_failures.py fixes & improvements (#30660 follow-up)
d21612fc4b Merge bitcoin/bitcoin#32404: log: print reason when writing chainstate
84aa484d45 test: fix transaction_graph_test reorg test
eaf44f3767 test: check chainlimits respects on reorg
47894367b5 functional test: add MAX_DISCONNECTED_TX_POOL_BYTES coverage
9bd9aee5a6 Merge bitcoin/bitcoin#32487: blocks: avoid recomputing block header hash in `ReadBlock`
4173805a15 Merge bitcoin/bitcoin#32623: test: Add missing ipc subtree to lint
012f347685 Merge bitcoin/bitcoin#31375: multiprocess: Add bitcoin wrapper executable
2554cee988 test: Enable default wallet for wallet_descriptor.py
3fc9d9f241 wallet, rpc: Push the normalized parent descriptor
38ad8027a2 Merge bitcoin/bitcoin#32439: guix: accomodate migration to codeberg
fa4b8b16c3 test: Add missing ipc subtree to lint
f7cc7f6468 Merge bitcoin/bitcoin#32591: test: fix and augment block tests of invalid_txs
87860143be Merge bitcoin/bitcoin#32270: test: fix pushdata scripts
c8d9baae94 guix: accomodate migration to codeberg
f3a444c45f gui: Disallow loading legacy wallets
09955172f3 wallet, rpc: Give warning in listwalletdir for legacy wallets
09ee8b7f27 node: avoid recomputing block hash in `ReadBlock`
2bf173210f test: exercise `ReadBlock` hash‑mismatch path
fab1e02086 refactor: Pass verification_progress into block tip notifications
638a4c0bd8 Merge bitcoin/bitcoin#32596: wallet, rpc, doc: various legacy wallet removal cleanups in RPCs
53e9b71b2f log: print reason for why should_write was triggered in `FlushStateToDisk`…
achow101 added a commit that referenced this pull request Sep 2, 2025
2885bd0 doc: unify `datacarriersize` warning with release notes (Lőrinc)

Pull request description:

  Follow-up to #32406

  ---

  The [release notes](https://github.com/bitcoin/bitcoin/blob/a189d636184b1c28fa4a325b56c1fab8f44527b1/doc/release-notes-32406.md#L1) claim

  > [...] marked as deprecated and are expected to be removed in a future release

  but the [warning itself](https://github.com/bitcoin/bitcoin/blob/2885bd0e1c4fc863a7f28ff0fd353f5cffb03442/src/init.cpp#L907) claims

  > [...] marked as deprecated. They **will** be removed in a future version.

  To be less aggressive (since some have objected against this version online) - and to unify the deprecation warning with the release notes - I have changed the warning to communicate our expectation in a friendlier way.

ACKs for top commit:
  cedwies:
    ACK 2885bd0
  ryanofsky:
    Code review ACK 2885bd0. I don't think it is good for the release notes and the runtime warning message to say two different things. I'd also be happy if release notes were updated to match the runtime warning, instead of vice versa. Whatever is more accurate is better.
  ajtowns:
    ACK 2885bd0
  kevkevinpal:
    ACK [2885bd0](2885bd0)
  achow101:
    ACK 2885bd0
  janb84:
    ACK 2885bd0
  Zero-1729:
    crACK 2885bd0
  jonatack:
    ACK 2885bd0
  hodlinator:
    ACK 2885bd0
  w0xlt:
    ACK 2885bd0
  optout21:
    ACK 2885bd0

Tree-SHA512: a9d2a64ab96b3dd7f3a1a29622930054fd5c56e573bc96330f4ef3327dc024b21b3fbc8a698d17aea7c76f57f0c2ccd6403b2df344ae2f69c645ceb8b6fa54a5
@inkhaton

This comment was marked as off-topic.

@systemic-threat
Copy link

Concept NACK

I've educated myself on the issue.

@ybaidiuk

This comment was marked as off-topic.

@systemic-threat

This comment has been minimized.

bug-castercv502 added a commit to bug-castercv502/rust-bitcoinkernel that referenced this pull request Sep 28, 2025
…9e030d56343

d9e030d56343 kernel: Fix bitcoin-chainstate for windows
cc4ac564cc38 kernel: Add Purpose section to header documentation
bfdf605296ce kernel: Add pure kernel bitcoin-chainstate
35099f39b7ea kernel: Add functions to get the block hash from a block
fae94070a72e kernel: Add block index utility functions to C header
d5d377859785 kernel: Add function to read block undo data from disk to C header
43f6039b7b48 kernel: Add functions to read block from disk to C header
54cdfcdc68e6 kernel: Add function for copying block data to C header
18cab45358c3 kernel: Add functions for the block validation state to C header
033e86a06cbc kernel: Add validation interface to C header
9398f9ea4e14 kernel: Add interrupt function to C header
86340a490541 kernel: Add import blocks function to C header
f11dc01bba94 kernel: Add chainstate load options for in-memory dbs in C header
be9fc18dd54f kernel: Add options for reindexing in C header
7947a9b500fc kernel: Add block validation to C header
d5ace1f8ea96 kernel: Add chainstate loading when instantiating a ChainstateManager
47ff652cf08f kernel: Add chainstate manager option for setting worker threads
106898e0c25f kernel: Add chainstate manager object to C header
3eadf1ccbe1c kernel: Add notifications context option to C header
98b1454a987a kernel: Add chain params context option to C header
ca8d6ee344b7 kernel: Add kernel library context object
96f5ebe97748 kernel: Add logging to kernel library C header
906a19748152 kernel: Introduce initial kernel C header API
4b8ac9eacd1b Merge bitcoin/bitcoin#32680: ci: Rewrite test-each-commit as py script
157bbd0a07c0 Merge bitcoin/bitcoin#32425: config: allow setting -proxy per network
ebec7bf3895c Merge bitcoin/bitcoin#32572: doc: Remove stale sections in dev notes
011a8c5f0168 Merge bitcoin/bitcoin#32696: doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
fe39050a66c7 Merge bitcoin/bitcoin#32678: guix: warn and abort when SOURCE_DATE_EPOCH is set
692fe280c232 Merge bitcoin/bitcoin#32713: doc: fuzz: fix AFL++ link
c1d4253d316e Merge bitcoin/bitcoin#32711: doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
89526deddf87 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
a39b7071cfb4 doc: fuzz: fix AFL++ link
dff208bd5a14 Merge bitcoin/bitcoin#32708: rpc, doc: update `listdescriptors` RCP help
d978a43d054d Merge bitcoin/bitcoin#32408: tests: Expand HTTP coverage to assert libevent behavior
f3bbc746647d Merge bitcoin/bitcoin#32406: policy: uncap datacarrier by default
b44514b87633 rpc, doc: update `listdescriptors` RCP help
32d4e92b9ac8 doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
e2174378aa8a Merge bitcoin/bitcoin#32539: init: Configure reachable networks before we start the RPC server
2053c4368472 Merge bitcoin/bitcoin#32675: test: wallet: cover wallet passphrase with a null char
fa9cfdf3be75 ci: [doc] fix url redirect
fac60b9c4839 ci: Rewrite test-each-commit as py script
ae024137bda9 Merge bitcoin/bitcoin#32496: depends: drop `ltcg` for Windows Qt
6a2ff6790929 Merge bitcoin/bitcoin#32679: doc: update tor docs to use bitcoind binary from path
fd4399cb9c69 Merge bitcoin/bitcoin#32602: fuzz: Add target for coins database
f94167512dc9 Merge bitcoin/bitcoin#32676: test: apply microsecond precision to test framework logging
0dcb45290cf8 Merge bitcoin/bitcoin#32607: rpc: Note in fundrawtransaction doc, fee rate is for package
4ce53495e5e1 doc: update tor docs to use bitcoind binary from path
a5e98dc3ae63 Merge bitcoin/bitcoin#32651: cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
9653ebc05360 depends: remove support for Windows Qt LTO builds
7cfbb8575e1f test: wallet: cover wallet passphrase with a null char
5c4a0f8009ce guix: warn and abort when SOURCE_DATE_EPOCH is set
4af72d8b0892 Merge bitcoin/bitcoin#32647: build: add -Wthread-safety-pointer
a980918f51d7 Merge bitcoin/bitcoin#32568: depends: use "mkdir -p" when installing xproto
ed179e0a6528 test: apply microsecond precision to test framework logging
e872a566f251 Merge bitcoin/bitcoin#32644: doc: miscellaneous changes
e50312eab0b5 doc: fix typos
c797e50ddae9 ci: update codespell to 2.4.1
21ee656337b0 doc: Remove obselete link in notificator.cpp
ee4406c04af0 doc: update URLs
2d819fa4dff9 Merge bitcoin/bitcoin#29032: signet: omit commitment for some trivial challenges
f999c3775c12 Merge bitcoin/bitcoin#32449: wallet: init, don't error out when loading legacy wallets
f98e1aaf34e3 rpc: Note in fundrawtransaction doc, fee rate is for package
1c6602399be6 Merge bitcoin/bitcoin#32662: doc: Remove build instruction for running `clang-tidy`
4b1b36acb48f doc: Remove build instruction for running `clang-tidy`
9e105107bf52 Merge bitcoin/bitcoin#32656: depends: don't install & then delete sqlite pkgconf
72a5aa9b791e depends: don't install & then delete sqlite pkgconf
18cf727429e9 cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
83bfe1485c37 build: add -Wthread-safety-pointer
e639ae05315e Update leveldb subtree to latest upstream
240a4fb95d5b Squashed 'src/leveldb/' changes from 113db4962b..aba469ad6a
a189d636184b add release note for datacarriersize default change
a141e1bf501b Add more OP_RETURN mempool acceptance functional tests
0b4048c73385 datacarrier: deprecate startup arguments for future removal
63091b79e70b test: remove unnecessary -datacarriersize args from tests
9f36962b07ef policy: uncap datacarrier by default
4b1d48a6866b Merge bitcoin/bitcoin#32598: walletdb: Log additional exception error messages for corrupted wallets
b933813386ef Merge bitcoin/bitcoin#32619: wallet, rpc, gui: List legacy wallets with a message about migration
053bda5d9fb3 Merge bitcoin/bitcoin#32460: fs: remove `_POSIX_C_SOURCE` defining
9393aeeca4b1 Merge bitcoin/bitcoin#32641: Update libmultiprocess subtree to fix clang-tidy errors
5471e29d0570 Merge bitcoin/bitcoin#32304: test: test MAX_SCRIPT_SIZE for block validity
9f6565488fc1 Merge commit '154af1eea1170f5626aa1c5f19cc77d1434bcc9d' into HEAD
154af1eea117 Squashed 'src/ipc/libmultiprocess/' changes from 35944ffd23fa..27c7e8e5a581
c540ede1cbca Merge bitcoin/bitcoin#32633: windows: Use predefined `RC_INVOKED` macro instead of custom one
cfc42ae5b7ef fuzz: add a target for the coins database
55f1c2ac8beb windows: Use predefined `RC_INVOKED` macro instead of custom one
14c16e81598a Merge bitcoin/bitcoin#32582: log: Additional compact block logging
aad5938c49f9 Merge bitcoin/bitcoin#32516: test: add MAX_DISCONNECTED_TX_POOL_BYTES, chainlimits coverage
1062df81eec7 Merge bitcoin/bitcoin#32634: build: Add resource file and manifest to `bitcoin.exe`
83df64d7491b log: Stats when fulfilling GETBLOCKTXN
370c59261269 Merge bitcoin/bitcoin#32630: test: fix sync function in rpc_psbt.py
dbb2d4c3d547 windows: Add application manifest to `bitcoin.exe`
df82c2dc17e3 windows: Add resource file for `bitcoin.exe`
3733ed2dae3d log: Size of missing tx'es when reconstructing compact block
4df4df45d7bc test: fix sync function in rpc_psbt.py
84aa484d45e2 test: fix transaction_graph_test reorg test
eaf44f376784 test: check chainlimits respects on reorg
47894367b583 functional test: add MAX_DISCONNECTED_TX_POOL_BYTES coverage
f3a444c45fb4 gui: Disallow loading legacy wallets
09955172f38a wallet, rpc: Give warning in listwalletdir for legacy wallets
ad9a13fc424e walletdb: Log additional exception error messages for corrupted wallets
46e14630f7fe fuzz: move the coins_view target's body into a standalone function
56d878c4650c fuzz: avoid underflow in coins_view target
36bcee05dc71 log: Log start of compact block initialization.
24e5fd3bedce fs: remove _POSIX_C_SOURCE defining
f16c8c67bf13 tests: Expand HTTP coverage to assert libevent behavior
fac00d4ed361 doc: Move CI-must-pass requirement into readme section
fab79c1a250d doc: Clarify and move "hygienic commit" note
fac8b0519799 doc: Clarify strprintf size specifier note
faaf34ad7253 doc: Remove section about RPC alias via function pointer
2222d61e1ce5 doc: Remove section about RPC arg names in table
fa00b8c02c9d doc: Remove section about include guards
fad6cd739b63 doc: Remove dev note section on includes
fa6623d85af1 doc: Remove file name section
7777fb8bc749 doc: Remove shebang section
faf65f05312b doc: Remove .gitignore section
faf2094f2511 doc: Remove note about removed ParsePrechecks
fa69c5b170f5 doc: Remove -disablewallet from dev notes
df9ebbf659d5 depends: use "mkdir -p" when installing xproto
6ee32aaaca4a test: signet tool genpsbt and solvepsbt commands
0a99d99fe4cb signet: miner skips PSBT step for OP_TRUE
cdfb70e5a6a9 signet: split decode_psbt miner helper
86e1111239cd test: verify node skips loading legacy wallets during startup
12ff4be9c724 test: ensure -rpcallowip is compatible with RFC4193
c02bd3c1875a config: Explain RFC4193 and CJDNS interaction in help and init error
f728b6b11100 init: Configure reachable networks before we start the RPC server
9f94de5bb54f wallet: init, don't error out when loading legacy wallets
e98c51fcce9a doc: update tor.md to mention the new -proxy=addr:port=tor
ca5781e23a8f config: allow setting -proxy per network
b1ea542ae651 test: test MAX_SCRIPT_SIZE for block validity
REVERT: 9f83f8b46c84 kernel: build monolithic static lib
REVERT: 1417e0b3b1b0 kernel: Fix bitcoin-chainstate for windows
REVERT: 4f07590a8bd6 kernel: Add Purpose section to header documentation
REVERT: 58c01a82c163 kernel: Add pure kernel bitcoin-chainstate
REVERT: 0416a292f545 kernel: Add functions to get the block hash from a block
REVERT: 8d25dfd1b2a2 kernel: Add block index utility functions to C header
REVERT: eacf99dd3c28 kernel: Add function to read block undo data from disk to C header
REVERT: 3c012048c2f1 kernel: Add functions to read block from disk to C header
REVERT: 85f5264462e0 kernel: Add function for copying block data to C header
REVERT: f136ca589153 kernel: Add functions for the block validation state to C header
REVERT: 9d7e19ee522d kernel: Add validation interface to C header
REVERT: 51555301a882 kernel: Add interrupt function to C header
REVERT: 61c4ac9c8e1f kernel: Add import blocks function to C header
REVERT: 4153ab77084e kernel: Add chainstate load options for in-memory dbs in C header
REVERT: cb128288a0d9 kernel: Add options for reindexing in C header
REVERT: 7ead2a92be50 kernel: Add block validation to C header
REVERT: 9262ce715448 kernel: Add chainstate loading when instantiating a ChainstateManager
REVERT: 594b060da476 kernel: Add chainstate manager option for setting worker threads
REVERT: 7384b7325d5f kernel: Add chainstate manager object to C header
REVERT: 7920e23c22b8 kernel: Add notifications context option to C header
REVERT: c0a86769e784 kernel: Add chain params context option to C header
REVERT: 3769d12882f9 kernel: Add kernel library context object
REVERT: f7b435493bd7 kernel: Add logging to kernel library C header
REVERT: 62d0122c7ed0 kernel: Introduce initial kernel C header API

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: d9e030d56343bb452d86169f77ddfb64f7160235
achow101 added a commit that referenced this pull request Sep 30, 2025
…guration options

451ba9a datacarrier: Undeprecate configuration option (Anthony Towns)

Pull request description:

  Removes the deprecation for the `datacarrier` and `datacarriersize` options by reverting commit 0b4048c from #32406

  **Many current Bitcoin Core users want to continue using this option**
  This statement is based on public postings from many Bitcoin Core users and not a formal survey. AJ Towns’ observation from [#32406](0b4048c#r2084024874) that “_for now there seem to be a bunch of users who like the option_” has only become more apparent in the months since.

  **The deprecation intent is unclear to users**
  This echo’s Ava Chow’s comment from #32714 that “_IMO we should not have removal warnings if there is no current plan to actually remove them._” In months since that comment, partially due to increased feedback from Bitcoin Core users wanting to keep this option, there is even less likelihood of a near term plan to remove these options. That leaves Bitcoin Core users in an unclear situation: the option could be removed in the next version or perhaps never. Removing the deprecation gives clarity for their planning purposes. Deprecating the option in the future, preferably with a removal schedule to better inform users, would still be possible.

  **Minimal downsides to removing deprecation**
  As a best practice, Bitcoin Core has avoided an option when the developers cannot articulate when they should be used. There is non-zero maintenance cost to keeping this code around (although leaving the options deprecated for a long time has the same effect). “Don’t offer users footguns” is also a good principle, but with this option, there seems to be only small impacts that can quickly be remedied by changing the option value by Bitcoin Core users. There already exist in Bitcoin Core more potentially-user-harmful options/values than what datacarrier might cause.

ACKs for top commit:
  ajtowns:
    ACK 451ba9a
  darosior:
    That said, certain users care strongly about using those options. In these conditions, i do not see the project removing the option anytime soon. Therefore i think it's technically incorrect (and confusing) to mark it as deprecated. utACK 451ba9a on removing the deprecation.
  instagibbs:
    crACK 451ba9a
  Raimo33:
    ACK 451ba9a
  Ademan:
    utACK 451ba9a
  ryanofsky:
    Code review ACK 451ba9a
  marcofleon:
    ACK 451ba9a
  achow101:
    ACK 451ba9a
  moonsettler:
    ACK 451ba9a
  ismaelsadeeq:
    utACK 451ba9a 🛰️
  jonatack:
    ACK 451ba9a
  Zero-1729:
    crACK 451ba9a
  vasild:
    ACK 451ba9a

Tree-SHA512: b83fc509f5dd820976596e1ae9fb69a22ada567e0e0ac88da5fc5e940a46d8894b40cc70c3eff2cbdabd4da5ec913f0d18c1632fc906f210b308855868410699
@hsdredgun
Copy link

Concept NACK
As a small node operator running LND for Lightning Network, this change is catastrophic.
L1 Fee Market Crisis:
Bitcoin is peer-to-peer electronic cash. By allowing 4MB OP_RETURN outputs, we're letting JPEGs and arbitrary data compete directly with legitimate payments for block space. When fees spike from data storage, Lightning operators get crushed:

Channel opens become unaffordable
Force-closes miss deadlines
Justice transactions can't confirm in time
Small routing nodes shut down

We're already fighting Ordinals spam via witness data. Now you're adding another massive data vector?
This Kills Small Node Operators:
I run Bitcoin on modest hardware. Many operators in developing countries can barely afford 2TB drives as is. You're forcing a choice: buy expensive storage every year to host strangers' JPEGs, or stop running a node.
This isn't what Bitcoin is for.
The 80-byte limit exists for a reason. We should be maintaining or reducing it, not removing it entirely. If anything, we learned from the witness discount mistake that removing data limits has consequences.
The Real Fix:
Don't open more floodgates. Fix the witness discount problem. Keep OP_RETURN at 80 bytes. Let Bitcoin be money, not a file hosting service.
Block space is for value transfer, not data storage.
Strong NACK from a small LND node operator.

@hodlinator
Copy link
Contributor

I hate spam too. Thanks @hsdredgun for running a node.

this change is catastrophic.

No. Data can already be encoded in witness data at a ~4x discount compared to OP_RETURN.

Fix the witness discount problem.

Not sure what you are referring to here, changes like #28408 lead to an endless cat & mouse game. Spammers can release new spam-encoding schemes faster than new node software can be released. Even if we had some kind of frequently updated dynamic filtering mechanism that was adopted by 99% of nodes, that would be fostering a culture of attempted censorship. That culture would be ripe for subversion through pressuring node runners to filter OFAC-blacklisted transactions. Bitcoin is for enemies - that's one of the major differentiators from fiat money.

Force-closes miss deadlines
Justice transactions can't confirm in time

Devs are working on making transaction fees more flexible through ephemeral anchors (https://bitcoinops.org/en/topics/ephemeral-anchors/) and TRUC-transactions (https://bitcoinops.org/en/topics/version-3-transaction-relay/), which will hopefully fix those issues.

Channel opens become unaffordable

If Bitcoin is to become widely used, onchain fees will rise regardless.

By allowing 4MB OP_RETURN outputs
...
Don't open more floodgates.

This PR changes the default value for how much of the 100KB transaction size limit is allowed to be consumed by OP_RETURN and still be relayed.

buy expensive storage every year to host strangers' JPEGs

If Bitcoin is to be successful, blocks will average around 4MB every 10 minutes. This PR does not worsen the rate at which one needs to buy storage in the long term. Unless I am mistaken, neither witness data nor OP_RETURNs are included in the UTXO-set, even on unpruned nodes, so increased usage of them actually decreases the overall disk space usage.

If JPEG-degens turn out to be the highest paying user segment, maybe humanity has failed Bitcoin? Others have posited that very long term data storage could be more valuable per byte than performing a transaction. I think there is something to that argument, but haven't seen a credible solution.

@earonesty
Copy link

earonesty commented Oct 8, 2025 via email

@Dorex45
Copy link

Dorex45 commented Oct 9, 2025

@earonesty
I don’t believe humanity has “failed” Bitcoin just because certain segments like JPEG-degens are experimenting and paying high fees. Bitcoin was never about dictating use cases; it was about open access, permissionless innovation, and monetary sovereignty. What we’re seeing is simply "market discovery on-chain.""
But here’s the real issue , Bitcoin’s base layer was never meant to host high-volume or high-frequency applications. It’s a settlement layer, and anything that tries to push it into handling all economic activity directly is fundamentally misunderstanding its purpose.This is where sidechains such as CoreDAO ,Stacks, and Rootstocks come in. CoreDAO’s Bitcoin-aligned architecture, built around Satoshi Plus consensus, shows that scalability doesn’t mean abandoning Bitcoin’s values. Instead, it extends them, enabling smart contracts, DeFi primitives, NFTs, and even those “JPEG” experiments, but without congesting Bitcoin’s main chain.

Rather than debating whether JPEG-degens are the “highest-paying users,” the real question should be:How can we preserve Bitcoin’s settlement integrity while expanding its utility through trust-minimized, Bitcoin-secured sidechains?

CoreDAO and other sidechain models prove that Bitcoin can scale horizontally , not by bloating the base layer or shrinking block size but by empowering a network of interoperable systems that feed back security and value to the root chain.If anything, humanity hasn’t failed Bitcoin. Bitcoin is simply maturing , evolving from a digital asset into a digital civilization, one that spans multiple layers and sidechains where innovation can thrive without compromising decentralization.

@earonesty
Copy link

earonesty commented Oct 9, 2025 via email

@Dorex45
Copy link

Dorex45 commented Oct 10, 2025

@earonesty

That’s a valid perspective, and I agree that decentralization and censorship resistance are core to Bitcoin. My point is that restricting block size alone doesn’t necessarily strengthen those properties it just limits access and scalability. Sidechains like CoreDAO aren’t “ecosystems of tokens,” but extensions that maintain Bitcoin’s security assumptions while enabling additional functionality off-chain. This separation keeps Bitcoin lean as a settlement layer while allowing innovation to scale around it in a trust-minimized way.

@bitcoin bitcoin deleted a comment from GrayHatGuy Oct 10, 2025
stickies-v added a commit to stickies-v/py-bitcoinkernel that referenced this pull request Nov 4, 2025
1857296c067b kernel: Fix bitcoin-chainstate for windows
b14455e3fcc5 kernel: Add Purpose section to header documentation
b6bc17b703dd kernel: Allowing reducing exports
b1ef48b20730 kernel: Add pure kernel bitcoin-chainstate
b8e4169e453a kernel: Add functions to get the block hash from a block
ea03b539a2fa kernel: Add block index utility functions to C header
10e8bc695713 kernel: Add function to read block undo data from disk to C header
49743bf8c133 kernel: Add functions to read block from disk to C header
11588ec6537c kernel: Add function for copying block data to C header
de24590872f8 kernel: Add functions for the block validation state to C header
dcba34ad8f86 kernel: Add validation interface to C header
527435ebcc73 kernel: Add interrupt function to C header
c6a3da91764a kernel: Add import blocks function to C header
f7d879349a61 kernel: Add chainstate load options for in-memory dbs in C header
9b0116f0adad kernel: Add options for reindexing in C header
4bbd99b03001 kernel: Add block validation to C header
8dbc8230f110 kernel: Add chainstate loading when instantiating a ChainstateManager
f1a9d6f4dfff kernel: Add chainstate manager option for setting worker threads
864008a1a71a kernel: Add chainstate manager object to C header
b160f13ed141 kernel: Add notifications context option to C header
d465a997f2e9 kernel: Add chain params context option to C header
e61538b88b32 kernel: Add kernel library context object
3963f4c9de73 kernel: Add logging to kernel library C header
f3acc94b4b7e kernel: Introduce initial kernel C header API
04c115dfde36 Merge bitcoin/bitcoin#33078: kernel: improve BlockChecked ownership semantics
bc797d2271ac Merge bitcoin/bitcoin#33154: test: use local `CBlockIndex` in block read hash mismatch check
d3c58a5be96d Merge bitcoin/bitcoin#33193: Release: Prepare "Translation string freeze" step
9cf7b3d90c76 Merge bitcoin/bitcoin#33211: test: modify logging_filesize_rate_limit params
f5f853d95254 Merge bitcoin/bitcoin#32878: index: fix wrong assert of current_tip == m_best_block_index
5dda364c4b19 test: modify logging_filesize_rate_limit params
0df2c3c42e8a qt: Update `src/qt/locale/bitcoin_en.xlf` translation source file
22e689587a7a Merge bitcoin/bitcoin#33209: cmake: Drop python dependency for translate
be356fc49be4 Merge bitcoin/bitcoin#32896: wallet, rpc: add v3 transaction creation and wallet support
3c4a109aa821 cmake: Drop python dependency for translate
f58de8749e94 Merge bitcoin/bitcoin#32345: ipc: Handle unclean shutdowns better
d31dc8f8189e Merge bitcoin/bitcoin#33200: cmake: Introduce translate.cmake script for translate target
05255d5d1ec1 cmake: Drop dependency on sed for translate target
d5054beca50f cmake: Introduce translate.cmake script for translate target
57e8f34fe206 Merge bitcoin/bitcoin#32977: wallet: Remove wallet version and several legacy related functions
97593c1fd3e6 Merge bitcoin/bitcoin#32975: assumevalid: log every script validation state change
5c8bf7b39e9b doc: add release notes for version 3 transactions
4ef8065a5e3d test: add truc wallet tests
5d932e14dbe4 test: extract `bulk_vout` from `bulk_tx` so it can be used by wallet tests
2cb473d9f215 rpc: Support version 3 transaction creation
4c20343b4d31 rpc: Add transaction min standard version parameter
c5a2d0801162 wallet: don't return utxos from multiple truc txs in AvailableCoins
da8748ad626f wallet: limit v3 tx weight in coin selection
85c54106156f wallet: mark unconfirmed v3 siblings as mempool conflicts
0804fc3cb110 wallet: throw error at conflicting tx versions in pre-selected inputs
cc155226fee1 wallet: set m_version in coin control to default value
2e9617664e70  wallet: don't include unconfirmed v3 txs with children in available coins
ec2676becdf4 wallet: unconfirmed ancestors and descendants are always truc
7b4a1350dfd6 Merge bitcoin/bitcoin#33183: validation: rename block script verification error from "mandatory" to "block"
c99f5c5e1b42 Merge bitcoin/bitcoin#33106: policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee
578b512bdd88 Merge bitcoin/bitcoin#33011: log: rate limiting followups
8405fdb06e8f Merge bitcoin/bitcoin#33169: interfaces, chain, refactor: Remove unused getTipLocator and incaccurate getActiveChainLocator
c0d91fc69c67 Add release note for #33050 and #33183 error string changes
e17b5da0d6d1 Merge bitcoin/bitcoin#33179: doc: update wallet build instruction
9b1a7c3e8dd7 Merge bitcoin/bitcoin#33116: refactor: Convert uint256 to Txid
b3f781a0ef4b contrib: adapt max reject string size in tracing demo
9a0463543218 scripted-diff: validation: rename mandatory errors into block errors
dbf8b0980b93 Merge bitcoin/bitcoin#33171: ci: Update `actions/checkout` version
d6887f0cec90 Merge bitcoin/bitcoin#33178: guix: increase maximum allowed (runtime) GCC to 7
2b00030af84e interfaces, chain, refactor: Remove inaccurate getActiveChainLocator
110a0f405cd6 interfaces, chain, refactor: Remove unused getTipLocator
dadf15f88cba Merge bitcoin/bitcoin#33050: net, validation: don't punish peers for consensus-invalid txs
cb173b8e939d test: use local `CBlockIndex` in block read hash mismatch test to avoid data race
73972d56176a Merge bitcoin/bitcoin#31296: wallet: Translate [default wallet] string in progress messages
67e186deb017 doc: update wallet build instruction
5c74a0b397cb config: add DEBUG_ONLY -logratelimit
9f3b017bcc06 test: logging_filesize_rate_limit improvements
350193e5e2ef test: don't leak log category mask across tests
05d7c22479bf test: add ReadDebugLogLines helper function
3d630c2544e1 log: make m_limiter a shared_ptr
ec484bd5ce43 Merge bitcoin/bitcoin#31453: util: detect and warn when using exFAT on MacOS
776a16337416 guix: increase maximum allowed (runtime) GCC to 7
ba84a25deec0 [doc] update mempool-replacements.md for incremental relay feerate change
273e600e65c2 Merge bitcoin/bitcoin#33021: test/refactor: revive test verifying that `GetCoinsCacheSizeState` switches from OK→LARGE→CRITICAL
18720bc5d5b4 [doc] release note for min feerate changes
6da5de58cabc [policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB
2e515d2897ea [prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit
457cfb61b532 [prep/util] help MockMempoolMinFee handle more precise feerates
3eab8b724044 [prep/test] replace magic number 1000 with respective feerate vars
5f2df0ef78be [miner] lower default -blockmintxfee to 1sat/kvB
d6213d6aa114 [doc] assert that default min relay feerate and incremental are the same
1fbee5d7b61b [test] explicitly check default -minrelaytxfee and -incrementalrelayfee
72dc18467dbf [test] RBF rule 4 for various incrementalrelayfee settings
85f498893f54 [test] check bypass of minrelay for various minrelaytxfee settings
e5f896bb1f05 [test] check miner doesn't select 0fee transactions
de0675f9de5f refactor: Move `transaction_identifier.h` to primitives
6f068f65de17 Remove implicit uint256 conversion and comparison
9c24cda72edb refactor: Convert remaining instances from uint256 to Txid
d2ecd6815d89 policy, refactor: Convert uint256 to Txid
f6c0d1d23128 mempool, refactor: Convert uint256 to Txid
aeb0f783305c refactor: Convert `mini_miner` from uint256 to Txid
326f24472487 refactor: Convert RPCs and `merkleblock` from uint256 to Txid
41642d43b3b2 Merge bitcoin/bitcoin#33162: test: fix scripts in `blockfilter_basic_test`
f83c01d8824e ci: Update `actions/checkout` version
a27430e259df Merge bitcoin/bitcoin#32473: Introduce per-txin sighash midstate cache for legacy/p2sh/segwitv0 scripts
34b366fa2c91 Merge bitcoin/bitcoin#33155: contrib: drop `bitcoin-util` exception from FORTIFY check
ca64b71ed5ec test: fix scripts in `blockfilter_basic_test`
daca51bf80e7 Merge bitcoin/bitcoin#32750: refactor: CFeeRate encapsulates FeeFrac internally
fab2980bdc55 assumevalid: log every script validation state change
e8f9c37a3b4c log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions
3c7cae49b692 log: change LogLimitStats to struct LogRateLimiter::Stats
876dbdfb4702 tests: drop expect_disconnect behaviour for tx relay
b29ae9efdfee validation: only check input scripts once
266dd0e10d08 net_processing: drop MaybePunishNodeForTx
db3228042b22 util: detect and warn when using exFAT on macOS
f679bad6052a Merge bitcoin/bitcoin#33105: validation: detect witness stripping without re-running Script checks
63d604af05f8 Merge bitcoin/bitcoin#33152: Release: Prepare "Open Transifex translations for v30.0" step
27aefac42505 validation: detect witness stripping without re-running Script checks
2907b58834ab policy: introduce a helper to detect whether a transaction spends Segwit outputs
4bff4ce561b0 contrib: drop bitcoin-util exception from FORTIFY check
26e9db2df076 Merge bitcoin/bitcoin#31886: cli: return local services in -netinfo
2bb06bcaf284 Merge bitcoin/bitcoin#31679: cmake: Install internal binaries to <prefix>/libexec/
6a2bb0fd8359 Merge bitcoin/bitcoin#33151: subtree: update crc32c subtree
656e16aa5e65 qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file
a0eaa4492548 Fix typos
b43b8be782b8 Merge bitcoin/bitcoin#33125: ci: Use mlc `v1` and fix typos
8d4aaaec49c0 Update Transifex slug for 30.x
8ef8dd6871dd Update crc32c subtree to latest upstream master
9a5d29711afc Squashed 'src/crc32c/' changes from b60d2b7334..efb8ea04e4
f28a94b40eea ci: update shellcheck to v0.11.0
e46af3044160 ci: update mlc to v1
7d60c0eb69bf fix typo
49f2f3c89fac doc: fix typos
d818340e7e27 test: Rename shuffled_indeces to shuffled_indices
96f8673b879e doc: fix typos
d767503b6a26 Merge bitcoin/bitcoin#33039: refactor,test: follow-ups to multi-byte block obfuscation
cf15d45192e0 Merge bitcoin/bitcoin#33044: contrib: drop use of `PermissionsStartOnly` & `Group=`
83950275edda qa: unit test sighash caching
b221aa80a081 qa: simple differential fuzzing for sighash with/without caching
92af9f74d74e script: (optimization) introduce sighash midstate caching
8f3ddb0bcceb script: (refactor) prepare for introducing sighash midstate cache
9014d4016ad9 tests: add sighash caching tests to feature_taproot
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
49b3d3a92a72 Clean up `FindTxForGetData`
9617a42fdb6f Merge bitcoin/bitcoin#32581: allocators: Apply manual ASan poisoning to `PoolResource`
33e7fc51f43d Merge bitcoin/bitcoin#33133: rpc: fix getpeerinfo ping duration unit docs
721a051320f2 test: add coverage for -netinfo header and local services
f7d2db28e902 netinfo: return shortened services, if peers list requested
4489ab526add netinfo: return local services in the default report
1252eeb997df rpc: fix getpeerinfo ping duration unit docs
eb073209db9e qa: test witness stripping in p2p_segwit
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
2581258ec200 ipc: Handle bitcoin-wallet disconnections
216099591632 ipc: Add Ctrl-C handler for spawned subprocesses
0c28068ceb7b doc: Improve IPC interface comments
7f65aac78b95 ipc: Avoid waiting for clients to disconnect when shutting down
6eb09fd6141f test: Add unit test coverage for Init and Shutdown code
9a9fb19536fa ipc: Use EventLoopRef instead of addClient/removeClient
5c45bc989bfa Merge commit 'e886c65b6b37aaaf5d22ca68bc14e55d8ec78212' into pr/ipc-stop-base
e886c65b6b37 Squashed 'src/ipc/libmultiprocess/' changes from 27c7e8e5a581..b4120d34bad2
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
3aef38f44b76 test: exercise index reorg assertion failure
acf50233cdfb index: fix wrong assert of current_tip == m_best_block_index
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
1d9f1cb4bd6b kernel: improve BlockChecked ownership semantics
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
554befd8738e test: revive `getcoinscachesizestate`
64ed0fa6b7a2 refactor: modernize `LargeCoinsCacheThreshold`
1b40dc02a6a2 refactor: extract `LargeCoinsCacheThreshold` from `GetCoinsCacheSizeState`
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
8319a134684d log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW
5f70bc80df06 log: remove const qualifier from arguments in LogPrintFormatInternal
b8e92fb3d413 log: avoid double hashing in SourceLocationHasher
616bc22f1311 test: remove noexcept(false) comment in ~DebugLogHelper
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`
9ba1fff29e47 kernel: refactor: ConnectTip to pass block pointer by value
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`
60d1042b9a4d wallet: Remove unused `WalletFeature` enums
66de58208a71 wallet: Remove `CWallet::nWalletVersion` and related functions
3b188b8b3dae Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite
7cda3d0f5bdc wallet: Remove `IsFeatureSupported()` and `CanSupportFeature()`
ba0158522981 wallet: `MigrateToDescriptor` no longer calls `CanSupportFeature`
63acee279756 wallet: Remove `GetClosestWalletFeature()`
e27da3150b48 wallet: Remove `GetVersion()`
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
86e3a0a8cbd3 refactor: standardize obfuscation memory alignment
13f00345c061 refactor: write `Obfuscation` object when new key is generated in dbwrapper
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
e5b1b7c5577e refactor: rename `OBFUSCATION_KEY_KEY`
298bf9510578 refactor: simplify `Obfuscation::HexKey`
2dea04542541 test: make `obfuscation_serialize` more thorough
a17d8202c36a test: merge xor_roundtrip_random_chunks and xor_bytes_reference
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
7566b40bd230 Merge bitcoin/bitcoin#32961: fix spelling in tor.md docs
faa3171ff22f ci: Use optimized Debug build type in test-each-commit
fa21c3401e15 ci: [doc] reword debug log message
84ef5524d5ab fix spelling in tor.md docs
12a6959892cb cmake: Drop no longer necessary "cmakeMinimumRequired" object
6a13a6106e3c Merge bitcoin/bitcoin#32937: Enable `-Werror=dev` in CI & Guix
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
23e15d40b96a Merge bitcoin/bitcoin#32631: refactor: Convert GenTxid to `std::variant`
8ffbd7b77860 Merge bitcoin/bitcoin#32940: cmake: Use newer signature of `qt6_add_lrelease` when available
80ce5137663d Merge bitcoin/bitcoin#32933: log: Properly log warnings with warn loglevel in addrdb
c18bf0bd9be6 refactor: cleanup index logging
8f766f39df3e ci: enable -Werror=dev
7b420ca8341a guix: configure with -Werror=dev
44097ddb1913 cmake: enable -Werror=dev in dev-mode preset
12fb00fd4228 Merge bitcoin/bitcoin#32927: fuzz: Add missing calls to `SetMockTime` for determinism
f5647c6c5ae8 depends: fix libevent _WIN32_WINNT usage
3c1418666bfa Merge bitcoin/bitcoin#32930: Resolve guix non-determinism with emplace_back instead of push_back
bad998b7c040 Merge bitcoin/bitcoin#32921: test: less ambiguous error if bitcoind is missing
7f28e8032987 Merge bitcoin/bitcoin#32758: wallet: remove dead code in legacy wallet migration
5ef0d4897be4 Merge bitcoin/bitcoin#30605: Cluster linearization: separate tests from tests-of-tests
f43571010e38 Resolve guix non-determinism with emplace_back instead of push_back
44f3bae300dc depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE`
94931656b52f cmake: Use newer signature of `qt6_add_lrelease` when available
fad191ff48b1 ci: Avoid cd into build dir
b80ead8a7182 Merge bitcoin/bitcoin#32890: bench: Avoid tmp files in pwd
c4f90900b55f Merge bitcoin/bitcoin#32932: test: Add missing convert_to_json_for_cli
fa894b0f3e13 log: Properly log warnings with warn loglevel in addrdb
83ae7802fe14 Merge bitcoin/bitcoin#32881: test: Turn rpcauth.py test into functional test
fa0528479d5e test: Add missing convert_to_json_for_cli
a40e9536588c Merge bitcoin/bitcoin#30479: validation: Add eligible ancestors of reconsidered block to setBlockIndexCandidates
1ca62edd85b1 Merge bitcoin/bitcoin#32580: wallet, test: best block locator matches scan state follow-ups
2cad7226c2d0 Merge bitcoin/bitcoin#32799: mempool: use `FeeFrac` for ancestor/descendant score comparators
2d59977601ea Merge bitcoin/bitcoin#32604: log: Mitigate disk filling attacks by rate limiting LogPrintf, LogInfo, LogWarning, LogError
4c772cbd83e5 doc: add release notes for new rate limiting logging behavior
d541409a64c6 log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel
a6a35cc0c23d log: use std::source_location in place of __func__, __FILE__, __LINE__
afb9e39ec555 log: introduce LogRateLimiter, LogLimitStats, Status
df7972a6cfd9 test: Mark ~DebugLogHelper as noexcept(false)
fa8862723c14 fuzz: CheckGlobals in init
fa26bfde988b test: Avoid resetting mocktime in testing setup
fa6b45fa8ec8 Add SetMockTime for time_point types
a60f863d3e27 scripted-diff: Replace GenTxidVariant with GenTxid
c8ba19959863 Remove old GenTxid class
072a198ea4bc Convert remaining instances of GenTxid to GenTxidVariant
1b528391c794 Convert `txrequest` to GenTxidVariant
bde4579b0780 Convert `txdownloadman_impl` to GenTxidVariant
c876a892ec0b Replace GenTxid with Txid/Wtxid overloads in `txmempool`
de858ce2bea8 move-only: make GetInfo a private CTxMemPool member
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
eee473d9f301 Convert `CompareInvMempoolOrder` to GenTxidVariant
b7e9dc8e468b Merge bitcoin/bitcoin#32884: rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF`
fa4d68cf97b6 Turn rpcauth.py test into functional test
83bb41455715 test: less ambiguous error if bitcoind is missing
150b5c99ca11 wallet: replace `reload_wallet` with inline functionality
927055e42afb Merge bitcoin/bitcoin#32893: doc: fix `BlockConnected` incorrect comment
a8bff38236ac Merge bitcoin/bitcoin#32862: rpc: use CScheduler for relocking wallet and remove RPCTimer
21b42f3c5569 Merge bitcoin/bitcoin#32660: rpc: Use type-safe exception to pass RPC help
528f79f010d1 Merge bitcoin/bitcoin#32835: test: fix feature_init.py intermittencies
fc543f94a9c3 Merge bitcoin/bitcoin#32385: test: refactor out same-txid-diff-wtxid tx to reuse in other tests
09add84fc5ad Merge bitcoin/bitcoin#32618: wallet: Remove ISMINE_WATCHONLY and watchonly from RPCs
87ab69155d94 Merge bitcoin/bitcoin#31553: cluster mempool: add TxGraph reorg functionality
4e69aa5701a2 doc: fix `BlockConnected` incorrect comment
d33c111448ac Merge bitcoin/bitcoin#32829: threading: use correct mutex name in reverse_lock fatal error messages
de4eef52d123 threading: use correct mutex name in reverse_lock fatal error messages
fa2fbaa4a29f bench: Avoid tmp files in pwd
d3b8a54a8120 Refactor CFeeRate to use FeeFrac internally
6d19815cd440 rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF` for code clarity
f49840dd902c doc: Fix typo in files.md
4207d9bf823b test: feature_init, ensure indexes are synced prior to perturbing files
e3f416dbf763 Merge bitcoin/bitcoin#32463: test: fix an incorrect `feature_fee_estimation.py` subtest
ea4285775e61 Merge bitcoin/bitcoin#29307: util: explicitly close all AutoFiles that have been written
f5cf0b1ccc8f bitcoin wrapper: improve help output
51ccc71b1bf9 Merge bitcoin/bitcoin#32858: doc: Add workaround for vcpkg issue with paths with embedded spaces
fcfd3db563e8 remove RPCTimerInterface and RPCRunLater
8a1765795fd3 use WalletContext scheduler for walletpassphrase callback
927e9b220f17 Merge bitcoin/bitcoin#32716: depends: Override host compilers for FreeBSD and OpenBSD
c7fe8abb5f38 Merge bitcoin/bitcoin#31233: cmake: Improve Python robustness and test usability
625194944333 Merge bitcoin/bitcoin#32290: test: allow all functional tests to be run or skipped with --usecli
0f86da382d3f wallet: remove dead code in legacy wallet migration
49d5f1f2c6d2 Merge bitcoin/bitcoin#32850: test: check P2SH sigop count for coinbase tx
abd07cf7332e test: feature_init, only init what's needed per perturbation/deletion round
192743235493 Merge bitcoin/bitcoin#32859: functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
68ca13e1f96a Merge bitcoin/bitcoin#32823: test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only()
35cae56a9292 Merge bitcoin/bitcoin#31423: wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet
1632fc104be8 txgraph: Track multiple potential would-be clusters in Trim (improvement)
4608df37e02a txgraph: add Trim benchmark (benchmark)
9c436ff01cff txgraph: add fuzz test scenario that avoids cycles inside Trim() (tests)
938e86f8fecd txgraph: add unit test for TxGraph::Trim (tests)
a04e205ab03e txgraph: Add ability to trim oversized clusters (feature)
eabcd0eb6fca txgraph: remove unnecessary m_group_oversized (simplification)
19b14e61eae7 txgraph: Permit transactions that exceed cluster size limit (feature)
c4287b9b71c6 txgraph: Add ability to configure maximum cluster size/weight (feature)
f0524cda3995 functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
0a1af4418ed2 doc: Add workaround for vcpkg issue with paths with embedded spaces
a92e8b10a5fb Merge bitcoin/bitcoin#32564: miniscript, refactor: Make `operator""_mst` `consteval` (re-take)
bf75c9964fb2 Merge bitcoin/bitcoin#32828: build, docs: Fix Boost-related issues on NetBSD
7fa9b58bd907 Merge bitcoin/bitcoin#32841: feature_taproot: sample tx version border values more
1b5c545e82fe wallet, test: best block locator matches scan state follow-ups
fa3359289883 Merge bitcoin/bitcoin#32723: Refactor: Redefine CTransaction equality to include witness data
ce000c8ee02a Merge bitcoin/bitcoin#32219: test: enabling wallet migration functional test on windows
f33154c464b3 Merge bitcoin/bitcoin#32432: wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them
fa9b1e354444 Merge bitcoin/bitcoin#32846: doc: clarify that the "-j N" goes after the "--build build" part
b1a8ac07e91d doc: Release note for removed watchonly parameters and results
15710869e19e wallet: Remove ISMINE_WATCH_ONLY
4439bf4b41a6 wallet, spend: Remove fWatchOnly from CCoinControl
1337c72198a7 wallet, rpc: Remove watchonly from RPCs
e81d95d43574 wallet: Remove watchonly balances
d20dc9c6aae0 wallet: Wallets without private keys cannot grind R
9991f49c38c0 test: Watchonly wallets should estimate larger size
d6aaffcb11ad test: check P2SH sigop count for coinbase tx
b1821d8dd39f Merge bitcoin/bitcoin#27286: wallet: Keep track of the wallet's own transaction outputs in memory
0e9f409db3b7 doc: clarify that the "-j N" goes after the "--build build" part
67dc7523f3e1 cmake, test: Disable tests instead of ignoring them
bb9157db5d39 cmake, refactor: Switch to `Python3::Interpreter` imported target
ed7a841f82f9 Merge bitcoin/bitcoin#32816: contrib: correct variable name in p2p_monitor.py
2ae5154dd860 Merge bitcoin/bitcoin#32842: doc: add `/spenttxouts` to REST-interface.md
243553d59071 refactor: replace get_iter_from_wtxid with GetIter(const Wtxid&)
fcf92fd640ea refactor: make CTxMemPool::GetIter strongly typed
23a00fcf571f Merge bitcoin/bitcoin#32783: doc: Add fetching single PRs from upstream to productivity.md
dd99cedc0bfe doc: add `/spenttxouts` to REST-interface.md
4be81e9746e9 feature_taproot: sample tx version border values more
6e5b67a370bb Merge bitcoin/bitcoin#32697: test: Turn util/test_runner into functional test
fb2c16cf7bfb Merge bitcoin/bitcoin#32826: p2p: add more bad ports
f5f3e1f26328 Merge bitcoin/bitcoin#32646: p2p: Add witness mutation check inside FillBlock
a763497b1d66 Merge bitcoin/bitcoin#32834: test: Use msg_generic in p2p_ping.py
fa3f100010f1 test: Use msg_generic in p2p_ping.py
33480573cbd8 Merge bitcoin/bitcoin#32833: test: Add `msgtype` to `msg_generic` slots
9501738e1cbd Merge bitcoin/bitcoin#32825: rest: rename `strURIPart` to `uri_part`
5a5ddbd78922 build: Add workaround for NetBSD bug in `Boost::headers` target
6967e8e8abbc add more bad p2p ports
7dc43ea503a2 test: Add msgtype to msg_generic slots
4eb3cee919ed doc: Update NetBSD Build Guide
856f4235b1ae scripted-diff: rest: rename `strURIPart` -> `uri_part`
b3bb4031ab32 Merge bitcoin/bitcoin#32540: rest: fetch spent transaction outputs by blockhash
3086c21df4a2 Merge bitcoin/bitcoin#32243: test: added fuzz coverage for consensus/merkle.cpp
319ff58bbd58 Merge bitcoin/bitcoin#32638: blocks: force hash validations on disk read
ec004cdb86e6 test: Use rehash() in outbound eviction block-relay
26598ed21ea7 test: Clarify roles in outbound eviction comments
689318ccd9c2 Merge bitcoin/bitcoin#32667: build: Find Boost in config mode
4a3475a43e80 Merge bitcoin/bitcoin#32819: Add release note for #32530
558f0880a8f3 Add release note for #32530
c43cc48aaaaa Merge bitcoin/bitcoin#32530: node: cap `-maxmempool` and `-dbcache` values for 32-bit
4145a9463a58 Merge bitcoin/bitcoin#32731: depends: Build `qt` package for FreeBSD hosts
14653b869b91 build: Find Boost in config mode
67ea4b9994e6 Merge bitcoin/bitcoin#32814: cmake: Explicitly specify `Boost_ROOT` for Homebrew's package
5170ec1ae35d Merge bitcoin/bitcoin#32665: depends: Bump boost to 1.88.0 and use new CMake buildsystem
8fafb81320dd Merge bitcoin/bitcoin#32805: cmake: Use `HINTS` instead of `PATHS` in `find_*` commands
6bb38bf37fd8 Update p2p_monitor.py
9b75cfda4d62 test: retain the intended behavior of `feature_fee_estimation.py` nodes
5c1236f04a24 test: fix incorrect subtest in `feature_fee_estimation.py`
e5f9218b6afb Merge bitcoin/bitcoin#32742: test: fix catchup loop in outbound eviction functional test
11d28f21bb8f Implement GenTxid as a variant
215e5999e207 wallet: Remove unused CachedTxGet{Available,Immature}Credit
49675de035e7 wallet: Have GetDebit use the wallet's TXO set
17d453cb3a6f wallet: Recompute wallet TXOs after descriptor migration
764016eb2259 wallet: Retrieve TXO directly in FetchSelectedInputs
c1801b78f1c1 wallet: Use wallet's TXO set in AvailableCoins
dde7cbe105ba wallet: Change balance calculation to use m_txos
96e7a89c5e0b wallet: Recalculate the wallet's txos after any imports
ae888c38d080 wallet: Exit IsTrustedTx early if wtx is already in trusted_parents
ae0876ec4273 wallet: Keep track of transaction outputs owned by the wallet
0f269bc48c39 walletdb: Load Txs last
5cc32ee2a7ad test: Test for balance update due to untracked output becoming spendable
8222341d4f9c wallet: MarkDirty after AddWalletDescriptor
e02f2d331ce6 bench: Have AvailableCoins benchmark include a lot of unrelated utxos
f27898c8bfe3 Merge bitcoin/bitcoin#32721: wallet, rpc: Remove deprecated balances from getwalletinfo and getunconfirmedbalance
8578fabb95fa Merge bitcoin/bitcoin#32597: wallet: Always set descriptor cache upgraded flag for new wallets
941b8f54c0d3 ci: run get_previous_releases as part of test cross win job
5e2182140bcd test: increment mocked time for migrating wallet backups
5174565802f4 ci: disable feature_unsupported_utxo_db functional test
3dc90d69a64f test: remove mempool.dat before copying
67a6b20d5030 test: add windows support to get previous releases script
01f908195589 Merge bitcoin/bitcoin#32768: wallet: Remove `CWalletTx::fTimeReceivedIsTxTime`
c1d8a542b46c Merge bitcoin/bitcoin#32727: doc: add release notes for #32425
1a1b478ca31b scripted-diff: rename tarball to archive
4f06dc848460 test: remove building from source from get prev releases script
45b1d3975766 doc: Add fetching single PRs from upstream
8800b5acc1ef cmake: Explicitly specify `Boost_ROOT` for Homebrew's package
b9a2e8ee965d doc: add release notes for https://github.com/bitcoin/bitcoin/pull/32425
aac0b6dd79b0 test: test sendall and send do anti-fee-sniping
20802c7b65f4 wallet, rpc: add anti-fee-sniping to `send` and `sendall`
6c2538d5bfea depends: Bump boost to 1.88.0 and use new CMake buildsystem
7d5a6d17398a Merge bitcoin/bitcoin#32798: build: add root dir to CMAKE_PREFIX_PATH in toolchain
a34fb9ad6c6c miniscript: Make `operator""_mst` `consteval`
14052162b19a Revert "miniscript: make operator_mst consteval"
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
ead44687483e cmake: Use `HINTS` instead of `PATHS` in `find_*` commands
ad654a4807cd Merge bitcoin/bitcoin#32767: ci: Allow running CI in worktrees
67e6746dc87a Merge bitcoin/bitcoin#32780: lsan: add more Qt suppressions
e27a94596f2a build: add root dir to CMAKE_PREFIX_PATH
173394d9511e depends: Build `qt` package for FreeBSD hosts
922adf66ac74 mempool: use `FeeFrac` for calculating regular score
3322b3a05954 mempool: use `FeeFrac` for calculating ancestor score
ac9c113bd2a2 mempool: use `FeeFrac` for calculating descendant score
e95bfc1d537e Merge bitcoin/bitcoin#32797: doc: archive 28.2 release notes
666016e56b28 ci: use --usecli in one of the CI jobs
7ea248a02099 test: Disable several (sub)tests with cli
f420b6356b6f test: skip subtests that check for wrong types with cli
6530d0015b95 test: add function to convert to json for height_or_hash params
54d28722baea test: Don't send empty named args with cli
cca422060e96 test: convert tuple to json for cli
af34e980866e test: make rpc_psbt.py usable with --usecli
8f8ce9e1740d test: rename .rpc to ._rpc and remove unnecessary uses
5b0888598632 test: enable functional tests with large rpc args for cli
7d5352ac7373 test: use -stdin for large rpc commands
6c364e0c10de test: Enable various tests for usage with cli
907842363c64 doc: archive 28.2 release notes
c5849663baa9 Merge bitcoin/bitcoin#32771: contrib: tracing: Fix read of `pmsg_type` in p2p_monitor.py
8a36a471e652 Merge bitcoin/bitcoin#32781: refactor: modernize deprecated ipc headers
ed060e01e756 Merge bitcoin/bitcoin#32725: test: round difficulty and networkhashps
daf393b3f15d Merge bitcoin/bitcoin#32642: test: update BIP340 test vectors and implementation (variable-length messages)
482d2553764e Merge bitcoin/bitcoin#32736: wallet: Correct dir iteration error handling
c40dbbbf7707 test: Move `script_assets_tests` into its own suite
74b7e9c7dbf7 refactor: modernize deprecated ipc headers
154b98a7aaae Merge bitcoin/bitcoin#32772: fuzz: wallet: remove `FundTx` from `FuzzedWallet`
fa183045a1ea Merge bitcoin/bitcoin#32765: test: Fix list index out of range error in feature_bip68_sequence.py
5be31b20e54e lsan: add more Qt suppressions
e18322eff274 Merge bitcoin/bitcoin#32774: doc: Explain how to fetch commits directly
b86141925416 Merge bitcoin/bitcoin#32777: doc: fix Transifex 404s
79afe6b7c092 Merge bitcoin/bitcoin#32776: doc: taproot became always active in v24.0 (doc/bips.md)
53a996f12266 doc: fix transifex 404s
8ee8a951c205 doc: taproot became always active in v24.0
fa2163159511 test: Use self.log
fa346f7797ae test: Move error string into exception
fa1986181f24 test: Remove useless catch-throw
fa94fd53c996 doc: Explain how to fetch commits directly
9a7eece5a4a1 Merge bitcoin/bitcoin#31981: Add checkBlock() to Mining interface
8cc9845b8ddf wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them
3473986fe10e contrib: tracing: Correctly read msg type in p2p_monitor.py
cd1ae1b4dfdb fuzz: wallet: remove FundTx from FuzzedWallet
fa68dcb207c3 ci: Add missing errexit to lint CI install
fa535a6de7a0 ci: Allow running CI in worktrees
faf6a0459749 ci: Clean UID/GID mismatch
9eb2c82e7c91 walletdb: Remove unused upgraded_txs
c66803370988 wallet: Remove unused fTimeReceivedIsTxTime
5e6dbfd14ea9 Merge bitcoin/bitcoin#32465: thread-safety: fix annotations with REVERSE_LOCK
e285e691b7a3 test: Fix list index out of range error in feature_bip68_sequence.py
1be688f57515 Merge bitcoin/bitcoin#32682: wallet: have external signer use PSBT error code EXTERNAL_SIGNER_NOT_FOUND
a201a99f8cf5 thread-safety: fix annotations with REVERSE_LOCK
26747d9f3e3f Merge bitcoin/bitcoin#32760: depends: capnp 1.2.0
c10e382d2a3b flatfile: check whether the file has been closed successfully
4bb5dd78ea4b util: check that a file has been closed before ~AutoFile() is called
8bb34f07df9a Explicitly close all AutoFiles that have been written
a69c4098b273 rpc: take ownership of the file by WriteUTXOSnapshot()
c7eaac326ac2 depends: capnp 1.2.0
afaaba69eddd test: refactor out same-txid-diff-wtxid tx to reuse in other tests
084eee029199 Merge bitcoin/bitcoin#32743: refactor: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()`
c48846ec4169 doc: add release notes for #32540
d7fca5c171f4 clusterlin: add big comment explaning the relation between tests
b64e61d2de65 clusterlin: abstract try-permutations into ExhaustiveLinearize function
1fa55a64ed18 clusterlin tests: verify that chunks are minimal
da23ecef29b7 clusterlin tests: support non-empty ReadTopologicalSubset()
94f3e17c33e6 clusterlin tests: compare with fuzz-provided linearizations
5f92ebee0d24 clusterlin tests: compare with fuzz-provided topological sets
6e37824ac390 clusterlin tests: optimize clusterlin_simple_linearize
98c1c88b6f8d clusterlin tests: separate testing of SimpleLinearize and Linearize
10e90f7aef9c clusterlin tests: make SimpleCandidateFinder always find connected
a38c38951e10 clusterlin tests: separate testing of Search- and SimpleCandidateFinder
77a432ee704b clusterlin tests: count SimpleCandidateFinder iterations better
a18e57232867 test: more template verification tests
10c908808fb8 test: move gbt proposal mode tests to new file
94959b8deedc Add checkBlock to Mining interface
6077157531c1 ipc: drop BlockValidationState special handling
74690f4ed82b validation: refactor TestBlockValidity
2def85847318 Merge bitcoin/bitcoin#32481: wallet, refactor: Remove Legacy wallet unused warnings and errors
287cd04a32df Merge bitcoin/bitcoin#32594: wallet, rpc: Return normalized descriptor in parent_descs
fd74d609bed9 Merge bitcoin/bitcoin#32620: wallet: Fix wallet interface detection of encrypted wallets
6ecb9fc65f9a chore: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()`
65b26507b84a Merge bitcoin/bitcoin#32746: test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py
3e8168442692 Merge bitcoin/bitcoin#32739: tsan: remove note about dropping Qt wildcards
b8eb17792e0c Merge bitcoin/bitcoin#32175: fuzz: doc: add info about `afl-system-config` for macOS
206bc05e62c6 test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py
272cd09b796a log: Use warning level while scanning wallet dir
17776443675d qa, wallet: Verify warning when failing to scan
893e51ffeb05 wallet: Correct dir iteration error handling
52e6e93c3f60 Merge bitcoin/bitcoin#32693: depends: fix cmake compatibility error for freetype
fa2f1c55b7da move-only util data to test/functional/data/util
faa18bf287fc test: Turn util/test_runner into functional test
fa955154c773 test: Add missing skip_if_no_bitcoin_tx
9341b5333ad5 blockstorage: make block read hash checks explicit
2371b9f4ee0b test/bench: verify hash in `ComputeFilter` reads
5d235d50d6dd net: assert block hash in `ProcessGetBlockData` and `ProcessMessage`
5db0a4a2db20 tsan: remove note about dropping Qt wildcards
d91c718a686a Merge bitcoin/bitcoin#32717: doc: Update Qt 6 packages on FreeBSD
fac9db6eb0c6 test: Add missing tx util to Binaries
fa91835ec6ad test: Use lowercase env var as attribute name
fac49094cdb1 test: Remove duplicate ConfigParser
9dfc61d95f00 test: detect no external signer connected
dd8447f70faf test: fix catchup loop in outbound eviction functional test
19765dca197a Merge bitcoin/bitcoin#32694: index: move disk read lookups to base class
8cc3ac6c2328 validation: Don't use IsValid() to filter for invalid blocks
86d98b94e546 test: verify that ancestors of a reconsidered block can become the chain tip
3c39a55e64be validation: Add ancestors of reconsiderblock to setBlockIndexCandidates
1df96f59316c doc: Update Qt 6 packages on FreeBSD
d7c37906e7b1 build: patch cmake min version on freetype
fa946520d229 refactor: Use structured binding for-loop
eeeec1579ec5 rpc: Use type-safe exception to pass RPC help
5757de4ddd37 Merge bitcoin/bitcoin#32673: clang-tidy: Apply modernize-deprecated-headers
1473f69924bc Merge bitcoin/bitcoin#32421: test: refactor: overhaul (w)txid determination for `CTransaction` objects
7c0cfce20df9 Merge bitcoin/bitcoin#31405: validation: stricter internal handling of invalid blocks
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
851f540d0e03 Merge bitcoin/bitcoin#32703: test: Explain how to reproduce zmq:: upstream race
5af5e9791dc9 Merge bitcoin/bitcoin#32690: depends: fix multiprocess build on OpenBSD (apply capnp patch, correct SHA256SUM command)
fed41b75fbfa Merge bitcoin/bitcoin#32431: deps: Bump lief to 0.16.6
e017ef3c7eb7 init: make `-blockmaxweight` startup option debug-only
578ea3eedb28 test: round difficulty and networkhashps
c8abd972818f Merge bitcoin/bitcoin#32719: doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
029ba1a21d57 index: remove CBlockIndex access from CustomAppend()
91b7ab6c6926 refactor: index, simplify CopyHeightIndexToHashIndex to process single block
4f56c9145a60 refactor: contrib: Move FORTIFY check to BASE_ELF
f6d25e8a2dd3 contrib: Re-enable FORTIFY check for RISCV
765922d8022d deps: bump lief to 0.16.6
4b8ac9eacd1b Merge bitcoin/bitcoin#32680: ci: Rewrite test-each-commit as py script
4ef625301767 test: avoid unneeded (w)txid hex -> integer conversions
472f3770aec8 scripted-diff: test: rename CTransaction `.getwtxid()` -> `wtxid_hex` for consistency
81af4334e8f9 test: rename CTransaction `.sha256` -> `.txid_int` for consistency
ce8392423712 test: rename CTransaction `.rehash()`/`.hash` -> `.txid_hex` for consistency
6efbd1e1dcdf refactor: CTransaction equality should consider witness data
cbf9b2dab1d8 mempool: codify existing assumption about duplicate txids during removal
c3fe85e2d6dd wallet, rpc, test: Remove deprecated getunconfirmedbalance
0ec255139be3 wallet, rpc: Remove deprecated balances from getwalletinfo
e9331cd6ab2c wallet: IsEquivalentTo should strip witness data in addition to scriptsigs
157bbd0a07c0 Merge bitcoin/bitcoin#32425: config: allow setting -proxy per network
ebec7bf3895c Merge bitcoin/bitcoin#32572: doc: Remove stale sections in dev notes
ce90f0c99fde rpc, wallet, refactor: Remove non-descriptor errors
573bcd75d7b6 wallet, refactor: Remove unused SetupGeneration
5431f2dc2159 wallet, refactor: Remove Legacy warnings and errors
6f1392cc42cd indexes, refactor: Remove remaining CBlockIndex* uses in index Rewind methods
0a248708dc9d indexes, refactor: Stop requiring CBlockIndex type to call IsBIP30Unspendable
011a8c5f0168 Merge bitcoin/bitcoin#32696: doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
fe39050a66c7 Merge bitcoin/bitcoin#32678: guix: warn and abort when SOURCE_DATE_EPOCH is set
692fe280c232 Merge bitcoin/bitcoin#32713: doc: fuzz: fix AFL++ link
28299ce77636 p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED
bac9ee483066 p2p: Add witness mutation check inside FillBlock
4f10a57671c1 depends: Override host compilers for FreeBSD and OpenBSD
239fc4d62e73 doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project"
c1d4253d316e Merge bitcoin/bitcoin#32711: doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
89526deddf87 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
a39b7071cfb4 doc: fuzz: fix AFL++ link
dff208bd5a14 Merge bitcoin/bitcoin#32708: rpc, doc: update `listdescriptors` RCP help
d978a43d054d Merge bitcoin/bitcoin#32408: tests: Expand HTTP coverage to assert libevent behavior
e9cdaefb0a80 test: introduce and use CTransaction `.wtxid_int` property
9b3dce24a333 test: remove bare CTransaction `.rehash()`/`.calc_sha256()` calls
a2724e3ea392 test: remove txid caching in CTransaction class
fa0b766f43df test: Remove intermittent and presumed fixed tsan race suppressions
f3bbc746647d Merge bitcoin/bitcoin#32406: policy: uncap datacarrier by default
b44514b87633 rpc, doc: update `listdescriptors` RCP help
fa4b659dcd03 test: Explain how to reproduce zmq:: upstream race
d4e212e8a69e rest: fetch spent transaction outputs by blockhash
32d4e92b9ac8 doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md`
e2174378aa8a Merge bitcoin/bitcoin#32539: init: Configure reachable networks before we start the RPC server
2053c4368472 Merge bitcoin/bitcoin#32675: test: wallet: cover wallet passphrase with a null char
331a25cb1663 test: indexes, avoid creating threads when sync runs synchronously
95969bc58ae0 test: added fuzz coverage to consensus/merkle.cpp
f6b782f3aad4 doc: Improve m_best_header documentation
ee673b9aa015 validation: remove m_failed_blocks
ed764ea2b4ed validation: Add more checks to CheckBlockIndex()
9a70883002e1 validation: in invalidateblock, calculate m_best_header right away
8e39f2d20d09 validation: in invalidateblock, mark children as invalid right away
4c29326183ba validation: cache all headers with enough PoW in invalidateblock
15fa5b5a908d validation: call InvalidBlockFound also from AcceptBlock
fa9cfdf3be75 ci: [doc] fix url redirect
fac60b9c4839 ci: Rewrite test-each-commit as py script
8713e8060d50 depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
2d938720bd67 depends: add patch to fix capnp build on OpenBSD
0a4ee93529d6 wallet: use PSBTError::EXTERNAL_SIGNER_NOT_FOUND
8ba2f9b7c8a6 refactor: use util::Result for GetExternalSigner()
ae024137bda9 Merge bitcoin/bitcoin#32496: depends: drop `ltcg` for Windows Qt
6a2ff6790929 Merge bitcoin/bitcoin#32679: doc: update tor docs to use bitcoind binary from path
fd4399cb9c69 Merge bitcoin/bitcoin#32602: fuzz: Add target for coins database
130a92298077 wallet, interfaces: Use BERKELEY_RO in isEncrypted
f94167512dc9 Merge bitcoin/bitcoin#32676: test: apply microsecond precision to test framework logging
0dcb45290cf8 Merge bitcoin/bitcoin#32607: rpc: Note in fundrawtransaction doc, fee rate is for package
4ce53495e5e1 doc: update tor docs to use bitcoind binary from path
a5e98dc3ae63 Merge bitcoin/bitcoin#32651: cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
9653ebc05360 depends: remove support for Windows Qt LTO builds
7cfbb8575e1f test: wallet: cover wallet passphrase with a null char
5c4a0f8009ce guix: warn and abort when SOURCE_DATE_EPOCH is set
4af72d8b0892 Merge bitcoin/bitcoin#32647: build: add -Wthread-safety-pointer
a980918f51d7 Merge bitcoin/bitcoin#32568: depends: use "mkdir -p" when installing xproto
ed179e0a6528 test: apply microsecond precision to test framework logging
fa9ca13f35be refactor: Sort includes of touched source files
facb152697b8 scripted-diff: Bump copyright headers after include changes
fae71d30f722 clang-tidy: Apply modernize-deprecated-headers
e872a566f251 Merge bitcoin/bitcoin#32644: doc: miscellaneous changes
e50312eab0b5 doc: fix typos
c797e50ddae9 ci: update codespell to 2.4.1
21ee656337b0 doc: Remove obselete link in notificator.cpp
ee4406c04af0 doc: update URLs
2d819fa4dff9 Merge bitcoin/bitcoin#29032: signet: omit commitment for some trivial challenges
f999c3775c12 Merge bitcoin/bitcoin#32449: wallet: init, don't error out when loading legacy wallets
6135e0553e6e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC
0def84d407fa test: Verify parent_desc in RPCs
f98e1aaf34e3 rpc: Note in fundrawtransaction doc, fee rate is for package
db225cea56b0 wallet, refactor: Replace GetDisplayName() with LogName()
1c6602399be6 Merge bitcoin/bitcoin#32662: doc: Remove build instruction for running `clang-tidy`
01737883b3ff wallet: Translate [default wallet] string in progress messages
4b1b36acb48f doc: Remove build instruction for running `clang-tidy`
9e105107bf52 Merge bitcoin/bitcoin#32656: depends: don't install & then delete sqlite pkgconf
72a5aa9b791e depends: don't install & then delete sqlite pkgconf
18cf727429e9 cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`
83bfe1485c37 build: add -Wthread-safety-pointer
e639ae05315e Update leveldb subtree to latest upstream
240a4fb95d5b Squashed 'src/leveldb/' changes from 113db4962b..aba469ad6a
a189d636184b add release note for datacarriersize default change
a141e1bf501b Add more OP_RETURN mempool acceptance functional tests
0b4048c73385 datacarrier: deprecate startup arguments for future removal
63091b79e70b test: remove unnecessary -datacarriersize args from tests
9f36962b07ef policy: uncap datacarrier by default
4b1d48a6866b Merge bitcoin/bitcoin#32598: walletdb: Log additional exception error messages for corrupted wallets
b933813386ef Merge bitcoin/bitcoin#32619: wallet, rpc, gui: List legacy wallets with a message about migration
053bda5d9fb3 Merge bitcoin/bitcoin#32460: fs: remove `_POSIX_C_SOURCE` defining
9393aeeca4b1 Merge bitcoin/bitcoin#32641: Update libmultiprocess subtree to fix clang-tidy errors
b184f5c87c41 test: update BIP340 test vectors and implementation (variable-length messages)
5471e29d0570 Merge bitcoin/bitcoin#32304: test: test MAX_SCRIPT_SIZE for block validity
154af1eea117 Squashed 'src/ipc/libmultiprocess/' changes from 35944ffd23fa..27c7e8e5a581
9f6565488fc1 Merge commit '154af1eea1170f5626aa1c5f19cc77d1434bcc9d' into HEAD
c810b168b89d doc: Add description of installed files to files.md
c540ede1cbca Merge bitcoin/bitcoin#32633: windows: Use predefined `RC_INVOKED` macro instead of custom one
94ffd01a0294 doc: Add release notes describing libexec/ binaries
cd97905ebc56 cmake: Move internal binaries from bin/ to libexec/
cfc42ae5b7ef fuzz: add a target for the coins database
55f1c2ac8beb windows: Use predefined `RC_INVOKED` macro instead of custom one
14c16e81598a Merge bitcoin/bitcoin#32582: log: Additional compact block logging
aad5938c49f9 Merge bitcoin/bitcoin#32516: test: add MAX_DISCONNECTED_TX_POOL_BYTES, chainlimits coverage
1062df81eec7 Merge bitcoin/bitcoin#32634: build: Add resource file and manifest to `bitcoin.exe`
b78990734621 wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet
83df64d7491b log: Stats when fulfilling GETBLOCKTXN
370c59261269 Merge bitcoin/bitcoin#32630: test: fix sync function in rpc_psbt.py
dbb2d4c3d547 windows: Add application manifest to `bitcoin.exe`
df82c2dc17e3 windows: Add resource file for `bitcoin.exe`
3733ed2dae3d log: Size of missing tx'es when reconstructing compact block
4df4df45d7bc test: fix sync function in rpc_psbt.py
e86d71b749c0 wallet: refactor, dedup wallet re-loading code
1de423e0a08b wallet: introduce method to return all db created files
d04f6a97ba9a refactor: remove sqlite dir path back-and-forth conversion
88b22acc3d6f Merge bitcoin/bitcoin#32…
bensig added a commit to bensig/bitcoin that referenced this pull request Jan 6, 2026
Restore the historical default of 80 bytes (83 with OP_RETURN + pushdata
overhead) for -datacarriersize, while preserving the ability for node
operators to configure any limit they prefer.

This is not a hard cap - users can still set -datacarriersize=100000 (or
any value) to allow larger OP_RETURN outputs. The change only affects
the default behavior when no explicit configuration is provided.

Rationale:
- The unlimited default introduced in bitcoin#32406 remains controversial
- ~20% of nodes run Bitcoin Knots which maintains the 80-byte default
- Inscriptions have no economic incentive to move to OP_RETURN since
  witness data is ~4x cheaper due to the segwit discount
- Restoring the default provides a middle ground while respecting
  node operator choice

Test changes add explicit -datacarriersize=100000 to tests that require
large OP_RETURN outputs for transaction padding.
bensig added a commit to bensig/bitcoin that referenced this pull request Jan 6, 2026
Restore the historical default of 80 bytes (83 with OP_RETURN + pushdata
overhead) for -datacarriersize, while preserving the ability for node
operators to configure any limit they prefer.

This is not a hard cap - users can still set -datacarriersize=100000 (or
any value) to allow larger OP_RETURN outputs. The change only affects
the default behavior when no explicit configuration is provided.

Rationale:
- The unlimited default introduced in bitcoin#32406 remains controversial
- ~20% of nodes run Bitcoin Knots which maintains the 80-byte default
- Inscriptions have no economic incentive to move to OP_RETURN since
  witness data is ~4x cheaper due to the segwit discount
- Restoring the default provides a middle ground while respecting
  node operator choice

Test changes add explicit -datacarriersize=100000 to tests that require
large OP_RETURN outputs for transaction padding.
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.