Skip to content

Conversation

@tac0turtle
Copy link
Contributor

Overview

This pr restructures the docs and writes new sections in order to be better suited for users

@github-actions
Copy link
Contributor

github-actions bot commented Jan 28, 2026

The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed⏩ skipped✅ passed✅ passedJan 28, 2026, 12:50 PM

@claude
Copy link
Contributor

claude bot commented Jan 28, 2026

Claude finished @tac0turtle's task in 2m 11s —— View job


Documentation Review Complete

I've completed a comprehensive review of the documentation rewrite and restructure. This is an ambitious PR that adds substantial new documentation (10,323 additions across 65 files), but there are several issues that should be addressed before merging.


Critical Issues

1. Complete File Duplication

Location: docs/concepts/block-lifecycle.md and docs/reference/specs/block-manager.md

These files are completely identical (759 lines each). This creates a significant maintenance burden and confusion for users.

Recommendation:

  • Keep the detailed technical specification in docs/reference/specs/block-manager.md
  • Transform docs/concepts/block-lifecycle.md into a high-level conceptual overview that links to the detailed spec
  • Or use VitePress includes/snippets to avoid duplication

Fix this →

2. Incorrect Code Example Pattern

Location: docs/ev-abci/migration-from-cometbft.md:186-192

The migration guide shows an incorrect pattern for the start command:

RunE: func(cmd *cobra.Command, _ []string) error {
    return server.Start(cmd, evabci_server.StartHandler())
},

This is inconsistent with the correct pattern shown in:

  • docs/ev-abci/integration-guide.md:50-52
  • docs/getting-started/cosmos/integrate-ev-abci.md:49-51

Correct pattern:

RunE: func(cmd *cobra.Command, _ []string) error {
    return evabci.StartHandler(cmd, app.New)
},

Impact: This will cause node startup failures for users following the migration guide.

Fix this →


High Priority Issues

3. Broken Internal Link

Location: docs/reference/specs/overview.md:14

The link targets ./full_node.md but the actual file is ./full-node.md (with hyphen).

Fix this →

4. Typo with Double Space

Location: docs/concepts/p2p-networking.md:3

"Every node" has an extra space.

Fix this →

5. Stray Character in Markdown

Location: docs/reference/specs/full-node.md:31

There's a trailing | character at the end of the line that should be removed.

Fix this →

6. Inconsistent Capitalization

Location: docs/guides/running-nodes/full-node.md:7

Note says "evolve" instead of "Evolve" for consistency with brand naming throughout docs.


Medium Priority Issues

7. Inconsistent Terminology - Backoff Cap

Locations:

  • docs/concepts/block-lifecycle.md:296 - states backoff capped at "DABlockTime"
  • docs/concepts/block-lifecycle.md:340 - states backoff capped at "BlockTime"
  • docs/reference/specs/block-manager.md:296 & :340 - same inconsistency

Recommendation: Verify the correct value from the code and make it consistent across all mentions.

Fix this →

8. Trailing Spaces in Markdown Heading

Location: docs/reference/specs/header-sync.md:25

Markdown heading has trailing spaces.

9. Outdated Flag Description

Location: docs/guides/da-layers/celestia.md:46-59

The description of required DA flags mentions --evnode.da.namespace as required, but this flag is deprecated. The text should be updated to reflect the use of --evnode.da.header_namespace and --evnode.da.data_namespace (which is correctly shown in the command example later).

Fix this →


Documentation Completeness Issues

10. Multiple Placeholder Files

Several new files contain only TODO comments or minimal placeholder content:

  • docs/guides/operations/troubleshooting.md - Only 50 lines, appears incomplete
  • docs/guides/operations/upgrades.md - Placeholder structure
  • docs/guides/running-nodes/aggregator.md - Appears complete but should verify
  • docs/guides/running-nodes/attester.md - May be placeholder
  • docs/guides/running-nodes/light-node.md - May be placeholder (not checked in review)
  • Several files under docs/reference/ may be incomplete

Recommendation:

  • Complete these files before merging, OR
  • Remove placeholder files and add them in future PRs when content is ready
  • Incomplete documentation can be more harmful than missing documentation

Positive Observations

Excellent Work:

  1. Comprehensive coverage - The restructure provides much better organization (concepts → guides → reference)
  2. Multiple execution paths - Clear separation of Cosmos SDK, EVM, and custom executor documentation
  3. Practical examples - Good balance of conceptual explanations and code examples
  4. Technical depth - The block component architecture documentation is thorough
  5. Mermaid diagrams - Visual aids significantly improve understanding
  6. Cross-references - Good use of internal links to connect related topics

Recommendations

Before Merging:

  1. MUST FIX: Resolve the block-lifecycle.md / block-manager.md duplication
  2. MUST FIX: Correct the ev-abci start handler code example
  3. SHOULD FIX: Fix broken link and typos
  4. SHOULD FIX: Resolve backoff terminology inconsistency
  5. SHOULD FIX: Update deprecated flag documentation
  6. CONSIDER: Remove or complete placeholder files

