Skip to content

params%feat!: drop runtime policy fields, sync params with Dash Core v24.0.0-rc.5 - #100

Merged
kwvg merged 3 commits into
developfrom
pasta/params-rc5
Nov 1, 2026
Merged

kwvg merged 3 commits into
developfrom
pasta/params-rc5

Conversation

@PastaPastaPasta

@PastaPastaPasta PastaPastaPasta commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Motivation

The network tables in dash-params follow the reference implementation at v24.0.0-rc.3. v24.0.0-rc.5 schedules the v24 and evo_shares deployments on mainnet from 9 November 2026, and refreshes the mainnet and testnet sync data.

This pull request moves the tables to rc.5, with one commit per reference pull request. It first drops the fields that are a node's runtime policy rather than parameters of the chain, so the rc.5 changes to pruning and to the assumed chain size do not apply.

Additional Information

Description Notes Reference implementation Corpus
Drop the runtime-policy fields of ChainParams prune_after_height, assumed_blockchain_size_gb, assumed_chain_state_size_gb, default_consistency_checks and is_mockable_chain set how a node prunes, sizes its disk and checks or mocks its own state. The stateless SDK has no use for them. none none
Schedule v24 and evo_shares on mainnet per dashpay/dash#7973 Both start at 1794182400 (9 November 2026) and time out at 1857340800 (9 November 2028). Bits, window, thresholds and falloff are unchanged. deployments chainparams.json5 deployments.main
Mainnet sync data per dashpay/dash#7980 The minimum chain work, the assumed-valid block and a new checkpoint, all at height 2563000. Also the transaction statistics. chain work, checkpoint, statistics none
Testnet sync data per dashpay/dash#7980 The same fields at height 1550000. chain work, checkpoint, statistics none

chainparams.json5 was regenerated with the recipe in its header: dashd and dash-cli from the official v24.0.0-rc.5 release, each chain on an empty data directory with no connections. Only the header line and the mainnet v24 and evo_shares entries change, so the corpus moves in the second commit. The values without a corpus come from the reference implementation's chain parameters at the lines linked above.

Breaking Changes

  • dash-params: ChainParams drops prune_after_height, assumed_blockchain_size_gb, assumed_chain_state_size_gb, default_consistency_checks and is_mockable_chain, so struct literals and patterns that name them must drop them.

CI (just test lint fuzz::test, CodeQL included) is green on each commit.

Checklist

  • 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 tests
  • I have made corresponding changes to the documentation
  • I did not use agentic assistance (i.e. LLMs, AI) except as disclosed and can answer questions,
    comments and concerns without said assistance. I assume authorship of the code submitted.
  • I have assigned this pull request to a milestone (for repository code-owners and collaborators only)

Agent disclosure

Code, commit messages and this description were generated with Claude Code using Claude Opus 5.5, running autonomously as an agent on behalf of the author. The agent also regenerated chainparams.json5 from the official v24.0.0-rc.5 release. The change was reviewed by a Claude Code agent using Opus 5.5 and a Codex agent using GPT-6.1.

🤖 Generated with Claude Code

@PastaPastaPasta PastaPastaPasta added this to the 0.3 milestone Oct 31, 2026
@PastaPastaPasta
PastaPastaPasta requested a review from kwvg October 31, 2026 20:10
@coderabbitai

coderabbitai Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Summary

Summary by CodeRabbit

  • Updates
    • Mainnet protocol activation windows are scheduled for November 2026 and November 2028.
    • Mainnet and testnet network parameters have been updated, including validation checkpoints, chain-work settings, and transaction data.
    • Chain parameters no longer specify pruning thresholds or assumed blockchain and chain-state sizes.

ChainParams no longer declares five runtime-policy fields. Mainnet and regtest initializers remove those fields. Mainnet and testnet parameters also receive updated deployment times, chain work, assumed-valid hashes, transaction statistics, and checkpoints.

Suggested reviewers: kwvg

Merge Risk: Minimal · up to fb236

No concrete merge-blocking risk was established.

Pre-merge checks: Passed 4
Check name Status Explanation
Description check Passed The description directly explains the network table updates, removed runtime-policy fields, refreshed sync data, deployment schedules, breaking changes, and validation performed.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly identifies the main changes: removal of runtime policy fields and synchronization with Dash Core v24.0.0-rc.5.
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@thepastaclaw

thepastaclaw commented Oct 31, 2026 •

Copy link
Copy Markdown

🕓 Review not started yet because the new head is waiting for the 30-minute push debounce.

  • Request normal review — click when the PR is ready for review.
  • Request priority review — click to move this review to the front of the queue.

Commit fb236ea. Normal review starts when eligible; priority review starts as soon as a slot is available.

@github-actions github-actions Bot added the status:behind This pull request can be rebased on the base branch. label Oct 31, 2026
@github-actions

Copy link
Copy Markdown

