Skip to content

backport: v0.26 bitcoin#26177 - #64

Open
DCG-Claude wants to merge 1 commit into
developfrom
backport-0.26-b041-src
Open

DCG-Claude wants to merge 1 commit into
developfrom
backport-0.26-b041-src

Conversation

@DCG-Claude

@DCG-Claude DCG-Claude commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

Automated Bitcoin Core v0.26 backports, batch backport-0.26-b041-src.

upstream commit gates notes
bitcoin#26177 e4d54cd729 pick:pass build:pass tests:pass mech:warn tree:pass verify:pass ci_fork:pass ci_upstream:pass This backport of bitcoin#26177 moves Dash's own CChainParams and network classes (with all DIP, LLMQ, masternode, govern

Skipped in this batch:

Provenance

Each commit passed: cherry-pick (adapted by an Opus lane only where conflicts existed), build, touched tests, a mechanical diff-of-diffs check (every upstream hunk landed; no added line without an upstream counterpart), and an independent Opus verification lane where anything was adapted. Gate rows and lane artifacts are in the backportsys DB.

@github-actions

github-actions Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Potential PR merge conflicts

This is advisory only. It does not block CI, but it marks PRs that will likely need a rebase depending on merge order.

If this PR merges first

These open PRs will likely need a rebase:

If these PRs merge first

This PR will likely need a rebase:

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, partial bitcoin#26177, bitcoin#26900, partial bitcoin#25781 backport: v0.26 bitcoin#25862, partial bitcoin#26177, bitcoin#26900, partial bitcoin#25781, bitcoin#28354, bitcoin#27609 Sep 20, 2026
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at f84f3e0 on thepastaclaw/dash: linux64_nowallet-build / Build source, linux64_multiprocess-build / Build source

These errors require consensus/params.h to be missing or half-included when versionbits.h is parsed, but versionbits.h includes chain.h which includes consensus/params.h before anything else, there is no include cycle or duplicated guard reaching it, and none of the six commits touches chain.h, versionbits.h, deploymentstatus.h or consensus/params.h; every other job compiling the same TUs passed. The nowallet excerpt shows only container teardown, no compile error, so this looks like a stale/incomplete build tree in those two containers rather than branch breakage — please rerun.


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, partial bitcoin#26177, bitcoin#26900, partial bitcoin#25781, bitcoin#28354, bitcoin#27609 backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, partial bitcoin#25781, bitcoin#28354, bitcoin#27609 Sep 22, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from f84f3e0 to 8701881 Compare September 22, 2026 04:44
@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, partial bitcoin#25781, bitcoin#28354, bitcoin#27609 backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#25781, bitcoin#28354, bitcoin#27609 Sep 22, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 8701881 to 5728326 Compare September 22, 2026 09:45
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 8701881 on thepastaclaw/dash: linux64_multiprocess-build / Build source, linux64_nowallet-build / Build source

Added node/database_args.cpp to libdashkernel_la_SOURCES (build-system file): bitcoin#25862 makes index/base.cpp call node::ReadDatabaseArgs, and unlike upstream — which had removed index/*.cpp from libbitcoinkernel in f100687 before this PR — Dash's kernel library still compiles index/base.cpp, so the symbol was undefined in libdashkernel.so (nowallet/multiprocess link error). The multiprocess job's versionbits.h errors cannot come from this tree (versionbits.h includes chain.h which includes consensus/params.h, and nothing reachable from consensus/params.h includes versionbits.h, so no cycle exists); that looks like a stale incremental/ccache artifact and should clear on rerun once the link error is gone. (folded into the bitcoin#25781 commit)


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 5728326 on thepastaclaw/dash: linux64_multiprocess-build / Build source

The failing headers (versionbits.h, deploymentstatus.h, chain.h, consensus/params.h) are untouched by every commit in this batch, and the reported errors require consensus/params.h to be skipped — impossible here, since chain.h includes it unconditionally and its own includes (uint256.h, llmq/params.h) form no cycle and no duplicate include guard exists. All files added by the batch are listed in src/Makefile.am, so the distdir build used by CI is complete. This looks like a stale/mutated workspace in the RUN_TIDY multiprocess job (its lint path rewrites includes in place with fix_includes.py --nosafe_headers); please rerun.


