Skip to content

feat(foundations): update config for [04.2026] release#2083

Open
reveloper wants to merge 25 commits into
mainfrom
config-update
Open

feat(foundations): update config for [04.2026] release#2083
reveloper wants to merge 25 commits into
mainfrom
config-update

Conversation

@reveloper
Copy link
Copy Markdown
Collaborator

@reveloper reveloper commented Apr 14, 2026

Closes #2074.

Summary by CodeRabbit

  • Documentation
    • Expanded Param 29 docs to note its constructor evolution and new consensus fields, and added on-chain TL-B schema for multiple consensus config versions.
    • Added full Param 30: consensus extension section (gated by v2026.03 testnet / v2026.04 mainnet), documenting simplex config variants, fallback semantics to pre-2.0 catchain config, and an extensible noncritical_params map with encoding rules.
    • Included a table of recognized noncritical param IDs (0–14) and mainnet defaults (only 0, 1, 13 set).

Review Change Stack

@reveloper reveloper requested a review from a team as a code owner April 14, 2026 06:13
@reveloper reveloper marked this pull request as draft April 14, 2026 06:13
@github-actions

This comment has been minimized.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 14, 2026

Warning

Rate limit exceeded

@reveloper has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 59 minutes and 2 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b2cedb0c-f543-4fd4-bfc3-49b5959c8a7d

📥 Commits

Reviewing files that changed from the base of the PR and between 751a0e4 and 388d3cf.

📒 Files selected for processing (1)
  • foundations/config.mdx
📝 Walkthrough

Walkthrough

Expanded Param 29 with consensus_config_v4 details and added a new Param 30 section documenting TL‑B schemas for simplex_config constructors, TON release gating, optional mc/shard ref semantics, and a 0–14 noncritical_params table with encodings and defaults.

Changes

Param 29 and 30 documentation

Layer / File(s) Summary
Param 29 description
foundations/config.mdx
Updates Param 29 text describing consensus_config_v4#d9, including use_quic: Bool and catchain_max_blocks_coeff:uint32.
Param 29 on-chain schema
foundations/config.mdx
Adds TL‑B constructors for consensus_config#d6, consensus_config_new#d7, consensus_config_v3#d8, and consensus_config_v4#d9; clarifies use_quic meaning across Params.
Param 30: Consensus extension
foundations/config.mdx
New section gated by TON v2026.03/v2026.04; TL‑B for simplex_config#21, simplex_config_v2#22, new_consensus_config_all#10; explains optional mc/shard refs and noncritical_params HashmapE(8,uint32) with IDs 0–14, defaults, and encoding rules.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through docs with a cheerful sound,
Param twenty-nine and thirty newly found,
Schemas and tables in tidy array,
TON's consensus readies for the day,
A curious nibble, then a joyful bound.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating configuration documentation for the April 2026 release, matching the PR's primary objective.
Linked Issues check ✅ Passed The PR successfully addresses both linked issue #2074 requirements: adds documentation for Config 30 (new section for Param 30) and documents consensus_config_v4 changes with TL-B schema.
Out of Scope Changes check ✅ Passed All changes are in-scope: the documentation additions to foundations/config.mdx directly address the requirements to document Config 30 and consensus_config_v4 changes from the 04.2026 release.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch config-update

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

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thanks for the updates to foundations/config.mdx: I have a couple of suggestions to tighten the Aside usage and sentence spacing; please apply the inline suggestions.

Comment thread foundations/config.mdx
Comment thread foundations/config.mdx Outdated
@mintlify
Copy link
Copy Markdown

mintlify Bot commented Apr 14, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
mintlify-ton-docs 🟢 Ready View Preview Apr 14, 2026, 6:23 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

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

♻️ Duplicate comments (2)
foundations/config.mdx (2)

467-469: ⚠️ Potential issue | 🟠 Major

Use the required Aside prop format consistently.

This section mixes <Aside> (no type) and <Aside caution>. If Aside requires a type prop, both should be normalized to type="note" / type="caution" to avoid inconsistent rendering.

