-
Notifications
You must be signed in to change notification settings - Fork 57
add sequencing section #497
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
Conversation
Note Reviews pausedUse the following commands to manage reviews:
WalkthroughThe pull request introduces several enhancements to the VitePress site configuration and associated documentation. A new "Sequencing" section is added to the sidebar, featuring sub-items for various tutorials. Additionally, new sections are created in several tutorial markdown files, including "Astria Sequencing," "Based Sequencing," and "Forced Inclusion," with placeholder content. A new documentation file for a centralized sequencer is also introduced, detailing its functionality and configuration. Lastly, comprehensive TOML configuration files for the Celestia light client and CometBFT application are added, defining various operational parameters. Changes
Possibly related PRs
Suggested reviewers
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
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.
Actionable comments posted: 6
🧹 Outside diff range and nitpick comments (12)
tutorials/centralized.md (3)
7-7
: Fix heading hierarchy.The heading levels should only increment by one level at a time. Change the heading level from h3 to h2 to maintain proper document structure.
-### Installation and Use +## Installation and Use🧰 Tools
🪛 Markdownlint
7-7: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time(MD001, heading-increment)
31-32
: Consider adding security notes for auth token handling.Since
da_auth_token
is a security-sensitive parameter, consider adding a note about:
- Secure methods to provide the auth token (e.g., environment variables)
- Token storage best practices
- Token permissions and scope requirements
🧰 Tools
🪛 Markdownlint
32-32: Column: 5
Hard tabs(MD010, no-hard-tabs)
39-39
: Consider enhancing the configuration explanation section.The documentation would benefit from:
- Adding example commands for common use cases
- Including a "Next Steps" or "Getting Started" section
- Adding troubleshooting tips or common issues
Would you like me to help draft these additional sections?
tutorials/sequencing.md (4)
1-5
: Improve readability with more concise phrasing.The content is technically accurate, but could be more concise.
Consider this revision for improved clarity:
-## Rollkit prior to Sequencing +## Rollkit before Sequencing Rollkit's aggregator node was responsible for selecting and ordering transactions for including in the rollup blocks. The Rollkit aggregator used to follow a FCFS strategy, where every transaction submitted gets included in the block in order without any censorship. Use of a different sequencing strategy or connecting to a sequencing network (e.g., Astria) was not possible. Rollkit `v0.13.8` onwards makes it possible for rollkit to connect to a sequencing network and communicate via grpc.🧰 Tools
🪛 LanguageTool
[style] ~3-~3: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: # Sequencing ## Rollkit prior to Sequencing Rollkit's aggregator node wa...(EN_WORDINESS_PREMIUM_PRIOR_TO)
10-16
: Add language specification to the code block.The code block should specify a language for proper syntax highlighting.
Update the code block to include the language:
-``` +```go SubmitRollupTransaction(rollupId, data) returns (error)🧰 Tools
🪛 Markdownlint
10-10: null
Fenced code blocks should have a language specified(MD040, fenced-code-language)
18-22
: Consider adding parameter descriptions.While the function descriptions are clear, adding parameter details would improve understanding.
Consider expanding the descriptions like this:
-* `SubmitRollupTransaction` relays the rollup transactions from Rollkit rollup to the sequencing network -* `GetNextBatch` returns the next batch of transactions along with a deterministic timestamp -* `VerifyBatch` validates the sequenced batch +* `SubmitRollupTransaction`: + - `rollupId`: Unique identifier for the rollup + - `data`: Transaction data to be sequenced + - Returns an error if submission fails +* `GetNextBatch`: + - `rollupId`: Unique identifier for the rollup + - `lastBatchHash`: Hash of the previous batch + - `maxBytes`: Maximum size of the batch + - Returns the next batch and its timestamp +* `VerifyBatch`: + - `rollupId`: Unique identifier for the rollup + - `batchHash`: Hash of the batch to verify + - Returns the verification status
25-25
: Fix grammar in the centralized sequencer description.The sentence has minor grammatical issues.
Apply these corrections:
-The centralized sequencer is the middleware run by the aggregator node of the Rollkit rollup. The aggregator node relays rollup transactions to centralized sequencer which then submits them to the DA network (such as Celestia). +The centralized sequencer is middleware run by the aggregator node of the Rollkit rollup. The aggregator node relays rollup transactions to a centralized sequencer, which then submits them to the DA network (such as Celestia).🧰 Tools
🪛 LanguageTool
[style] ~25-~25: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...factored functionality from the Rollkit prior tov0.13.8
. The centralized sequencer is...(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~25-~25: You might be missing the article “a” here.
Context: ...ator node relays rollup transactions to centralized sequencer which then submits them to th...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~25-~25: Possible missing comma found.
Context: ...lays rollup transactions to centralized sequencer which then submits them to the DA netwo...(AI_HYDRA_LEO_MISSING_COMMA)
~/.celestia-light-mocha-4/config/app.toml (3)
82-111
: Consider enabling telemetry for production environments.While telemetry is securely disabled by default, consider enabling it in production for monitoring and alerting:
- Set
enabled = true
- Configure
prometheus-retention-time
for metrics retention- Add relevant
global-labels
for better metrics categorization
124-126
: Consider TLS configuration for production API endpoint.The API server address
tcp://localhost:1317
uses plain TCP. For production environments, consider:
- Implementing TLS
- Restricting the listening interface if public access isn't required
219-225
: Consider tuning mempool size based on network characteristics.The current setting
max-txs = 5000
might need adjustment based on:
- Network transaction volume
- Node hardware capabilities
- Block time and size
Consider monitoring mempool metrics in production to optimize this value.~/.celestia-light-mocha-4/config/config.toml (2)
373-374
: Optimize chunk fetchers for better state sync performance.The current setting of 4 chunk fetchers might not be optimal for fast state sync. Consider increasing this value based on available system resources.
Apply this diff to increase chunk fetchers:
-chunk_fetchers = "4" +chunk_fetchers = "8"
470-474
: Enable Prometheus metrics for monitoring.Prometheus metrics are currently disabled. For production environments, it's recommended to enable metrics for monitoring and alerting capabilities.
Apply this diff to enable Prometheus metrics:
-prometheus = false +prometheus = true -prometheus_listen_addr = ":26660" +prometheus_listen_addr = "127.0.0.1:26660"Note: Bind to localhost (127.0.0.1) for security unless external access is required.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
⛔ Files ignored due to path filters (1)
public/img/sequencing.jpg
is excluded by!**/*.jpg
📒 Files selected for processing (9)
.vitepress/config.ts
(1 hunks)tutorials/astria.md
(1 hunks)tutorials/based.md
(1 hunks)tutorials/centralized.md
(1 hunks)tutorials/forced.md
(1 hunks)tutorials/sequencing.md
(1 hunks)~/.celestia-light-mocha-4/config/app.toml
(1 hunks)~/.celestia-light-mocha-4/config/client.toml
(1 hunks)~/.celestia-light-mocha-4/config/config.toml
(1 hunks)
✅ Files skipped from review due to trivial changes (4)
- tutorials/astria.md
- tutorials/based.md
- tutorials/forced.md
- ~/.celestia-light-mocha-4/config/client.toml
🧰 Additional context used
🪛 Markdownlint
tutorials/centralized.md
7-7: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time
(MD001, heading-increment)
20-20: Column: 5
Hard tabs
(MD010, no-hard-tabs)
22-22: Column: 5
Hard tabs
(MD010, no-hard-tabs)
24-24: Column: 5
Hard tabs
(MD010, no-hard-tabs)
26-26: Column: 5
Hard tabs
(MD010, no-hard-tabs)
28-28: Column: 5
Hard tabs
(MD010, no-hard-tabs)
30-30: Column: 5
Hard tabs
(MD010, no-hard-tabs)
32-32: Column: 5
Hard tabs
(MD010, no-hard-tabs)
34-34: Column: 5
Hard tabs
(MD010, no-hard-tabs)
36-36: Column: 5
Hard tabs
(MD010, no-hard-tabs)
tutorials/sequencing.md
10-10: null
Fenced code blocks should have a language specified
(MD040, fenced-code-language)
30-30: null
No empty links
(MD042, no-empty-links)
🪛 LanguageTool
tutorials/sequencing.md
[style] ~3-~3: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: # Sequencing ## Rollkit prior to Sequencing Rollkit's aggregator node wa...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~25-~25: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...factored functionality from the Rollkit prior to v0.13.8
. The centralized sequencer is...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~25-~25: You might be missing the article “a” here.
Context: ...ator node relays rollup transactions to centralized sequencer which then submits them to th...
(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~25-~25: Possible missing comma found.
Context: ...lays rollup transactions to centralized sequencer which then submits them to the DA netwo...
(AI_HYDRA_LEO_MISSING_COMMA)
🔇 Additional comments (5)
tutorials/centralized.md (2)
9-14
: LGTM: Installation instructions are clear and complete.
The installation steps are well-documented with appropriate commands for cloning, building, and checking the help documentation.
17-37
: LGTM: Well-documented configuration options.
The configuration section provides comprehensive documentation of all available options with their default values and clear descriptions.
🧰 Tools
🪛 Markdownlint
20-20: Column: 5
Hard tabs
(MD010, no-hard-tabs)
22-22: Column: 5
Hard tabs
(MD010, no-hard-tabs)
24-24: Column: 5
Hard tabs
(MD010, no-hard-tabs)
26-26: Column: 5
Hard tabs
(MD010, no-hard-tabs)
28-28: Column: 5
Hard tabs
(MD010, no-hard-tabs)
30-30: Column: 5
Hard tabs
(MD010, no-hard-tabs)
32-32: Column: 5
Hard tabs
(MD010, no-hard-tabs)
34-34: Column: 5
Hard tabs
(MD010, no-hard-tabs)
36-36: Column: 5
Hard tabs
(MD010, no-hard-tabs)
~/.celestia-light-mocha-4/config/app.toml (1)
11-11
:
Consider setting a non-empty minimum gas price.
An empty minimum gas price (minimum-gas-prices = ""
) could make the network vulnerable to spam transactions. Consider setting a reasonable minimum value based on your network's economics.
.vitepress/config.ts (1)
246-271
: LGTM! Well-structured navigation section.
The new "Sequencing" section follows the established sidebar structure and maintains consistency with other tutorial sections. The placement between "DA" and "Execution" sections is logical in the context of the rollup stack.
~/.celestia-light-mocha-4/config/config.toml (1)
209-212
:
Configure seed nodes for network resilience.
The seeds
and persistent_peers
configurations are empty. This might affect the node's ability to discover and maintain connections with the network.
Let's verify if there are any recommended seed nodes for this network:
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.
Actionable comments posted: 8
🧹 Outside diff range and nitpick comments (6)
.vitepress/constants/constants.js (1)
13-13
: Consider adding a compatibility note.It would be helpful to add a comment above the constant indicating which versions of other components (e.g., rollkit, local DA) are compatible with this sequencer version.
+ // Compatible with rollkit v0.13.7 and local DA v0.3.1 localSequencerLatestTag: "v0.4.0",
tutorials/sequencing.md (4)
1-4
: LGTM! Consider minor style improvements.The introduction effectively explains the transition from FCFS to the new sequencing system. While technically correct, consider rephrasing "prior to" to "before" for conciseness.
-## Rollkit prior to Sequencing +## Rollkit before Sequencing🧰 Tools
🪛 LanguageTool
[style] ~3-~3: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: # Sequencing ## Rollkit prior to Sequencing Rollkit's aggregator node wa...(EN_WORDINESS_PREMIUM_PRIOR_TO)
10-16
: Add language specification to the code block.The code block should specify the language for proper syntax highlighting.
-``` +```go SubmitRollupTransaction(rollupId, data) returns (error) GetNextBatch(rollupId, lastBatchHash, maxBytes) returns (batch, timestamp) VerifyBatch(rollupId, batchHash) returns (status)🧰 Tools
🪛 Markdownlint
10-10: null
Fenced code blocks should have a language specified(MD040, fenced-code-language)
25-25
: Improve readability with proper grammar.The sentence describing the centralized sequencer needs grammatical improvements.
-The aggregator node relays rollup transactions to centralized sequencer which then submits them to the DA network +The aggregator node relays rollup transactions to a centralized sequencer, which then submits them to the DA network🧰 Tools
🪛 LanguageTool
[style] ~25-~25: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...factored functionality from the Rollkit prior tov0.14.0
. The centralized sequencer is...(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~25-~25: You might be missing the article “a” here.
Context: ...ator node relays rollup transactions to centralized sequencer which then submits them to th...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~25-~25: Possible missing comma found.
Context: ...lays rollup transactions to centralized sequencer which then submits them to the DA netwo...(AI_HYDRA_LEO_MISSING_COMMA)
1-31
: Consider enhancing documentation with examples and setup instructions.The documentation effectively explains the concepts but would benefit from:
- Configuration examples for different sequencer implementations
- Step-by-step setup instructions
- Usage examples showing how to interact with the sequencing interface
Would you like me to help generate example configurations and usage instructions?
🧰 Tools
🪛 LanguageTool
[style] ~3-~3: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: # Sequencing ## Rollkit prior to Sequencing Rollkit's aggregator node wa...(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~25-~25: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...factored functionality from the Rollkit prior tov0.14.0
. The centralized sequencer is...(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~25-~25: You might be missing the article “a” here.
Context: ...ator node relays rollup transactions to centralized sequencer which then submits them to th...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~25-~25: Possible missing comma found.
Context: ...lays rollup transactions to centralized sequencer which then submits them to the DA netwo...(AI_HYDRA_LEO_MISSING_COMMA)
🪛 Markdownlint
10-10: null
Fenced code blocks should have a language specified(MD040, fenced-code-language)
30-30: null
No empty links(MD042, no-empty-links)
guides/ignite-rollkit.md (1)
45-51
: Enhance section with additional context and port informationConsider adding:
- A brief explanation of what a sequencer node does and why it's needed
- A note about ensuring the port 50051 is available before running the command
First, set up a local sequencer node: +A sequencer node is responsible for ordering transactions in your rollup. Ensure port `50051` is available before proceeding. + ```bash-vue cd $HOME && curl -sSL https://rollkit.dev/install-local-sequencer.sh | sh -s {{constants.localSequencerLatestTag}} gmThis script builds and runs a local sequencer node, which will listen on port
50051
.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary> [duplication] ~51-~51: Possible typo: you repeated a word Context: ...g}} gm ``` This script builds and runs a a local sequencer node, which will listen... (ENGLISH_WORD_REPEAT_RULE) </details> </details> </blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used: CodeRabbit UI** **Review profile: CHILL** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 51502993c03ca34fdf109cfba1ee6792b8d64a61 and cf15f4b2d0852ae652a36ccdad5de75079849572. </details> <details> <summary>📒 Files selected for processing (4)</summary> * `.vitepress/constants/constants.js` (1 hunks) * `guides/ignite-rollkit.md` (1 hunks) * `public/install-local-sequencer.sh` (1 hunks) * `tutorials/sequencing.md` (1 hunks) </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>🪛 LanguageTool</summary> <details> <summary>guides/ignite-rollkit.md</summary> [duplication] ~51-~51: Possible typo: you repeated a word Context: ...g}} gm ``` This script builds and runs a a local sequencer node, which will listen... (ENGLISH_WORD_REPEAT_RULE) </details> <details> <summary>tutorials/sequencing.md</summary> [style] ~3-~3: ‘prior to’ might be wordy. Consider a shorter alternative. Context: # Sequencing ## Rollkit prior to Sequencing Rollkit's aggregator node wa... (EN_WORDINESS_PREMIUM_PRIOR_TO) --- [style] ~25-~25: ‘prior to’ might be wordy. Consider a shorter alternative. Context: ...factored functionality from the Rollkit prior to `v0.14.0`. The centralized sequencer is... (EN_WORDINESS_PREMIUM_PRIOR_TO) --- [uncategorized] ~25-~25: You might be missing the article “a” here. Context: ...ator node relays rollup transactions to centralized sequencer which then submits them to th... (AI_EN_LECTOR_MISSING_DETERMINER_A) --- [uncategorized] ~25-~25: Possible missing comma found. Context: ...lays rollup transactions to centralized sequencer which then submits them to the DA netwo... (AI_HYDRA_LEO_MISSING_COMMA) </details> </details> <details> <summary>🪛 Markdownlint</summary> <details> <summary>tutorials/sequencing.md</summary> 10-10: null Fenced code blocks should have a language specified (MD040, fenced-code-language) --- 30-30: null No empty links (MD042, no-empty-links) </details> </details> </details> <details> <summary>🔇 Additional comments (1)</summary> <details> <summary>.vitepress/constants/constants.js (1)</summary> `13-13`: **LGTM! Please verify the sequencer version compatibility.** The constant follows the established naming convention and semantic versioning pattern. Let's verify the installation script and documentation references: </details> </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
@coderabbitai ignore |
@coderabbitai ignore ✅ Actions performedReviews paused. |
99105e0
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.
Please remove the celestia light files.
done. |
@coderabbittai resolve |
@MSevey: I have resolved all my review comments. ✅ Actions performedComments resolved. |
Overview
Closes rollkit/rollkit#1886
Summary by CodeRabbit
New Features
Improvements
Configuration Updates