🤖 backportsys, on behalf of the Dash backport pipeline.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#25781, bitcoin#28354, bitcoin#27609 backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#25781, bitcoin#27609 Sep 22, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 5728326 to 3c85826 Compare September 22, 2026 14:38
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

Branch rewritten at 3c8582669b (5 backport(s)).


🤖 backportsys, on behalf of the Dash backport pipeline.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 3c85826 on thepastaclaw/dash: linux64_multiprocess-build / Build source

The errors are in versionbits.h and deploymentstatus.h, where consensus/params.h is only half-read (Consensus::DeploymentPos missing, Consensus::Params incomplete). No commit in this batch touches those headers, chain.h or consensus/params.h, and none of the includes the batch added forms a loop back to them. Only the aarch64 multiprocess/tidy job reports it, so it looks environment-specific rather than caused by this backport, and a rerun should confirm; I couldn't get the full log to see which file failed, so if it happens again that log is what to check.


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 3c85826 on thepastaclaw/dash: linux64_multiprocess-build / Build source

None of the five backports touch the headers the errors point at (consensus/params.h, chain.h, versionbits.h, deploymentstatus.h), and with the files as they are these errors can't happen: chain.h includes consensus/params.h second, and consensus/params.h only pulls in uint256.h and llmq/params.h, so there is no include cycle that could leave Consensus::DeploymentPos or Params undefined. Errors saying the Consensus namespace exists but its contents don't mean the arm64 runner read a missing or truncated consensus/params.h (a damaged checkout, dist copy or ccache), which is a problem with the build environment, not this branch. I couldn't rebuild locally to confirm, so please rerun the job; if it fails the same way again, the full log naming the failing file would show where to look next.


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 3c85826 on thepastaclaw/dash: linux64_multiprocess-build / Build source

The quoted log is cut off before it names the file that failed. The errors are in versionbits.h and deploymentstatus.h, which this branch does not change, and every missing symbol (MAX_VERSION_BITS_DEPLOYMENTS, DeploymentPos, BuriedDeployment, ValidDeployment, the full Consensus::Params) is still defined in src/consensus/params.h, which is also unchanged and reached through chain.h in both headers. I checked every header this batch changed or added (validation.h, kernel/chainparams.h, kernel/_opts.h, txdb.h, dbwrapper.h, node/_args.h) and found no include cycle, header-guard clash or dropped include, so I made no change. Please rerun, or send the full compile error ('In file included from' chain and file name) so I can place a fix in the right commit if the branch is at fault.


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#25781, bitcoin#27609 backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#27609 Sep 23, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 3c85826 to 97877ba Compare September 23, 2026 01:53
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

Branch rewritten at 97877ba813 (4 backport(s)).

  • dropped Remove almost all blockstorage globals bitcoin/bitcoin#25781: verify: Moving fImporting into BlockManager is not taken: there is no std::atomic<bool> m_importing{false} member, extern std::atomic_bool fImporting is kept, and LoadingBlocks() still reads the global. Dash-only code reads the global where there is no ChainstateManager (instantsend/instantsen

🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at 97877ba on thepastaclaw/dash: linux64_nowallet-build / Build source, linux64_multiprocess-build / Build source

I tried a fix but it failed local gates in bitcoin#25862 (verify: Upstream never touches this file and no upstream rename or signature change reaches it. The earlier reviewed backport (6546516) lacked it and the commit message doesn't explain it. chain.h already includes consensus/params.h, and the dependent objects compile without the line.; Same as above: an unexplained edit to a file upstream never touched. It isn't needed to compile (verified by removing ). bitcoin#25862 has had its repair lane and is being dropped from this branch.


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#25862, bitcoin#26177, bitcoin#26900, bitcoin#27609 backport: v0.26 bitcoin#26177, bitcoin#26900, bitcoin#27609 Sep 23, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 97877ba to ddab1be Compare September 23, 2026 05:25
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

Branch rewritten at ddab1be450 (3 backport(s)).


🤖 backportsys, on behalf of the Dash backport pipeline.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

CI failed at ddab1be on thepastaclaw/dash: linux64_multiprocess-build / Build source