Suggested fix
-<Aside>
+<Aside type="note">
   Introduced with [TON v2026.04](https://github.com/ton-blockchain/ton/releases/tag/v2026.04) update.
 </Aside>
...
-<Aside caution>
+<Aside type="caution">
   `simplex_config#21` unused, scheduled for removal
 </Aside>

Also applies to: 496-498

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@foundations/config.mdx` around lines 467 - 469, The Asides in this section
use mixed syntax ("<Aside>" and "<Aside caution>") which causes inconsistent
rendering; update all Aside usages (including the occurrence around lines noted
and the other occurrence at 496-498) to the explicit prop form by changing
"<Aside>" to "<Aside type=\"note\">" and "<Aside caution>" to "<Aside
type=\"caution\">", ensuring every Aside uses a type prop consistently and
matches the required component API.

471-471: ⚠️ Potential issue | 🟡 Minor

Add the missing space between sentences.

There is no space after the closing parenthesis before `ConfigParam 30`, which hurts readability.

Suggested fix
-This parameter carries per-workchain configuration for the Catchain 2.0 consensus path ([Simplex](https://github.com/ton-blockchain/simplex-docs/blob/main/Simplex.md)).`ConfigParam 30` does not fully replace `ConfigParam 29`. At runtime, the node still copies `max_block_size` and `max_collated_data_size` from `ConfigParam 29` into `ton::NewConsensusConfig`.
+This parameter carries per-workchain configuration for the Catchain 2.0 consensus path ([Simplex](https://github.com/ton-blockchain/simplex-docs/blob/main/Simplex.md)). `ConfigParam 30` does not fully replace `ConfigParam 29`. At runtime, the node still copies `max_block_size` and `max_collated_data_size` from `ConfigParam 29` into `ton::NewConsensusConfig`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@foundations/config.mdx` at line 471, The sentence in the documentation is
missing a space after the closing parenthesis before `ConfigParam 30`; update
the text around the mention of Catchain 2.0 (Simplex) so there is a space
between the closing parenthesis and the inline code token `ConfigParam 30`,
ensuring the sentence reads "... Simplex). `ConfigParam 30` ..." and preserving
the rest of the sentence that references `ConfigParam 29` and
`ton::NewConsensusConfig`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@foundations/config.mdx`:
- Line 529: Replace the forbidden lowercase term "id"/"Id" with the allowed
uppercase "ID" consistently in the prose and table headers where the schema
mentions parameter identifiers—specifically update the `noncritical_params`
table row (currently "`noncritical_params` | `HashmapE 8 uint32` | Sparse map
from parameter id to raw 32-bit value") and the other occurrences noted (lines
referencing parameter id at 533, 551, 586) so they read "ID" (e.g., "parameter
ID" and table header "ID") while preserving surrounding text and types like
`HashmapE 8 uint32`.

---

Duplicate comments:
In `@foundations/config.mdx`:
- Around line 467-469: The Asides in this section use mixed syntax ("<Aside>"
and "<Aside caution>") which causes inconsistent rendering; update all Aside
usages (including the occurrence around lines noted and the other occurrence at
496-498) to the explicit prop form by changing "<Aside>" to "<Aside
type=\"note\">" and "<Aside caution>" to "<Aside type=\"caution\">", ensuring
every Aside uses a type prop consistently and matches the required component
API.
- Line 471: The sentence in the documentation is missing a space after the
closing parenthesis before `ConfigParam 30`; update the text around the mention
of Catchain 2.0 (Simplex) so there is a space between the closing parenthesis
and the inline code token `ConfigParam 30`, ensuring the sentence reads "...
Simplex). `ConfigParam 30` ..." and preserving the rest of the sentence that
references `ConfigParam 29` and `ton::NewConsensusConfig`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 07566784-21b4-4dfa-8291-aada627ca4ce

📥 Commits

Reviewing files that changed from the base of the PR and between 8a79136 and 88e9d67.

📒 Files selected for processing (1)
  • foundations/config.mdx

Comment thread foundations/config.mdx Outdated
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions

This comment has been minimized.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions

This comment has been minimized.

@novusnota novusnota changed the title feat(foundation): Update config for [04.2026] release feat(foundations): update config for [04.2026] release Apr 14, 2026
Copy link
Copy Markdown
Collaborator

@novusnota novusnota left a comment

Choose a reason for hiding this comment

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

fact-checking...

@novusnota novusnota marked this pull request as ready for review April 14, 2026 19:00
@novusnota novusnota requested a review from Kaladin13 April 14, 2026 19:00
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.

🧹 Nitpick comments (2)
foundations/config.mdx (2)

510-518: Consider removing the duplicated simplex_config_v2#22 TL-B block.

The same constructor is already shown in Line 484–Line 488. Keeping only one canonical snippet reduces maintenance drift.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@foundations/config.mdx` around lines 510 - 518, The file contains a
duplicated TL-B block for the constructor simplex_config_v2#22 (showing
flags:(## 7), use_quic, slots_per_leader_window, noncritical_params:(HashmapE 8
uint32) = NewConsensusConfig); remove the redundant copy so only the canonical
simplex_config_v2#22 snippet remains (keep the first/most complete occurrence
and delete the later duplicate), and ensure any surrounding references still
point to the retained block.

