-
Notifications
You must be signed in to change notification settings - Fork 0
add consensus doc #475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
add consensus doc #475
Conversation
Thanks for the substantial update to ton/consensus.mdx. I found a few clarity and style items plus one terminology inconsistency to address before this merges cleanly. Findings (14)High (1)[HIGH] “three-phase commit” contradicts five-step listLocation: mintlify-ton-docs/ton/consensus.mdx Lines 85 to 91 in bc9f46b
Description: Suggestion: -BCP is structured as a **three-phase commit**:
+BCP is structured as a five‑step flow: Medium (10)Click to expand[MEDIUM] Fenced code blocks lack required language tagsLocation: mintlify-ton-docs/ton/consensus.mdx Lines 29 to 32 in bc9f46b
Description: Suggestion: --- a/ton/consensus.mdx
+++ b/ton/consensus.mdx
@@
-```
+```text
f < n/3
q ≥ 2n/3 @@
@@
[MEDIUM] Headings are not in sentence caseLocation: mintlify-ton-docs/ton/consensus.mdx Lines 19 to 21 in bc9f46b
Description: Suggestion: -## Consensus Model
-### Byzantine Fault Tolerance
-## Catchain Protocol
-## Block Consensus Protocol (BCP)
-## Rounds and Attempts
-## Validator Elections
-## Incentives and Penalties
-## Validator Guidelines
-## Extended Fault Tolerance Analysis
+## Consensus model
+### Byzantine fault tolerance
+## Catchain protocol
+## Block consensus protocol (BCP)
+## Rounds and attempts
+## Validator elections
+## Incentives and penalties
+## Validator guidelines
+## Extended fault tolerance analysis [MEDIUM] Generic “Introduction” heading should be specificLocation: mintlify-ton-docs/ton/consensus.mdx Line 6 in bc9f46b
Description: Suggestion: -## Introduction
+## Overview [MEDIUM] Code identifiers not formatted in code fontLocation: mintlify-ton-docs/ton/consensus.mdx Lines 90 to 91 in bc9f46b
Description: Suggestion: -4. **PreCommit** – once ≥ `q` votes are collected, validators broadcast PreCommit.
-5. **Commit** – once ≥ `q` PreCommits are observed, validators issue CommitSign and the block is finalized.
+4. **PreCommit** – once ≥ `q` votes are collected, validators broadcast `PreCommit`.
+5. **Commit** – once ≥ `q` `PreCommit` messages are observed, validators issue `CommitSign` and the block is finalized.
@@
-- - Finalization requires ≥ `2n/3` CommitSigns.
+- - Finalization requires ≥ `2n/3` `CommitSign` messages. [MEDIUM] TON-specific chain names use non-canonical casingLocation: mintlify-ton-docs/ton/consensus.mdx Lines 148 to 149 in bc9f46b
Description: Suggestion: -### Set sizes
-- **Masterchain** – ~100 validators.
-- **Shardchains** – ~23 validators each.
+### Set sizes
+- **MasterChain** — ~100 validators.
+- **ShardChain** — ~23 validators each.
@@
- - ~1.7 TON per masterchain block.
- - ~1 TON per shardchain block.
+ - ~1.7 TON per MasterChain block.
+ - ~1 TON per ShardChain block. [MEDIUM] Inconsistent and non‑SI time units (“seconds” vs “s”; missing space)Location: mintlify-ton-docs/ton/consensus.mdx Line 15 in bc9f46b
Description: Suggestion: -This separation allows TON to finalize blocks in **3–6 seconds** with **hundreds of validators** across the globe.
+This separation allows TON to finalize blocks in **3–6 s** with **hundreds of validators** across the globe. -Block latency is typically **3–6s**, bounded by attempt timers.
+Block latency is typically **3–6 s**, bounded by attempt timers. [MEDIUM] Words instead of numerals for a technical quantityLocation: mintlify-ton-docs/ton/consensus.mdx Line 8 in bc9f46b
Description: Suggestion: -...security against up to one-third malicious validators**.
+...security against up to 1/3 malicious validators**. [MEDIUM] Non‑standard numeric shorthand without separatorsLocation: mintlify-ton-docs/ton/consensus.mdx Lines 143 to 145 in bc9f46b
Description: Suggestion: -If the smallest validator stakes 100k TON, then:
-- The largest counted stake = 300k TON.
-- A validator staking 1M TON still only contributes 300k TON effectively.
+If the smallest validator stakes 100,000 TON, then:
+- The largest counted stake = 300,000 TON.
+- A validator staking 1,000,000 TON still only contributes 300,000 TON effectively. [MEDIUM] Non‑ISO date formatLocation: mintlify-ton-docs/ton/consensus.mdx Line 166 in bc9f46b
Description: Suggestion: -- Since June 2023, part of the subsidy is burned, introducing deflationary pressure as usage grows.
+- Since 2023-06, part of the subsidy is burned, introducing deflationary pressure as usage grows. [MEDIUM] Promotional tone in closing sentenceLocation: mintlify-ton-docs/ton/consensus.mdx Line 225 in bc9f46b
Description: Suggestion: -This architecture enables TON to deliver **fast finality, decentralization, and strong BFT guarantees** at global scale.
+This architecture finalizes blocks in 3–6 seconds and preserves Byzantine fault tolerance with a decentralized validator set. Low (3)Click to expand[LOW] Mid-sentence capitalization and missing hyphen in “Byzantine Fault Tolerant”Location: mintlify-ton-docs/ton/consensus.mdx Line 8 in bc9f46b
Description: Suggestion: -The TON Blockchain achieves consensus through a layered Byzantine Fault Tolerant (BFT) protocol designed for **high throughput, low latency, and security against up to one-third malicious validators**.
+The TON Blockchain achieves consensus through a layered Byzantine fault-tolerant (BFT) protocol designed for **high throughput, low latency, and security against up to one-third malicious validators**. [LOW] Vague quantity “hundreds of validators”Location: mintlify-ton-docs/ton/consensus.mdx Line 15 in bc9f46b
Description: Suggestion: -This separation allows TON to finalize blocks in **3–6 seconds** with **hundreds of validators** across the globe.
+This separation allows TON to finalize blocks in **3–6 seconds** with a decentralized validator set. [LOW] List punctuation inconsistent for non‑sentence itemsLocation: mintlify-ton-docs/ton/consensus.mdx Lines 156 to 161 in bc9f46b
Description: Suggestion: -- **Transaction fees** (gas costs).
- - ~1.7 TON per MasterChain block.
- - ~1 TON per ShardChain block.
+- **Transaction fees** (gas costs)
+ - ~1.7 TON per MasterChain block
+ - ~1 TON per ShardChain block |
To fix the formatting issues:
npx remark -o --quiet --silently-ignore ton/consensus.mdx |
To fix the formatting issues:
npx remark -o --quiet --silently-ignore ton/consensus.mdx |
@laviniat1996 please add "closes #..." to your original post, so we know which task this PR is solving |
Added link to issue |
To fix the formatting issues:
npx remark -o --quiet --silently-ignore ton/consensus.mdx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be AI generated.
|
||
--- | ||
|
||
## Summary |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it have a summary?
This PR adds an indepth doc about how consensus works in TON. The doc still needs improvements, but it is in good shape to be added as it is.
Closes: #171