The CI IWYU step rewrites chain.h to forward-declare Consensus::Params instead of including consensus/params.h. versionbits.h relied on that transitive include for DeploymentPos/MAX_VERSION_BITS_DEPLOYMENTS, and bitcoin#26177's validation.h reorder (kernel/chainparams.h now after deploymentstatus.h) stopped hiding it. Added the missing #include <consensus/params.h> to versionbits.h; I reproduced the failure locally with the IWYU-edited chain.h and it is gone with the fix. (folded into the bitcoin#26177 commit)


🤖 backportsys, on behalf of the Dash backport pipeline.

@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#26177, bitcoin#26900, bitcoin#27609 backport: v0.26 bitcoin#26177, bitcoin#27609 Sep 24, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 0654da0 to 8c6e8c4 Compare September 24, 2026 17:23
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

Branch rewritten at 8c6e8c42e3 (2 backport(s)).


🤖 backportsys, on behalf of the Dash backport pipeline.

@github-actions

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 8c6e8c4 to f36ceda Compare October 6, 2026 15:21
@DCG-Claude DCG-Claude changed the title backport: v0.26 bitcoin#26177, bitcoin#27609 backport: v0.26 bitcoin#26177 Oct 6, 2026
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from f36ceda to 9ab1778 Compare October 6, 2026 16:26
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown

This pull request has conflicts, please rebase.

@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 9ab1778 to 57982c0 Compare October 6, 2026 22:47
…nctionality to kernel

b3e78dc refactor: Don't use global chainparams in chainstatemanager method (TheCharlatan)
382b692 Split non/kernel chainparams (Carl Dong)
edabbc7 Add factory functions for Main/Test/Sig/Reg chainparams (Carl Dong)
d938098 Remove UpdateVersionBitsParameters (Carl Dong)
84b8578 Decouple RegTestChainParams from ArgsManager (Carl Dong)
76cd4e7 Decouple SigNetChainParams from ArgsManager (Carl Dong)

Pull request description:

  This pull request is part of the `libbitcoinkernel` project bitcoin#24303 https://github.com/bitcoin/bitcoin/projects/18 and more specifically its "Step 2: Decouple most non-consensus code from libbitcoinkernel". dongcarl is the original author of this patchset, these commits were taken from https://github.com/dongcarl/bitcoin/tree/2022-03-libbitcoinkernel-chainparams-args-only.

  #### Context

  The bitcoin kernel library currently relies on code containing user configurations through the `ArgsManager`. This is not optimal, since as a stand-alone library it should not rely on bitcoind's argument parsing logic. Instead, its interfaces should accept control and options structs that control the kernel library's desired configuration.

  Similar work towards decoupling the `ArgsManager` from the kernel has been done in
  bitcoin#25290, bitcoin#25487, bitcoin#25527 and bitcoin#25862.

  #### Changes

  By moving the `CChainParams` class definition into the kernel and giving it new factory functions `CChainParams::{RegTest,SigNet,Main,TestNet}`it can be constructed without an `ArgsManager` reference, unlike the current factory function `CreateChainParams`.

  The first few commits remove uses of `ArgsManager` within `CChainParams`. Then the `CChainParams` definition is moved to a new file in the `kernel/` subdirectory.

ACKs for top commit:
  MarcoFalke:
    re-ACK b3e78dc 🛁
  ryanofsky:
    Code review ACK b3e78dc. Only changes since last review were recent review suggestions.
  ajtowns:
    ACK b3e78dc

Tree-SHA512: 3835aca1d3e3c75cc3303dd584bab3a77e58f6c678724a5e359fe4b0e17e0763a00931ee6191f516b9fde50496f59cc691f0709c0254206db3863bbf7ab2cacd

