Skip to main content

consensus-clients

Use when comparing Ethereum consensus client implementations, looking up how a specific client implements a spec feature, checking client activity (PRs, issues, releases), or understanding architectural differences between Lodestar, Lighthouse, Prysm, Teku, Nimbus, and Grandine.

Ir para a instalação

Informações da origem

Repositório
ChainSafe/lodestar-claude-plugins
Última atividade na origem
25 de fevereiro de 2026 às 19:47
Idioma detectado do SKILL.md
inglês
Estrelas
0
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
consensus-clients
description
Use when comparing Ethereum consensus client implementations, looking up how a specific client implements a spec feature, checking client activity (PRs, issues, releases), or understanding architectural differences between Lodestar, Lighthouse, Prysm, Teku, Nimbus, and Grandine.
# Ethereum Consensus Client Cross-Reference You have detailed maps of all 6 Ethereum consensus clients. Use this to find implementations, compare approaches, and track activity. ## Local Clone Strategy (Preferred) **Clone client repos locally for fast code navigation.** Run the setup script from the plugin repo: ```bash bash scripts/clone-repos.sh [base-dir] # default: ~/ethereum-repos ``` Once cloned, use `grep`, `find`, and `cat` to navigate codebases directly: ```bash # Find how each client implements a spec function grep -rn "process_attestation\|processAttestation\|ProcessAttestation" \ ~/ethereum-repos/lodestar/packages/ \ ~/ethereum-repos/lighthouse/consensus/ \ ~/ethereum-repos/prysm/beacon-chain/core/ \ ~/ethereum-repos/teku/ethereum/spec/ \ ~/ethereum-repos/nimbus-eth2/beacon_chain/spec/ \ ~/ethereum-repos/grandine/transition_functions/ \ --include="*.ts" --include="*.rs" --include="*.go" --include="*.java" --include="*.nim" # Compare fork choice implementations find ~/ethereum-repos/*/ -path "*/fork*choice*" -name "*.ts" -o -name "*.rs" -o -name "*.go" | head -20 # Search for a specific type across all clients grep -rn "ExecutionPayloadEnvelope" ~/ethereum-repos/{lodestar,lighthouse,prysm,teku,nimbus-eth2,grandine}/ \ --include="*.ts" --include="*.rs" --include="*.go" --include="*.java" --include="*.nim" | head -30 ``` **Why local clones are better than WebFetch:** - Cross-client grep finds implementations in seconds - No URL guessing or 404s on wrong file paths - Can search across all clients simultaneously - Works offline, no rate limits **Fallback:** If repos aren't cloned locally, use WebFetch with the raw GitHub URLs listed for each client below. ## Client Overview | Client | Language | Repo | Build | Branch strategy | |---|---|---|---|---| | Lodestar | TypeScript | `ChainSafe/lodestar` | pnpm monorepo | `unstable` (dev), tags for releases | | Lighthouse | Rust | `sigp/lighthouse` | Cargo workspace | `unstable` (dev), `stable` (releases) | | Prysm | Go | `prysmaticlabs/prysm` | Bazel + Go modules | `develop` (dev), `master` (stable) | | Teku | Java | `Consensys/teku` | Gradle | `master` (dev), tags for releases | | Nimbus | Nim | `status-im/nimbus-eth2` | Nimble + Make | `unstable` (dev), `stable` (releases) | | Grandine | Rust | `grandinetech/grandine` | Cargo workspace | `develop` (dev), tags for releases | --- ## Lodestar (TypeScript) **Repo:** `ChainSafe/lodestar` **Package structure** (`packages/`): | Package | Purpose | |---|---| | `beacon-node` | Beacon chain client — block processing, sync, networking, API server | | `validator` | Validator client — duties, signing, slashing protection | | `state-transition` | Beacon state transition — epoch/block processing, per-fork logic | | `fork-choice` | LMD-GHOST + Casper FFG fork choice | | `types` | SSZ type definitions for all forks | | `params` | Consensus parameters and constants | | `config` | Network configuration (mainnet, testnet presets) | | `api` | REST client for beacon API | | `light-client` | Light client sync protocol | | `db` | Database layer (LevelDB) | | `reqresp` | libp2p req/resp protocol handlers | | `cli` | Command-line interface | | `logger` | Logging infrastructure | | `utils` | Shared utilities | | `prover` | Light client JSON-RPC proxy | | `era` | ERA file handling (historical data) | | `flare` | Debugging/testing tool | | `spec-test-util` | Spec test runner utilities | | `test-utils` | Shared test helpers | **Key code paths:** - State transition: `packages/state-transition/src/` - Per-fork logic: `packages/state-transition/src/slot/` - Epoch processing: `packages/state-transition/src/epoch/` - Block processing: `packages/state-transition/src/block/` - Networking: `packages/beacon-node/src/network/` - Sync: `packages/beacon-node/src/sync/` - API server: `packages/beacon-node/src/api/` - Fork choice: `packages/fork-choice/src/` - SSZ types: `packages/types/src/` **How to fetch code:** ``` https://raw.githubusercontent.com/ChainSafe/lodestar/unstable/packages/{package}/src/{path}.ts ``` **Key secondary repos:** | Repo | What | How to fetch | |---|---|---| | `ChainSafe/lodestar-z` | Zig libraries for Lodestar — actively developed, integrated into main client for performance-critical paths | `https://raw.githubusercontent.com/ChainSafe/lodestar-z/main/{path}` | | `ChainSafe/ssz` | SSZ TypeScript implementation (tree-backed persistent data structures) — `@chainsafe/ssz` on npm. Monorepo with packages: `ssz`, `persistent-merkle-tree`, `as-sha256`, `persistent-ts` | `https://raw.githubusercontent.com/ChainSafe/ssz/master/packages/ssz/src/{path}.ts` | | `ChainSafe/discv5` | Discovery v5 TypeScript implementation — used by Lodestar for peer discovery. Monorepo with `@chainsafe/discv5` and `@chainsafe/enr` packages | `https://raw.githubusercontent.com/ChainSafe/discv5/master/packages/discv5/src/{path}.ts` | --- ## Lighthouse (Rust) **Repo:** `sigp/lighthouse` **Directory structure:** | Directory | Purpose | |---|---| | `beacon_node/` | Beacon node — contains sub-crates for each component | | `beacon_node/beacon_chain/` | Core chain logic — block processing, head tracking | | `beacon_node/store/` | Database (hot + cold storage, LevelDB) | | `beacon_node/network/` | libp2p networking, sync | | `beacon_node/http_api/` | REST API server | | `beacon_node/execution_layer/` | Engine API client (EL communication) | | `beacon_node/eth1/` | Deposit contract interface | | `consensus/` | Spec implementation crates | | `consensus/types/` | SSZ types and containers | | `consensus/state_processing/` | State transition logic | | `consensus/fork_choice/` | Fork choice (proto-array) | | `consensus/cached_tree_hash/` | Optimized tree hashing | | `validator_client/` | Validator client | | `crypto/` | BLS, KZG, and other crypto | | `slasher/` | Slashing detection | | `lcli/` | CLI development tools | | `boot_node/` | Discovery bootstrap node | | `common/` | Shared libraries (logging, filesystem, etc.) | | `testing/` | Test utilities, simulator | **Key code paths:** - State transition: `consensus/state_processing/src/` - Per-slot: `consensus/state_processing/src/per_slot_processing.rs` - Per-block: `consensus/state_processing/src/per_block_processing/` - Per-epoch: `consensus/state_processing/src/per_epoch_processing/` - Types: `consensus/types/src/` - Fork choice: `consensus/fork_choice/src/` - Networking: `beacon_node/network/src/` - Sync: `beacon_node/network/src/sync/` - REST API: `beacon_node/http_api/src/` **How to fetch code:** ``` https://raw.githubusercontent.com/sigp/lighthouse/unstable/{path}.rs ``` **Key secondary repos:** | Repo | What | How to fetch | |---|---|---| | `sigp/ethereum_ssz` | SSZ serialization crate, optimized for speed and security | `https://raw.githubusercontent.com/sigp/ethereum_ssz/main/ssz/src/{path}.rs` | | `sigp/discv5` | Discovery v5 Rust implementation | `https://raw.githubusercontent.com/sigp/discv5/master/src/{path}.rs` | | `sigp/milhouse` | Persistent binary merkle tree — used for efficient state storage | `https://raw.githubusercontent.com/sigp/milhouse/main/src/{path}.rs` | | `sigp/enr` | Ethereum Node Records implementation | `https://raw.githubusercontent.com/sigp/enr/master/src/{path}.rs` | --- ## Prysm (Go) **Repo:** `prysmaticlabs/prysm` **Directory structure:** | Directory | Purpose | |---|---| | `beacon-chain/` | Beacon node implementation | | `beacon-chain/core/` | Core spec logic (blocks, epoch, validators) | | `beacon-chain/state/` | Beacon state management | | `beacon-chain/blockchain/` | Chain processing, head tracking | | `beacon-chain/sync/` | Sync protocols (initial, regular) | | `beacon-chain/p2p/` | libp2p networking | | `beacon-chain/rpc/` | gRPC + REST API | | `beacon-chain/execution/` | Engine API client | | `beacon-chain/forkchoice/` | Fork choice implementation | | `beacon-chain/db/` | Database (BoltDB) | | `validator/` | Validator client | | `consensus-types/` | Shared consensus data types | | `proto/` | Protobuf definitions | | `encoding/` | SSZ encoding, bytesutil | | `config/` | Network config, feature flags | | `crypto/` | BLS, hash utilities | | `network/` | High-level network utilities | | `monitoring/` | Metrics, tracing | | `contracts/deposit/` | Deposit contract bindings | | `cmd/` | CLI entry points (beacon-chain, validator, etc.) | | `tools/` | Development tools | **Key code paths:** - Block processing: `beacon-chain/core/blocks/` - Epoch processing: `beacon-chain/core/epoch/` - State transition: `beacon-chain/core/transition/` - Validator logic: `beacon-chain/core/validators/` - Fork choice: `beacon-chain/forkchoice/` - Types: `consensus-types/` - Networking: `beacon-chain/p2p/` - Sync: `beacon-chain/sync/` **How to fetch code:** ``` https://raw.githubusercontent.com/prysmaticlabs/prysm/develop/{path}.go ``` **Key secondary repos:** | Repo | What | How to fetch | |---|---|---| | `prysmaticlabs/gohashtree` | SHA256 library optimized for Merkle trees (Go + Assembly) | `https://raw.githubusercontent.com/prysmaticlabs/gohashtree/main/{path}.go` | Prysm is largely self-contained — most dependencies are vendored or in the main repo. --- ## Teku (Java) **Repo:** `Consensys/teku` **Directory structure:** | Directory | Purpose | |---|---| | `beacon/` | Core beacon chain logic | | `beacon/validator/` | Validator duties management | | `ethereum/` | Ethereum protocol modules | | `ethereum/spec/` | Spec types, logic, and milestones | | `ethereum/statetransition/` | State transition implementation | | `ethereum/executionlayer/` | Engine API client | | `networking/` | libp2p and discovery | | `networking/eth2/` | Eth2 gossip/reqresp protocols | | `storage/` | Database layer (RocksDB) | | `validator/` | Validator client modules | | `services/` | Service layer modules | | `infrastructure/` | Logging, metrics, async, IO | | `data/` | Data serialization, API types | | `eth-tests/` | Ethereum spec test integration | | `eth-reference-tests/` | Reference test runners | | `fork-choice-tests/` | Fork choice test vectors | | `acceptance-tests/` | End-to-end integration tests | | `teku/` | Main application entry point | **Key code paths:** - Spec logic: `ethereum/spec/src/main/java/tech/pegasys/teku/spec/` - Per-fork logic: `ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/` - Types: `ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/`
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub