Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 19 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,38 +59,31 @@ The following links, repos, companies and projects have been important in the de

If we forgot to include anyone, please file an issue so we can add you. We always strive to reference the inspirations and code we use, but as an organization with multiple people, mistakes can happen, and someone might forget to include a reference.

## Roadmap
## Current Status

The initial project setup and integration with [lean-quickstart](https://github.com/blockblaz/lean-quickstart) are complete.
The client implements the core features of a Lean Ethereum consensus client:

### Listen for new blocks
- **Networking** — libp2p peer connections, STATUS message handling, gossipsub for blocks and attestations
- **State management** — genesis state generation, state transition function, block processing
- **Fork choice** — 3SF-mini fork choice rule implementation with attestation-based head selection
- **Validator duties** — attestation production and broadcasting, block building

This milestone focuses on connecting to other clients and listening for new blocks through gossipsub.
Additional features:

- Connect to other peers via libp2p ✅
- Respond to STATUS messages from other peers ✅
- Listen for new blocks in gossipsub ✅
- [leanMetrics](docs/metrics.md) support for monitoring and observability
- [lean-quickstart](https://github.com/blockblaz/lean-quickstart) integration for easier devnet running

### Compute current chain state
### pq-devnet-1

This milestone focuses on computing the chain state from the gossiped by peers received.
We support the [pq-devnet-1 spec](https://github.com/leanEthereum/pm/blob/main/breakout-rooms/leanConsensus/pq-interop/pq-devnet-1.md). A dedicated git branch and docker tag `devnet1` are available for this version.

- Generate initial state from genesis configuration ✅
- Implement state transition function ✅
- Transition state on each new block ✅
## Incoming features

### Apply fork-choice rule
Some features we are looking to implement in the near future, in order of priority:

This milestone focuses on choosing the head of the chain based on gossiped attestations.

- Listen for attestations in gossipsub ✅
- Implement fork-choice rule ✅
- Apply fork-choice rule based on received attestations ✅

### Produce blocks and attestations

This milestone focuses on performing the duties of a validator.

- Produce and broadcast attestations on each slot ✅
- Compute current proposer for each slot ✅
- Build and broadcast new blocks when proposing ✅
- [pq-devnet-2](https://github.com/leanEthereum/pm/blob/main/breakout-rooms/leanConsensus/pq-interop/pq-devnet-2.md) support: signature aggregation with leanMultisig
- Data persistence: DB-backed Store
- Historical syncing from genesis for existing devnets
- Checkpoint sync for long-lived networks
- Observability: more metrics from leanMetrics and better logs
- RPC endpoints for chain data consumption
2 changes: 2 additions & 0 deletions docs/metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

We collect various metrics and serve them via a Prometheus-compatible HTTP endpoint at `http://<metrics_address>:<metrics_port>/metrics` (default: `http://127.0.0.1:5054/metrics`).

We provide a ready-to-use Grafana + Prometheus monitoring stack in the [`metrics/`](../metrics/) directory. It includes pre-configured dashboards from the [leanMetrics](https://github.com/leanEthereum/leanMetrics) repository for visualizing the metrics described below. See the [metrics README](../metrics/README.md) for setup instructions.

The exposed metrics follow [the leanMetrics specification](https://github.com/leanEthereum/leanMetrics/blob/3b32b300cca5ed7a7a2b3f142273fae9dbc171bf/metrics.md), with some metrics not yet implemented. We have a full list of implemented metrics below, with a checkbox indicating whether each metric is currently supported or not.

## Node Info Metrics
Expand Down