471-471: Prefer a pinned Simplex spec link instead of main.

For release documentation, linking to main can drift over time. Consider linking to a tagged release or commit SHA to keep April 2026 docs stable.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@foundations/config.mdx` at line 471, The docs link to the Simplex spec
currently pointing at the repo "main" branch—replace that mutable URL with a
pinned release tag or specific commit SHA so the April 2026 docs remain stable;
locate the markdown line referencing the Simplex URL (the anchor text "Simplex"
in foundations/config.mdx) and update the href to a release-tagged URL or commit
permalink, keeping the link text unchanged and optionally adding the tag/commit
in parentheses for clarity.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@foundations/config.mdx`:
- Around line 510-518: The file contains a duplicated TL-B block for the
constructor simplex_config_v2#22 (showing flags:(## 7), use_quic,
slots_per_leader_window, noncritical_params:(HashmapE 8 uint32) =
NewConsensusConfig); remove the redundant copy so only the canonical
simplex_config_v2#22 snippet remains (keep the first/most complete occurrence
and delete the later duplicate), and ensure any surrounding references still
point to the retained block.
- Line 471: The docs link to the Simplex spec currently pointing at the repo
"main" branch—replace that mutable URL with a pinned release tag or specific
commit SHA so the April 2026 docs remain stable; locate the markdown line
referencing the Simplex URL (the anchor text "Simplex" in
foundations/config.mdx) and update the href to a release-tagged URL or commit
permalink, keeping the link text unchanged and optionally adding the tag/commit
in parentheses for clarity.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9b7bf207-e7ed-47fa-bd4e-844dd94dae05

📥 Commits

Reviewing files that changed from the base of the PR and between 88e9d67 and 22c529f.

📒 Files selected for processing (1)
  • foundations/config.mdx

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thanks for the updates to foundations/config.mdx: there’s one inline suggestion to improve clarity and consistency in the QUIC configuration description, so please apply the inline suggestion.

Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx Outdated
@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thanks for the careful work on foundations/config.mdx: I’ve left a couple of suggestions there, please apply the inline suggestions to tighten the consensus configuration documentation.

Comment thread foundations/config.mdx
Comment thread foundations/config.mdx
@reveloper
Copy link
Copy Markdown
Collaborator Author

@delovoyhomie, ready for review.

Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx
- `slots_per_leader_window`: Number of consecutive slots assigned to one leader. Set to **4** in mainnet.
- `noncritical_params`: A `HashmapE 8 uint32` map from parameter IDs to raw 32-bit values.

Inherited from [Param 29](https://tonviewer.com/config#29):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this link points at tonviewer's #29 anchor, but in the param 30 intro (line 515) the same reference uses the internal anchor [ConfigParam 29](/foundations/config#param-29-consensus-config)

should we keep them consistent? @reveloper the internal anchor is also what the style guide prefers for cross-page references (see links)

Suggested change
Inherited from [Param 29](https://tonviewer.com/config#29):
Inherited from [Param 29](/foundations/config#param-29-consensus-config):

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I think, in this context better to highlight parsed values. In the original text, it was so(they were just printed); that's why I added a direct link to the Tonviewer-parsed values.
For me, consistency here works like this, since the current value will not be visible with one click.

Do you think we should redirect this to an internal anchor?

Comment thread foundations/config.mdx
`consensus_config_v4#d9` was introduced together with the [Catchain 2.0 / Simplex](https://github.com/ton-blockchain/simplex-docs/blob/main/Simplex.md) migration tracked by [Param 30](#param-30-consensus-extension). The `use_quic` toggle in Param 29 controls the transport for the legacy Catchain path; the `use_quic` toggle in Param 30 controls the transport for the new Simplex path. They are configured independently.
</Aside>

[Parameter #29 on mainnet](https://tonviewer.com/config#29)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

small dup: the same Parameter #29 on mainnet link already shows up at line 467 (For up-to-date values, see [Parameter #29 on mainnet](...)), so this trailing standalone link is redundant after the rewrite. probably it makes sense to drop one of them?

Suggested change
[Parameter #29 on mainnet](https://tonviewer.com/config#29)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

That's fair if we consider Parameter #29 inside, but is it fine to break the pattern for the entire config document, where you aligned the link as the last row in every single Parameter chapter?
Probably, during skimming, the user may expect to find this link at the end of the chapter, according to others.

The only thing is that I probably place such links for the entire document at the beginning of every Param chapter.

Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx Outdated
Comment thread foundations/config.mdx
Comment on lines +528 to +532
simplex_config_v2#22 flags:(## 7)
use_quic:Bool
slots_per_leader_window:uint32
noncritical_params:(HashmapE 8 uint32)
= NewConsensusConfig;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

small but worth double-checking against the upstream block.tlb at v2026.04 line 782: consensus_config_v4#d9 (line 492 here) has flags:(## 6) { flags = 0 }, while both simplex_config#21 and simplex_config_v2#22 have flags:(## 7) with no { flags = 0 } constraint. is that intentional, or did the flags = 0 predicate just get dropped in the copy? if the upstream schema does require flags = 0 for the simplex configs too, we should keep it here for reviewers who use this page as the spec reference

Copy link
Copy Markdown
Collaborator Author

@reveloper reveloper May 18, 2026

Choose a reason for hiding this comment

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

There are not mistake here, this is correpsponds to block.tlb content.

In the ConfigParam 29:

consensus_config_new#d7 flags:(## 7) { flags = 0 }

In the ConfigParam 30:

simplex_config#21 flags:(## 7) use_quic:Bool

@reveloper
Copy link
Copy Markdown
Collaborator Author

Thank you for the review. I'll address the comments during the next week.

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.

🧹 Nitpick comments (1)
foundations/config.mdx (1)

465-465: ⚡ Quick win

Pin this normative reference to a versioned tag.

Line 465 links catchain-dos.md on master, which can drift over time. Please pin it to the same release tag style used in this section (for example v2026.04) to keep the documentation reproducible.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@foundations/config.mdx` at line 465, The link to catchain-dos.md currently
points at master and must be pinned to the release tag used in this section;
update the URL in the `catchain_max_blocks_coeff` line so the GitHub path
references the same version tag (e.g. replace the master branch segment with the
section's tag like `v2026.04`) to ensure the normative reference is versioned
and reproducible.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@foundations/config.mdx`:
- Line 465: The link to catchain-dos.md currently points at master and must be
pinned to the release tag used in this section; update the URL in the
`catchain_max_blocks_coeff` line so the GitHub path references the same version
tag (e.g. replace the master branch segment with the section's tag like
`v2026.04`) to ensure the normative reference is versioned and reproducible.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 216e6aa9-6f08-4094-9c87-dae0a173770b

📥 Commits

Reviewing files that changed from the base of the PR and between e561d74 and 751a0e4.

📒 Files selected for processing (1)
  • foundations/config.mdx

reveloper and others added 2 commits May 18, 2026 19:34
Co-authored-by: Slava Yakimenko <92427892+delovoyhomie@users.noreply.github.com>
Co-authored-by: Slava Yakimenko <92427892+delovoyhomie@users.noreply.github.com>
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.

[Foundations > Config and limits] Update config for [04.2026] release

3 participants