chore(ethexe): create create level doc for ethexe-consensus, ethexe-processor, ethexe-compute#5336
chore(ethexe): create create level doc for ethexe-consensus, ethexe-processor, ethexe-compute#5336grishasobol merged 9 commits intomasterfrom
Conversation
Add crate-level documentation covering the processor's role in the ethexe stack, the three-stage `process_programs` pipeline, chunked parallel execution semantics (including the per-chunk max-gas charging rule and the promise-emission constraint on the injected pass), runtime hosting via wasmtime with thread-local state-hash plumbing, lazy-pages loading on SIGSEGV, overlay execution for RPC, determinism invariants, and a short "When modifying this crate" invariant list. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add crate-level documentation describing the three sub-services that turn on-chain data into executed state (codes, prepare, compute), the caller-visible contract for each (input, resulting events, error modes, ordering guarantees), the canonical event quarantine, and the crate-specific invariants to preserve when modifying the code. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the minimal crate-level header with a detailed description of the crate's role (Ethereum is the authoritative ledger; this crate decides which announces to execute and co-signs the resulting batch commitments), the two implementations (ConnectService observer and ValidatorService active validator), the input/output contract of ConsensusService and ConsensusEvent, the validator state flow, the producer-selection model and its only wall-clock knob, and the invariants to preserve when modifying the code. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Changed Files
|
Summary of ChangesHello, 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 introduces detailed crate-level documentation for three core components of the ethexe stack. The new documentation provides high-level architectural overviews, explains the role of each crate within the system, details entry points, and outlines critical design considerations for future development. Highlights
Using Gemini Code AssistThe 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
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 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. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request significantly improves the internal documentation of the ethexe workspace by adding detailed module-level comments to the compute, consensus, and processor crates. These updates provide a clear overview of each crate's role, entry points, and internal pipelines. The review feedback focuses on correcting minor typos and refining technical terminology to ensure clarity regarding consensus-sensitive logic.
|
@claude opus review |
|
Claude finished @grishasobol's task in 3m 59s —— View job Claude Opus Review
SummaryDocumentation-only PR that adds substantial crate-level docs to A few accuracy/clarity points below. None of them block — they're worth fixing now while the docs are fresh. severity: medium — Lazy-pages mechanism description has it backwards File:
The two halves of the parenthetical contrast aren't actually different things, and the labels are inverted. Looking at
Both are triggered by an underlying page fault; the differentiator is signal vs. structured exception. Suggested rewrite: severity: low — File: The section enumerates three sequential stages and says the result is always a if let Some(gas_allowance) = gas_allowance {
transitions = self
.process_queues(transitions, block, gas_allowance, promise_out_tx)
.await?;
}If callers ever pass severity: low — Quarantine "genesis is the floor" is opaque without explaining what "floor" means File: The current text says compute reads events from "an ancestor that is
severity: low — Two minor consensus-section nits worth fixing while you're in there File:
What I checked and found accurate (no action needed)
|
SummaryAdds comprehensive module-level documentation to three ethexe crates (compute, consensus, processor), replacing one-liner stubs with detailed architectural contracts, entry-point tables, event-flow summaries, and "When modifying this crate" constraint sections. No code changes. FindingsNo issues found. The docs are internally consistent and match the known architecture. Two observations worth noting for future reference:
|
created by @claude, but fully review, fixed and modified by @grishasobol