Note

This pull request has no conflicts! 🎊 🎉 🎊

@codecov

codecov Bot commented Oct 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Final validation — Phase 1 + Phase 2

Verified the complete change range at e1a74f4 against Dash Core v24.0.0-rc.5: the deployment schedules, synchronization data, checkpoints, and pruning parameters match the reference implementation, with no actionable defects found. The deployment corpus assertions cover the newly scheduled mainnet entries, and the public-field API break is explicitly disclosed. This was a static review with no local builds or tests; current CI reports no failed checks, with lint and stable-platform builds passing while several MSRV jobs and the x86_64 Linux/Windows cross-builds remain pending.

Review provenance

Source: reviewer 1: glm-5.3-flash (agent: phase1-reviewer, role: general); reviewer 2: gpt-6.1-sol (agent: phase2-reviewer, role: general); reviewer 3: gpt-6.1-sol (agent: phase2-reviewer, role: security-auditor); final verifier: gpt-6.1-sol (agent: sol-verifier, role: final-verifier)

  • Triage: low by gpt-6.1-sol (effort low) — The diff is a small, contained update to network constants and a public parameter field whose correctness can be checked directly against the pinned reference implementation.
  • Phase 1 reviewers: glm-5.3-flash — general (completed, effort high); agent phase1-reviewer
  • Phase 1 model: glm-5.3-flash — zai quota: 5h 100% left, weekly 69% left; passed over gemini-3.8-flash-high (antigravity quota lookup failed)
  • Fresh verifier: gpt-6.1-sol — final-verifier; agent sol-verifier
  • Phase 2 reviewers: gpt-6.1-sol — general (completed, effort medium); agent phase2-reviewer, gpt-6.1-sol — security-auditor (completed, effort medium); agent phase2-reviewer

Pruning, disk-size estimates, consistency checks and mockable chains
are a node's runtime policy, not parameters of the chain.
Both start at 1794182400 (9 November 2026) and time out at 1857340800
(9 November 2028). The RPC corpus is recaptured at v24.0.0-rc.5.
Mainnet and testnet get the new minimum chain work, assumed-valid block,
checkpoint and transaction statistics.
@PastaPastaPasta

Copy link
Copy Markdown
Member Author

Agreed: base-sdk will keep only stateless chain parameters, meaning consensus, network identity and wire format. #104 and #105 are closed. LlmqParams::keep_old_connections, keep_old_keys and recovery_members look like node policy too; I can drop them in a follow-up if you want.


🤖 Posted autonomously by Claude on behalf of pasta.

@PastaPastaPasta
PastaPastaPasta requested a review from kwvg November 1, 2026 09:21

@kwvg kwvg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Observing the stack (base-sdk#106) is worrying in how many stateful elements and tuning parameters are being introduced far outside the SDK's scope, just make this one change and the rest of this PR is fine.

Comment thread pkgs/params/src/chain.rs Resolved

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Additional comments: 1
pkgs/params/CHANGELOG.md-14-15: 1

14-15: Minor · Data Integrity & Integration · Quick win

Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.

Add migration guidance for the removed fields.

Callers that read these fields will no longer compile. Explain that callers must maintain their own node-policy values and obtain network-specific defaults from Dash Core. (raw.githubusercontent.com)

Based on learnings, breaking public API changes require a migration path.

Source: Learnings


Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between e1a74f4 and fb236ea.

Files ignored due to path filters: 1
  • pkgs/params/corpus/chainparams.json5 is excluded by !**/*.json5
Files selected for processing: 5
  • pkgs/params/CHANGELOG.md
  • pkgs/params/src/chain.rs
  • pkgs/params/src/params/mainnet.rs
  • pkgs/params/src/params/regtest.rs
  • pkgs/params/src/params/test3.rs
Files with no reviewable changes: 2
  • pkgs/params/src/params/regtest.rs
  • pkgs/params/src/chain.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@kwvg kwvg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

utACK fb236ea

@kwvg kwvg changed the title params%feat!: move the network tables to v24.0.0-rc.5 params%feat!: drop runtime policy fields, sync params with Dash Core v24.0.0-rc.5 Nov 1, 2026
@kwvg
kwvg merged commit a3b5ea7 into develop Nov 1, 2026
49 checks passed
@kwvg
kwvg deleted the pasta/params-rc5 branch November 1, 2026 09:46
PastaPastaPasta added a commit to PastaPastaPasta/base-sdk that referenced this pull request Nov 4, 2026
Takes dashpay#100 dashpay#88 dashpay#108 dashpay#107 dashpay#111 dashpay#110 dashpay#112 dashpay#115 dashpay#114 dashpay#101. ChainSetup keeps
the DEC-1043 policy fields; the BS11 BLS wrappers, i64 TxOut values and
MAX_SER_SIZE payload bound stay for Core parity.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:behind This pull request can be rebased on the base branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants