Skip to content

backport: v0.26 bitcoin#26177 - #64

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

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 d5fea03a6c pick:pass build:pass tests:pass mech:warn tree:pass verify:pass This backports bitcoin#26177: CChainParams and Dash's Main/TestNet/DevNet/RegTest classes move into kernel/chainparams,
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:

@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.

@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 2 times, most recently from 57982c0 to e4d54cd Compare October 7, 2026 03:22
@DCG-Claude
DCG-Claude force-pushed the backport-0.26-b041-src branch from d45005f to d5fea03 Compare October 10, 2026 00:29
…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}: moves Dash's CChainParams and network classes (all DIP, LLMQ, masternode and spork parameters), not Bitcoin's
- src/kernel/chainparams.{h,cpp}: adds CChainParams::DevNet(DevNetOptions) next to Main()/TestNet()/RegTest() for Dash's fourth network
- src/kernel/chainparams.h: VersionBitsParameters, RegTestOptions and DevNetOptions carry Dash's extra -vbparams fields and regtest/devnet overrides
- src/kernel/chainparams.cpp: LLMQ overrides arrive as quorum names and are resolved in the kernel constructors, which own the per-chain LLMQ list
- src/kernel/chainparams.cpp: the devnet name comes from DevNetOptions::name instead of gArgs.GetDevNetName(), keeping the kernel gArgs-free
- src/kernel/chainparams.cpp: the moved classes keep develop's current values (EvoSnapshotHash, V24 bit 13, EVO_SHARES; no fRequireStandard after bitcoin#28354)
- src/deploymentinfo.cpp: GetBuriedDeployment() maps the 12 names -testactivationheight already accepted (bip147 ... mn_rr) instead of upstream's segwit
- src/chainparams.cpp: Dash's arg readers stay split into ReadRegTest*/ReadDevNet* helpers, called from ReadRegTestArgs()/ReadDevNetArgs()
- src/chainparams.cpp: -minimumdifficultyblocks/-highsubsidyblocks/-highsubsidyfactor are read as separate optionals, so they log three lines instead of one
- src/validation.h: upstream's <fs.h> is not added; Dash uses util/fs.h
- src/active/dkgsession.cpp, src/chainlock/signing.cpp, src/instantsend/net_instantsend.cpp and Dash tests: include <chainparams.h>, which validation.h no longer provides

Not applicable to Dash (intentionally omitted):
- src/kernel/chainparams.cpp: CSigNetParams and CChainParams::SigNet(); Dash has no signet
- src/kernel/chainparams.h: SigNetOptions and the SigNet() declaration; Dash has no signet
- src/chainparams.cpp: ReadSigNetArgs() and the SIGNET branch of CreateChainParams(); Dash has no signet
- src/kernel/chainparams.cpp: segwit/taproot fields, script_flag_exceptions and bech32_hrp of Bitcoin's chain classes; Dash's classes have none
- src/deploymentinfo.cpp: the "segwit" -> DEPLOYMENT_SEGWIT mapping; Dash has no segwit deployment
PastaPastaPasta added a commit to dashpay/dash that referenced this pull request Oct 12, 2026
153aa3c Merge bitcoin#26177: refactor / kernel: Move non-gArgs chainparams functionality to kernel (DCG-Claude)

Pull request description:

  <!-- backportsys v1 -->
  > 🔎 **Needs a careful look.** Commits are ordered by how much they were adapted: 🔴 heavy first, then 🟡 light (at most two invented lines), then 🟢 faithful (identical to upstream apart from context).

  ## Issue being fixed or feature implemented

  Backports 1 Bitcoin Core v0.26 pull request(s) that the Dash queue selected, including any discovered prerequisites: bitcoin#26177.

  ## What was done?

  | upstream | commit | review | gates | notes |
  |---|---|---|---|---|
  | bitcoin#26177 | `d5fea03a6c` | 🔴 heavy | build:pass ci_upstream:pass mech:warn pick:pass tests:pass tree:pass verify:pass | This backports bitcoin#26177: CChainParams and Dash's Main/TestNet/DevNet/RegTest classes move into kernel/cha |

  Each commit keeps the upstream subject (`partial Merge …` only where a hunk is deferred to a prerequisite still to be backported, named in the commit body; a hunk Dash intentionally never wants is recorded in the commit body or the reviewer's note above and does not make the backport partial). Conflicts were resolved commit by commit; commits that needed no resolution were cherry-picked unchanged.

  ## How Has This Been Tested?

  Recorded per commit, at that commit's own sha, not once for the branch:

  - built at each commit, reusing the worktree build cache
  - the test suites touched by each diff run at that commit, where the diff selected one
  - a mechanical diff-of-diffs against the upstream patch (every upstream hunk present, no added line without an upstream counterpart, no Dash-specific line dropped)
  - an independent verification pass on 1 commit(s) that needed adaptation
  - fork gate PR thepastaclaw#64 at `d5fea03a6c` — **no passing CI record at this head**

  Gates that did not come back clean — please weigh these:

  - bitcoin#26177 `mech`: **warn** — 878 invented line(s); 194 Dash-feature line(s) removed; 6 partial/prereq/low-risk finding(s)

  ## Breaking Changes

  None beyond the upstream changes themselves.

  ## Checklist:

  _Left for the reviewer; backportsys does not tick boxes on its own behalf._

  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone

  ---

  ### Maintainer controls

  <!-- backportsys controls -->
  Tick a box and backportsys acts on it within a few minutes, then clears the box. For anything else — a hunk to drop, a resolution to redo, a question — just leave a review comment; nothing here needs a box.

  - [ ] 🔒 **Hands off** — stop every automated update to this branch <!-- bps:hands_off -->
  - [ ] 🔄 **Rebase** onto current `develop` <!-- bps:rebase -->
  - [ ] ❌ **Close** — abandon this batch and release its items <!-- bps:close -->

  <!-- /backportsys controls -->

  <!-- human notes below; the bot never edits this section -->

Top commit has no ACKs.

Tree-SHA512: d62000e84d48eaafd4bba81baf58f66fd075ba37e47c087743e44a96a793a8989c3388783ee5ab67c59951315496c09262ffcea0a555da57a776f9120c3d1109
@DCG-Claude

Copy link
Copy Markdown
Collaborator Author

merged as dashpay#7806

@DCG-Claude DCG-Claude closed this Oct 12, 2026
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