Architecture & Design:

  • The documentation structure is sound and follows good practices
  • Consider adding a "Migration from Previous Versions" section for existing Evolve users
  • The conceptual → practical → reference flow works well

Style & Consistency:

  • Generally good consistency in tone and formatting
  • Code examples follow Go best practices
  • Would benefit from a final formatting pass to catch trailing spaces, etc.

Summary

This documentation rewrite represents significant effort and substantially improves the project's documentation. However, the critical issues (duplicate files, incorrect code example) and numerous smaller issues should be resolved before merging. The incorrect code example in the migration guide is particularly concerning as it will directly impact users.

Verdict: Needs revision before merge. The foundation is excellent, but the execution issues need cleanup.


@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @tac0turtle, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's documentation, providing a more organized and in-depth resource for developers and operators. It covers fundamental concepts, practical implementation steps for different execution environments, operational best practices, and detailed technical specifications, making it easier for users to understand, integrate, and manage Evolve-based chains.

Highlights

  • Comprehensive Documentation Restructuring: The documentation has been completely rewritten and reorganized into new conceptual guides, detailed integration and migration guides for both Cosmos SDK and EVM environments, operational guides, and comprehensive technical specifications. This aims to provide a more structured and user-friendly resource.
  • New Conceptual Guides: Introduced new conceptual documents covering core aspects like block lifecycle, data availability, fee systems, finality, P2P networking, sequencing modes (including forced inclusion and based sequencing), and transaction flow, enhancing understanding of Evolve's architecture.
  • Detailed Integration and Migration Paths: Added extensive guides for integrating ev-abci into Cosmos SDK applications, migrating existing CometBFT chains to Evolve, and setting up ev-reth for EVM rollups, including contract deployment and configuration. This provides clear pathways for developers to adopt Evolve.
  • Operational Guides and Tools: New guides for node operations such as deployment strategies, monitoring with Prometheus metrics, and using tools like the Blob Decoder and DA Visualizer have been added. Placeholders for troubleshooting and upgrade guides are also included, indicating future expansion.
  • Technical Specifications: Introduced a new section for technical specifications, detailing internal components like the block manager, block and header validity rules, the DA interface, full node architecture, header and data synchronization, and the storage system. This offers deep insights into Evolve's inner workings.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@codecov
Copy link

codecov bot commented Jan 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.61%. Comparing base (4cf1c92) to head (c1c7884).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3026      +/-   ##
==========================================
- Coverage   55.66%   55.61%   -0.06%     
==========================================
  Files         116      116              
  Lines       11477    11477              
==========================================
- Hits         6389     6383       -6     
- Misses       4389     4394       +5     
- Partials      699      700       +1     
Flag Coverage Δ
combined 55.61% <ø> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant rewrite and restructuring of the documentation, adding a large volume of new content across concepts, guides, and reference sections. The effort to improve the documentation is commendable. However, there are several areas that need attention before this can be merged.

Firstly, there's a notable amount of content duplication, particularly between docs/concepts/block-lifecycle.md and docs/reference/specs/block-manager.md. This could lead to maintenance issues and should be resolved, perhaps by using includes or linking between documents.

Secondly, a large number of placeholder files have been added, containing only TODO comments. These should be either completed or removed.

Finally, there are various inconsistencies in technical details, formatting issues (like the use of :::: instead of ::: for VitePress admonitions), minor typos, and some broken links. Addressing these points will greatly improve the quality and usability of the new documentation.

Comment on lines +189 to +191
RunE: func(cmd *cobra.Command, _ []string) error {
return server.Start(cmd, evabci_server.StartHandler())
},
Copy link
Contributor

Choose a reason for hiding this comment

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

high

The implementation of the start command's RunE function appears to be incorrect and is inconsistent with other guides like integration-guide.md and getting-started/cosmos/integrate-ev-abci.md. The use of server.Start wrapping the evabci_server.StartHandler is not the standard pattern and will likely cause an error, preventing the node from starting. Please make this consistent with the other guides.

Suggested change
RunE: func(cmd *cobra.Command, _ []string) error {
return server.Start(cmd, evabci_server.StartHandler())
},
RunE: func(cmd *cobra.Command, _ []string) error {
return evabci_server.StartHandler(cmd, app.New)
},

Comment on lines +338 to +342
- **Centralized State Management**: The `retryStrategy` struct manages attempt counts, backoff timing, and gas price adjustments
- **Multiple Backoff Types**:
- Exponential backoff for general failures (doubles each attempt, capped at `BlockTime`)
- Mempool-specific backoff (waits `MempoolTTL * BlockTime` for stuck transactions)
- Success-based backoff reset with gas price reduction
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There's an inconsistency in the documentation regarding backoff caps. Line 296 states that exponential backoff is "capped at DABlockTime", while the "Retry Strategy Features" section on line 340 says it's "capped at BlockTime". Please ensure this is consistent across the document.

@@ -0,0 +1,60 @@
# P2P

Every node (both full and light) runs a P2P client using [go-libp2p][go-libp2p] P2P networking stack for gossiping transactions in the chain's P2P network. The same P2P client is also used by the header and block sync services for gossiping headers and blocks.
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There is a typo with a double space after "Every".