Dash adaptations:
- src/kernel/chainparams.{h,cpp}: the moved CChainParams is Dash's, not Bitcoin's (the cherry-pick had created verbatim upstream files; both were rewritten). All Dash accessors and fields are kept: DevNetGenesisBlock, GetDefaultPlatformP2PPort/HTTPPort, RequireRoutableExternalIP, AllowMultipleAddressesFromGroup, LLMQConnectionRetryTimeout, Bech32PlatformHRP, ExtCoinType, IsValidMNActivation, PoolMin/MaxParticipants, FulfilledRequestExpireTime, SporkAddress, CreditPoolPeriodBlocks, GetLLMQ/AddLLMQ, UpdateDIP3/DIP8/Budget/LLMQInstantSend declarations.
- src/kernel/chainparams.{h,cpp}: Dash has a fourth network, so a fourth factory CChainParams::DevNet(const DevNetOptions&) was added alongside Main()/TestNet()/RegTest(opts), mirroring upstream's pattern.
- src/kernel/chainparams.h: CChainParams::VersionBitsParameters carries Dash's extra -vbparams fields (window_size, threshold_start, threshold_min, falloff_coeff, use_ehf) with the existing -1 "leave unchanged" sentinel, so -vbparams semantics are unchanged.
- src/kernel/chainparams.h: RegTestOptions is extended with Dash-only entries (dip3_parameters, budget_parameters, llmq_test_parameters, llmq_dip0024_instantsend) and DevNetOptions carries name, minimum_difficulty_blocks, high_subsidy_blocks, high_subsidy_factor, pow_target_spacing, llmq_chainlocks, llmq_dip0024_instantsend, llmq_platform, llmq_mnhf, llmq_devnet_parameters, plus helper structs LLMQParameters/DIP3Parameters/BudgetParameters.
- LLMQ overrides travel as quorum *names* (strings) in the options structs: resolving a name to a Consensus::LLMQType needs the per-chain consensus.llmqs list, which only exists inside the kernel constructors. The lookup loops, the rotation checks and the exact error strings/LogPrintf messages of the old Update*FromArgs functions are preserved, just moved into the kernel side.
- src/kernel/chainparams.cpp: FindDevNetGenesisBlock()/CDevNetParams no longer call gArgs.GetDevNetName(); the devnet name arrives via DevNetOptions::name (filled by ReadDevNetArgs from args.GetDevNetName()), which is what keeps the kernel gArgs-free.
- src/kernel/chainparams.cpp: CRegTestParams::UpdateActivationParameters switches exhaustively over Dash's 15 Consensus::BuriedDeployment values (no -Wswitch warning); DEPLOYMENT_DIP0024 sets both DIP0024Height and DIP0024QuorumsHeight, exactly as the old name-based if/else did. DEPLOYMENT_DIP0003/DIP0020/WITHDRAWALS are unreachable because GetBuriedDeployment does not map any -testactivationheight name to them, matching current behaviour.
- src/deploymentinfo.cpp: GetBuriedDeployment() was auto-applied with Bitcoin's names and returned DEPLOYMENT_SEGWIT, which does not exist in Dash. Rewritten to the exact set of names -testactivationheight accepted before (bip147, bip34, dersig, cltv, csv, brr, dip0001, dip0008, dip0024, v19, v20, mn_rr); no name was added or removed.
- src/chainparams.cpp: Dash's arg readers keep their existing decomposition as file-static helpers (ReadRegTestActivationArgs/DIP3/Budget/LLMQTest/LLMQInstantSendDIP0024, ReadDevNetSubsidyAndDiffArgs/PowTargetSpacing/LLMQDevnetParams) called from ReadRegTestArgs()/ReadDevNetArgs(). Merging them into one function was not possible verbatim because each body ends with an early `if (!args.IsArgSet(...)) return;`.
- src/chainparams.cpp: ReadDevNetSubsidyAndDiffArgs applies -minimumdifficultyblocks/-highsubsidyblocks/-highsubsidyfactor as independent optionals and therefore logs three separate lines instead of the single combined LogPrintf; net effect on consensus is identical (unset values keep the chain defaults, which are no longer visible from the arg reader).
- src/chainparams.cpp: CreateChainParams dispatches MAIN/TESTNET/DEVNET/REGTEST; the DEVNET branch uses the new ReadDevNetArgs + CChainParams::DevNet(opts). Include list and SetupChainParamsOptions() are untouched, as upstream left them untouched.
- src/validation.h: added <deploymentstatus.h>, <kernel/chainparams.h>, <kernel/chainstatemanager_opts.h>, <node/blockstorage.h>. Upstream's <fs.h> and <kernel/cs_main.h> were not added: Dash uses util/fs.h and does not have that include in this block.

