Repository navigation
docs: describe ethlambda as a Beacon Chain and Lean Chain client - #715
Conversation
The project's self-descriptions (README, book, CONTRIBUTING, Docker label, review prompt, infographics, CLAUDE.md) still called ethlambda a Lean consensus client only, and CLAUDE.md said it was not to be confused with a Beacon Chain client. `ethlambda beacon` now follows the Beacon Chain, so those statements are wrong. The LMD-GHOST comparison table also credited "ethlambda" with having no proposer boost or equivocation discounting, which is only true of the Lean Chain: the beacon fork choice implements both. It is now scoped to the Lean Chain. The book introduction gains the Beacon Chain part SUMMARY.md already lists.
🤖 Kimi Code ReviewI'll review this PR diff focusing on the changes made. This appears to be primarily a documentation update to clarify that ethlambda supports both Beacon Chain and Lean Chain modes. Overall AssessmentThis is a documentation-only PR that updates project descriptions across multiple files to reflect that ethlambda is now a dual-mode client (Beacon Chain follower + Lean Chain consensus). No Rust code changes are present, so consensus-layer security and correctness concerns don't apply here. Review Findings1. Consistency Check —
|
| File | Likely stale text | Action needed? |
|---|---|---|
Cargo.toml |
description field |
Should match — verify separately |
crates/*/Cargo.toml |
Workspace member descriptions | Verify separately |
docs/index.html or generated files |
May be rebuilt from book.toml |
Likely auto-generated |
LICENSE or AUTHORS |
Usually no project description | N/A |
Positive Acknowledgments
- Clear mode distinction: The
ethlambda beaconvsethlambda nodenaming convention is consistently applied. - Accurate technical distinctions: The
lmd_ghost.mdtable correctly preserves that Lean Chain lacks proposer boost, balance weighting, and equivocation discounting. - No code drift: This is purely documentation — no risk of consensus bugs from description changes.
Summary
| Severity | Count | Items |
|---|---|---|
| 🔴 Critical | 0 | — |
| 🟡 Moderate | 1 | Verify README.md anchor link #beacon-chain-follower exists |
| 🟢 Minor | 1 | Consider grammar polish in introduction.md |
| ℹ️ Info | 1 | Check Cargo.toml description consistency outside this PR |
Recommendation: Approve after verifying the README.md internal anchor link resolves correctly.
Automated review by Kimi (Moonshot AI) · kimi-k2.6 · custom prompt
🤖 Claude Code ReviewReview of PR 715: describe ethlambda as a Beacon Chain and Lean Chain client This is a docs-only change and I found no correctness or security issues. I read the diff only and did not build the book or check links. Points worth a look:
Overall the wording is consistent across files and the lean/beacon distinctions are accurate. Items 1 and 2 are the only ones that could cause a visible break, so I'd verify those before merging. Automated review by Claude (Anthropic) · sonnet · custom prompt |
🤖 Codex Code ReviewLooks good overall — this PR appears to be documentation/branding only, with no Rust or consensus logic changes in the diff, so I don’t see any direct correctness, security, performance, or memory-safety risk from the code itself. Findings
Minor suggestion
No blocking issues from a code review perspective. Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
Several pages still spoke of "ethlambda" or "the node" where they meant the Lean Chain alone, and some of those statements are false for the Beacon Chain side: the LMD-GHOST notes say every validator has equal weight, 3SF-mini is described as ethlambda's finality gadget, and the architecture page describes only the Lean node without saying so. The "In ethlambda" notes in the Consensus pages become "In ethlambda's Lean Chain", and the architecture, benchmarking, metrics and fork choice visualization pages say which chain they describe. The Lean content is unchanged.
…n node's duties (#716) ## 🗒️ Description / Motivation - Ahead of 1.0, the README still describes a Lean-only client whose beacon quickstart runs from a hand-published Docker tag. The release ships a Beacon Chain node that serves a validator client, the validator client itself, and binaries for three platforms, none of which the README shows how to run. - Adds a release-binary quickstart and a validator-client section, and corrects statements that no longer hold. ## What Changed `README.md` only: - The quickstart now runs the beacon node **standalone from the release binary**: download the asset, generate the node key, run `ethlambda beacon` with no execution client, with the AVX2 and glibc requirements, the macOS quarantine note, the provenance-verification pointer, and `KillSignal=SIGINT` for systemd (the node shuts down gracefully on SIGINT only). It states that this mode validates no payloads and cannot serve a validator client. - New **Running with the ethrex execution client** section: download ethrex's release asset, generate the JWT secret, start ethrex, then the beacon node with the two `--execution-*` flags. The Docker two-container setup moves under it as **Running with Docker**. - New **`ethlambda validator`** section: run command, flag table, and the no-slashing-protection warning (noted as work in progress) linking to `docs/spec_deviations.md`. - Quickstart image tag `beacon` → `latest` in all five places. - Beacon node description: it serves a validator client once paired with an execution client, joining the subnets its validators ask for and publishing what they sign. The old text said it publishes nothing and joins no subnet. - Platåberget paragraph: the validator endpoints serve gloas duties. The old text said they refuse a gloas epoch. - Roadmap: the state-diffs item is removed as shipped (#238 is closed); the execution-client item is scoped to the Lean Chain, pointing at `docs/beacon_engine.md` for what the beacon node already does. - Prerequisites: Docker and yq marked as needed by `make run-devnet` and `make docker-build` only. - Current-status paragraph mentions the validator client. ## Correctness / Behavior Guarantees - Documentation only; no code or behaviour changes. - Every ethlambda flag was checked against `bin/ethlambda/src/cli.rs` and `bin/ethlambda/src/validator.rs`, the ethrex flags against ethrex's `cmd/ethrex/cli.rs`, the key-file formats against the parsers (both trim whitespace and accept `0x`), and the quoted log lines against the source. - Left untouched on purpose: the `is_syncing` caveat, the pq-devnet-5/6 sections and the Goldfish roadmap item. ## Tests Added / Run - None to add. Verified that all 16 anchored links resolve (within the README and into `docs/cli.md`, `RELEASE.md` and `docs/spec_deviations.md`), that every relative link exists, and that every external URL answers 200. ## Related Issues / PRs - Built on top of #715; merge that first. Until it lands, this diff also shows its commits. - **Merge only after `v1.0.0` is promoted.** `ghcr.io/lambdaclass/ethlambda:latest` is today a 2 October image without the `beacon` sub-command, and `releases/latest/download/…` resolves only once a non-prerelease exists. - Related to #238 and #367 (roadmap items updated). ## ✅ Verification Checklist - [ ] Ran `make fmt` — not applicable, Markdown only - [ ] Ran `make lint` (clippy with `-D warnings`) — not applicable, Markdown only - [ ] Ran `make test` (`test-consensus` plus `test-node`, at `release-fast`) — not applicable, Markdown only --------- Co-authored-by: Tomás Grüner <47506558+MegaRedHand@users.noreply.github.com>
Motivation
The project's self-descriptions still called ethlambda a Lean consensus client only, and
CLAUDE.mdsaid it was "not to be confused with" a Beacon Chain client. Sinceethlambda beaconfollows the Beacon Chain, those statements are wrong.Changes
Every place that describes what ethlambda is now says "Beacon Chain and Lean Chain client":
README.mdbook.toml,docs/introduction.mdSUMMARY.mdalready lists ("four parts" was five)CONTRIBUTING.md,Dockerfile(image label),.github/prompts/ai-review.mdCLAUDE.mddocs/infographics/*.htmldocs/lmd_ghost.mdPages that spoke of "ethlambda" or "the node" while meaning the Lean Chain alone now say so. The Lean content itself is unchanged:
docs/3sf_mini.md,docs/lmd_ghost.md,docs/slots_and_intervals.mdethlambda node, and LMD-GHOST points at the beacon fork choicedocs/architecture.mdethlambda node;ethlambda beaconruns the same two actors without keys, aggregation or dutiesdocs/benchmarking.mdsyntheticis Lean Chain block building,importis Beacon Chain block importdocs/metrics.mddocs/fork_choice_visualization.mdethlambda nodeonly (/lean/v0is a 404 on beacon)docs/introduction.mdREADME.mdnodesection no longer claims the rest of the README is about itLeft as is, since they already describe the Lean side specifically:
docs/cli.md,docs/checkpoint_sync.md,docs/beacon_stf.md, the README's per-sub-command headers,.claude/skills/*, and code comments.Open questions
CONTRIBUTING.mdstill says "Lean Consensus is a clean slate. Don't add backward compatibility for deprecated features." The beacon side carries phase0 through gloas by necessity. Should that bullet be scoped to the Lean Chain?