Suggested change
Every node (both full and light) runs a P2P client using [go-libp2p][go-libp2p] P2P networking stack for gossiping transactions in the chain's P2P network. The same P2P client is also used by the header and block sync services for gossiping headers and blocks.
Every node (both full and light) runs a P2P client using [go-libp2p][go-libp2p] P2P networking stack for gossiping transactions in the chain's P2P network. The same P2P client is also used by the header and block sync services for gossiping headers and blocks.

Comment on lines 1 to 11
# Custom Precompiles

<!-- TODO: Create custom precompiles guide (ev-reth specific)
- What are precompiles
- ev-reth custom precompiles:
- Mint precompile
- Others as they exist
- Adding custom precompiles to ev-reth
- Chainspec activation configuration
- Reference: ev-reth repository
-->
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This file is a placeholder with a TODO comment. Placeholder content should be completed or the file should be removed before merging a documentation rewrite PR. This comment applies to several other new files in this PR as well, such as docs/guides/operations/troubleshooting.md, docs/guides/operations/upgrades.md, docs/guides/running-nodes/aggregator.md, docs/guides/running-nodes/attester.md, docs/guides/running-nodes/light-node.md, and several files under docs/reference/.

Comment on lines 53 to 57
Now that we are posting to the Celestia DA instead of the local DA, the `evolve start` command requires three DA configuration flags:

- `--evnode.da.start_height`
- `--evnode.da.auth_token`
- `--evnode.da.namespace`
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The description of required DA flags is outdated. It lists --evnode.da.namespace as a required flag, but this flag is deprecated. The text should be updated to reflect the use of --evnode.da.header_namespace and --evnode.da.data_namespace, as correctly shown in the command example later in the document.

Suggested change
Now that we are posting to the Celestia DA instead of the local DA, the `evolve start` command requires three DA configuration flags:
- `--evnode.da.start_height`
- `--evnode.da.auth_token`
- `--evnode.da.namespace`
Now that we are posting to the Celestia DA instead of the local DA, the `evolve start` command requires several DA configuration flags:
- `--evnode.da.start_height`
- `--evnode.da.auth_token`
- `--evnode.da.header_namespace`
- `--evnode.da.data_namespace`


This guide covers how to set up a full node to run alongside a sequencer node in a Evolve-based blockchain network. A full node maintains a complete copy of the blockchain and helps validate transactions, improving the network's decentralization and security.

> **Note: The guide on how to run an evolve EVM full node can be found [in the evm section](./evm/single.md#setting-up-a-full-node).**
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There's a typo in the note. It should be Evolve instead of evolve for consistency.

Suggested change
> **Note: The guide on how to run an evolve EVM full node can be found [in the evm section](./evm/single.md#setting-up-a-full-node).**
> **Note: The guide on how to run an Evolve EVM full node can be found [in the evm section](./evm/single.md#setting-up-a-full-node).**


### Store

The [Store] is initialized with `DefaultStore`, an implementation of the [store interface] which is used for storing and retrieving blocks, commits, and state. |
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There is a stray | character at the end of this line which should be removed.

Suggested change
The [Store] is initialized with `DefaultStore`, an implementation of the [store interface] which is used for storing and retrieving blocks, commits, and state. |
The [Store] is initialized with `DefaultStore`, an implementation of the [store interface] which is used for storing and retrieving blocks, commits, and state.

- Used by all node types (sequencer, full, and light)
- Essential for maintaining the canonical view of the chain

### Data Sync Service
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There are trailing spaces at the end of this markdown heading which should be removed.

Suggested change
### Data Sync Service
### Data Sync Service

- [Block Components](./block-manager.md): Explains the modular component architecture for block processing in Evolve.
- [Block Validity](./block-validity.md): Details the rules and checks for block validity within the protocol.
- [Data Availability (DA)](./da.md): Describes how Evolve ensures data availability and integrates with DA layers.
- [Full Node](./full_node.md): Outlines the architecture and operation of a full node in Evolve.
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The link to the full node specification appears to be broken due to a filename mismatch. The target file is full-node.md, not full_node.md.

Suggested change
- [Full Node](./full_node.md): Outlines the architecture and operation of a full node in Evolve.
- [Full Node](./full-node.md): Outlines the architecture and operation of a full node in Evolve.

- Updated Celestia guide to clarify prerequisites, installation, and configuration for connecting Evolve chains to Celestia.
- Enhanced Local DA documentation with installation instructions, configuration options, and use cases for development and testing.
- Expanded troubleshooting guide with detailed diagnostic commands, common issues, and solutions for node operations.
- Created comprehensive upgrades guide covering minor and major upgrades, version compatibility, and rollback procedures.
- Added aggregator node documentation detailing configuration, block production settings, and monitoring options.
- Introduced attester node overview with configuration and use cases for low-latency applications.
- Removed outdated light node documentation.
- Improved formatting and clarity in ev-reth chainspec reference for better readability.
@tac0turtle tac0turtle marked this pull request as ready for review January 28, 2026 12:48
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.

2 participants