Not applicable to Dash (intentionally omitted):
- src/kernel/chainparams.cpp: Upstream's SigNetParams class body, CChainParams::SigNet() factory and the signet challenge/seed handling moved into the kernel file; Dash has no signet chain, so there is no counterpart to move. Dash's own CMainParams/CTestNetParams/CDevNetParams/CRegTestParams (with all DIP/LLMQ/masternode/governance/spork parameters) were moved instead. (reviewer: not for Dash)
- src/kernel/chainparams.h: Upstream's SigNetOptions struct (challenge/seeds) and the static SigNet() declaration; no signet in Dash. Dash instead declares VersionBitsParameters (extended with window/threshold/falloff/useEHF), LLMQParameters, DIP3Parameters, BudgetParameters, DevNetOptions and RegTestOptions. (reviewer: not for Dash)
- src/chainparams.cpp: ReadSigNetArgs() and the CBaseChainParams::SIGNET branch of CreateChainParams(); Dash has no signet. Dash adds ReadDevNetArgs()/the DEVNET branch in the same shape. (reviewer: not for Dash)
- src/deploymentinfo.cpp: GetBuriedDeployment() returning Consensus::DEPLOYMENT_SEGWIT for name "segwit"; Dash has no segwit buried deployment. The Dash function covers exactly the 12 names the previous MaybeUpdateHeights() accepted (bip147, bip34, dersig, cltv, csv, brr, dip0001, dip0008, dip0024, v19, v20, mn_rr). (reviewer: not for Dash)
- src/kernel/chainparams.cpp: Upstream's segwit/taproot consensus fields, script_flag_exceptions maps and bech32_hrp carried in the moved Bitcoin chain classes; Dash's classes have no such fields (Dash keeps bech32_platform_hrp, nExtCoinType, EvoSnapshotHash etc., all of which were moved). (reviewer: not for Dash)

Replayed onto a newer base.

