Skip to content

feat(dashmate): add Tenderdash 1.6 allowlistOnly option#3067

Merged
lklimek merged 6 commits into
v3.1-devfrom
feat/dashmate-td-allowlistOnly
Feb 9, 2026
Merged

feat(dashmate): add Tenderdash 1.6 allowlistOnly option#3067
lklimek merged 6 commits into
v3.1-devfrom
feat/dashmate-td-allowlistOnly

Conversation

@lklimek
Copy link
Copy Markdown
Contributor

@lklimek lklimek commented Feb 6, 2026

Issue being fixed or feature implemented

Add dashmate support for Tenderdash PR #1248 (P2P allowlist-only mode) and update default Tenderdash image to 1.6-dev so configs can use the new feature.

What was done?

  • Added platform.drive.tenderdash.p2p.allowlistOnly to base defaults and schema.
  • Rendered allowlist-only in Tenderdash config.toml template.
  • Documented the new option in Tenderdash config docs.
  • Added migration to backfill allowlistOnly and update platform.drive.tenderdash.docker.image to the new default.
  • Updated base default Tenderdash image tag to dashpay/tenderdash:1.6-dev.

How Has This Been Tested?

Not run locally.

Breaking Changes

None.

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/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

If you want, I can tailor the “Issue” section to a specific ticket or add test details if you run any.

Summary by CodeRabbit

  • New Features

    • Updated Tenderdash Docker image to dashpay/tenderdash:1.6-dev.1
    • Added P2P allowlistOnly toggle (default: false) and new P2P tuning params: recvRate, maxConnections, maxOutgoingConnections
  • Chores

    • Added automated migrations to set dashd Docker image to dashpay/dashd:23 and align configs with the new Tenderdash image and allowlist setting
  • Documentation

    • Documented the new P2P allowlist option and examples

@github-actions github-actions Bot added this to the v3.1.0 milestone Feb 6, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 6, 2026

📝 Walkthrough

Walkthrough

Updated tenderdash defaults (image and p2p parameters including new required allowlistOnly), added JSON schema and docs for allowlistOnly, and introduced config-file migrations (3.0.1 and 3.1.0) to set a dashd image and to populate tenderdash image and allowlistOnly from defaults when missing.

Changes

Cohort / File(s) Summary
Tenderdash defaults & p2p params
packages/dashmate/configs/defaults/getBaseConfigFactory.js
Bumped tenderdash docker image to dashpay/tenderdash:1.6-dev.1; added platform.drive.tenderdash.p2p.allowlistOnly: false and p2p params recvRate: 5120000, maxConnections: 64, maxOutgoingConnections: 30 (existing sendRate/other fields retained).
Config migrations
packages/dashmate/configs/getConfigFileMigrationsFactory.js
Added migration 3.0.1 to set options.core.docker.image to dashpay/dashd:23; added/updated 3.1.0 to copy tenderdash docker image from defaults and to set platform.drive.tenderdash.p2p.allowlistOnly from defaults when undefined.
JSON schema
packages/dashmate/src/config/configJsonSchema.js
Added boolean allowlistOnly to tenderdash.p2p schema and included it in the schema's required fields.
Documentation
packages/dashmate/docs/config/tenderdash.md
Documented platform.drive.tenderdash.p2p.allowlistOnly with description "Only allow peers from persistentPeers and seeds", default false, and example true.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through configs, neat and spry,
A tiny flag to filter peers nearby,
Images nudged up, migrations set to mend,
Schema and docs now hop in step, my friend,
Nibble, patch, and off I hie — a joyful little sigh.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'feat(dashmate): add Tenderdash 1.6 allowlistOnly option' accurately and specifically describes the main change: adding support for the allowlistOnly configuration option in Tenderdash 1.6, which is evident across the code changes.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/dashmate-td-allowlistOnly

No actionable comments were generated in the recent review. 🎉


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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/dashmate/src/config/configJsonSchema.js`:
- Around line 1076-1078: The schema defines tenderdash.p2p.allowlistOnly but it
is missing from the tenderdash.p2p.required array; update the JSON Schema by
adding "allowlistOnly" to the required array for tenderdash.p2p so the property
is treated consistently with other p2p fields (locate the tenderdash.p2p object
and its required array near the existing properties and include the string
"allowlistOnly" there).
🧹 Nitpick comments (2)
packages/dashmate/configs/defaults/getBaseConfigFactory.js (1)

344-348: Indentation: image should be nested inside docker.

Line 347's image property is at the same indentation level as docker on Line 346, rather than being indented 2 spaces inside the docker: { } block. While JavaScript doesn't enforce indentation in object literals, this inconsistency hurts readability and violates the 2-space indent guideline.

🔧 Fix indentation
-            tenderdash: {
-              mode: 'full',
-              docker: {
-              image: 'dashpay/tenderdash:1.6-dev',
-              },
+            tenderdash: {
+              mode: 'full',
+              docker: {
+                image: 'dashpay/tenderdash:1.6-dev',
+              },

As per coding guidelines, **/*.{js,jsx,ts,tsx}: Use 2-space indent for JS/TS files.

packages/dashmate/configs/getConfigFileMigrationsFactory.js (1)

1401-1420: Migration logic follows established patterns — LGTM.

The optional chaining guards, typeof === 'undefined' check, and getDefaultConfigByNameOrGroup usage are all consistent with existing migrations in this file.

One note: the migration key is '3.1.0' (a release version), but the PR targets v3.1-dev and the Tenderdash image is 1.6-dev. Other in-development migrations use a -dev.N suffix (e.g., '2.1.0-dev.1'). If more migrations are expected before the 3.1.0 release, consider renaming this to '3.1.0-dev.1' to leave room for additional ordered migrations.

Comment thread packages/dashmate/src/config/configJsonSchema.js
shumkov
shumkov previously approved these changes Feb 8, 2026
QuantumExplorer
QuantumExplorer previously approved these changes Feb 9, 2026
@lklimek lklimek dismissed stale reviews from QuantumExplorer and shumkov via 24e88c0 February 9, 2026 12:15
@lklimek lklimek merged commit 5c589c5 into v3.1-dev Feb 9, 2026
23 of 24 checks passed
@lklimek lklimek deleted the feat/dashmate-td-allowlistOnly branch February 9, 2026 17:11
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.

3 participants