Dash adaptations:
- src/kernel/chainparams.h: EvoSnapshotHash struct and AssumeutxoData::evo_hash (added to src/chainparams.h on the new develop base) travel with the class into the kernel header, so develop's Dash evo-snapshot field is preserved.
- src/kernel/chainparams.cpp: FindDevNetGenesisBlock() and CChainParams::AddLLMQ() use develop's LogError("...\n", ...) instead of the base's error(...) — the new base replaced error() in these two Dash-only helpers before they were moved.
- src/kernel/chainparams.cpp: the two CRegTestParams m_assumeutxo_data entries carry develop's third aggregate member, EvoSnapshotHash{uint256{}}, between AssumeutxoHash and nChainTx.
- src/chainparams.cpp: develop's '2009-2022 The Bitcoin Core developers' copyright line kept rather than the pre-rebase 2009-2021.
- src/validation.h: upstream's kernel/chainparams.h + kernel/chainstatemanager_opts.h are inserted in sorted position alongside develop's new <kernel/cs_main.h> // IWYU pragma: export, which did not exist at the prior base. Upstream's <fs.h> is still not added: Dash uses util/fs.h.
- src/wallet/test/wallet_tests.cpp: the prior backport added #include <chainparams.h> to wallet/test/availablecoins_tests.cpp (needed because validation.h no longer re-exports Params()); the new base deleted that file and moved the Dash-only UTXO tests into wallet_tests.cpp, so the include was applied there instead — that file calls Params().GetConsensus().DIP0003Height.
- src/wallet/test/availablecoins_tests.cpp: deleted, following the new base (bitcoin#25789 + the Dash-only test move); the file's only backport hunk was the include described above.
- src/kernel/chainparams.{h,cpp} content (Dash CChainParams instead of Bitcoin's, fourth DevNet() factory, Dash-extended VersionBitsParameters/RegTestOptions/DevNetOptions, name-based LLMQ override resolution, gArgs-free devnet name via DevNetOptions::name, Dash-specific GetBuriedDeployment names) is unchanged from the reviewed prior backport; see the prior commit body for the full rationale.

Not applicable to Dash (intentionally omitted):
- src/kernel/chainparams.cpp: Upstream's CSigNetParams / SigNetOptions / CChainParams::SigNet() and the ReadSigNetArgs reader: Dash has no signet chain, so there is no counterpart to move.
- src/kernel/chainparams.h: Upstream's SigNetOptions struct and the signet challenge/seed members: no signet in Dash.
- src/kernel/chainparams.cpp: Upstream's segwit/taproot chain fields and script_flag_exceptions maps do not exist in Dash; Dash's own chain classes (including DIP/LLMQ/masternode/governance/spork parameters) were moved instead.
- src/deploymentinfo.cpp: Upstream's GetBuriedDeployment() returns Consensus::DEPLOYMENT_SEGWIT, which does not exist in Dash; the function was written over the exact set of names -testactivationheight already accepted (bip147, bip34, dersig, cltv, csv, brr, dip0001, dip0008, dip0024, v19, v20, mn_rr).

Replayed onto a newer base.

Dash adaptations:
- src/chainparams.cpp: conflict resolved to the prior reviewed backport's content (verified identical to merge stage :3); the Dash CreateGenesisBlock/CreateDevNetGenesisBlock/FindDevNetGenesisBlock helpers, IsValidMNActivation, AddLLMQ/GetLLMQ and the CMain/CTestNet/CDevNet/CRegTest classes move to src/kernel/chainparams.cpp, leaving only the gArgs-reading Read*Args helpers behind
- src/chainparams.h: conflict resolved to the prior reviewed backport's content; the Dash-extended CChainParams (platform ports, devnet genesis, LLMQ/spork/CoinJoin/credit-pool accessors, EvoSnapshotHash in AssumeutxoData) moves to src/kernel/chainparams.h, which this header now includes
- src/kernel/chainparams.h: dropped RequireStandard()/fRequireStandard from the moved class — the new base already removed them from CChainParams via bitcoin#28354 (default acceptnonstdtxn=0 on all chains), which was not yet in the prior backport's base
- src/kernel/chainparams.cpp: dropped the four fRequireStandard assignments (main/testnet/devnet/regtest) for the same reason
- upstream ReadSigNetArgs has no Dash counterpart (no signet); the prior backport instead routes Dash's devnet through ReadDevNetArgs()/CChainParams::DevNet(DevNetOptions) and keeps the Dash-only -dip3params/-budgetparams/-llmqtest*/-llmqdevnetparams/-powtargetspacing readers as RegTest/DevNet option readers
- upstream's flat ReadRegTestArgs is split into ReadRegTest{Activation,DIP3,Budget,LLMQTest,LLMQInstantSendDIP0024}Args because Dash's -vbparams accepts 3/4/6/9 fields (window, thresholdstart, thresholdmin, falloffcoeff, useehf) and regtest has several more Dash-only overrides

Replayed onto a newer base.

Dash adaptations:
- src/chainparams.cpp: took the upstream side of the conflict, which removes the network classes (now in kernel/chainparams.cpp) and keeps the gArgs readers (ReadRegTestArgs/ReadDevNetArgs, CreateChainParams, SelectParams, SetupChainParamsOptions); matches the upstream stage and the previously reviewed prior.diff
- src/kernel/chainparams.cpp: carried develop's CTestNetParams DEPLOYMENT_V24 nStartTime = 1790208000 (Thursday, September 24, 2026) into the moved testnet class; the old base had NEVER_ACTIVE, and this was the only change to src/chainparams.cpp between the old and new base

Replayed onto a newer base.

Dash adaptations:
- src/bitcoin-chainstate.cpp: the ChainstateManager::Options initializer has no `.datadir = gArgs.GetDataDirNet(),` line because the new develop base's kernel::ChainstateManagerOpts has no `datadir` member (the prior base had one). Upstream only uses that line as context, so the upstream change `.chainparams = chainparams` -> `.chainparams = *chainparams` is applied alone.
- All other staged files carry forward the published prior backport unchanged; their Dash adaptations (Makefile.am kernel/chainparams.cpp in libbitcoin_common and libdashkernel, added <chainparams.h> includes in Dash-only files such as active/dkgsession.cpp, chainlock/signing.cpp, instantsend/net_instantsend.cpp, qt/test/providertransactiontests.cpp and Dash tests, and the Dash CChainParams move into kernel/chainparams.cpp) are the same as in prior.diff

Replayed onto a newer base.

Dash adaptations:
- src/chainparams.cpp: restored exactly the published resolution from prior.diff (checked by comparing its +/- lines with prior.diff: identical). Only the class bodies differ on the new base, and they move to kernel, so no line here changed.
- src/kernel/chainparams.cpp: DEPLOYMENT_V24 .bit changed from 12 to 13 in CMainParams, CTestNetParams, CDevNetParams and CRegTestParams, carrying develop commit 1be3ac2 over to the moved classes. Without this the move would quietly undo the bit change.
- All other staged files (Makefile.am, chainparams.h, deploymentinfo.{h,cpp}, validation.{h,cpp}, versionbits.h, node/blockstorage.cpp, node/mempool_args.cpp, bitcoin-chainstate.cpp, kernel/chainparams.h, and the Dash-only call sites active/dkgsession.cpp, chainlock/signing.cpp, instantsend/net_instantsend.cpp, qt/test/*, test/bls_tests.cpp, test/evo_islock_tests.cpp, test/llmq_chainlock_tests.cpp, test/validation_tests.cpp, wallet/test/wallet_tests.cpp) are unchanged from the published prior.diff, including its Dash adaptations: DevNetOptions/RegTestOptions for the LLMQ, DIP3, budget and devnet overrides, GetBuriedDeployment covering Dash's buried deployments, and the <chainparams.h> include fixes at call sites.

Replayed onto a newer base.

Dash adaptations:
- src/validation.cpp: include conflict with the new base, which added #include <kernel/disconnected_transactions.h> where this backport adds #include <kernel/chainparams.h>; kept both, sorted alphabetically
- src/active/dkgsession.cpp, src/chainlock/signing.cpp, src/instantsend/net_instantsend.cpp, src/qt/test/providertransactiontests.cpp, src/qt/test/wallettests.cpp, src/test/bls_tests.cpp, src/test/evo_islock_tests.cpp, src/test/llmq_chainlock_tests.cpp, src/test/validation_tests.cpp: (kept from the published backport) these Dash files now include <chainparams.h> directly, because validation.h includes <kernel/chainparams.h> instead of <chainparams.h> and so no longer pulls in Params()
- src/chainparams.cpp, src/chainparams.h, src/kernel/chainparams.cpp, src/kernel/chainparams.h, src/deploymentinfo.*, src/versionbits.h, src/bitcoin-chainstate.cpp, src/node/*, src/validation.h, src/Makefile.am, src/wallet/test/wallet_tests.cpp: (kept from the published backport) carried over unchanged, including the Dash chain parameters, LLMQ and other Dash-specific fields moved into kernel/chainparams, and all earlier review fixes

Replayed onto a newer base.

Dash adaptations:
- src/chainparams.cpp: took the prior backport's version unchanged (it matches blob 8d5a119, the prior post-image). On the HEAD side, the only change since the prior base (15db478) was dashpay#7807's DEPLOYMENT_EVO_SHARES blocks in the network classes, and this PR moves those classes out of the file
- src/kernel/chainparams.cpp: added dashpay#7807's DEPLOYMENT_EVO_SHARES settings (bit 14, start/timeout, window, thresholds, falloff, useEHF) right after the DEPLOYMENT_V24 block in CMainParams, CTestNetParams, CDevNetParams and CRegTestParams, word for word, including mainnet's NEVER_ACTIVE/TODO start time. This keeps dashpay#7807's settings now that the class definitions live in kernel/chainparams.cpp
- Carried over from the prior reviewed backport unchanged: Dash-only call sites (src/active/dkgsession.cpp, src/chainlock/signing.cpp, src/instantsend/net_instantsend.cpp, src/qt/test/providertransactiontests.cpp, src/qt/test/wallettests.cpp, src/test/bls_tests.cpp, src/test/evo_islock_tests.cpp, src/test/llmq_chainlock_tests.cpp, src/test/validation_tests.cpp, src/wallet/test/wallet_tests.cpp, src/versionbits.h) and the Dash devnet/LLMQ/EHF parts of src/kernel/chainparams.{h,cpp} and src/chainparams.{h,cpp}
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from 57982c0 to e4d54cd Compare October 7, 2026 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant