Espresso Network is a confirmation layer for Ethereum rollups. crates/espresso/ is the application, crates/hotshot/
the generic BFT consensus library it is built on, contracts/ the Solidity L1 side.
doc/agents/rust.md- before running cargo or writing Rust: commands, conventions, storage, tests, adding an API endpointdoc/agents/refinery-migrations.md- before writing a SQL migration that touches existing rowsdoc/agents/solidity.md- before touchingcontracts/API.md- the v1 and v2 APIs, and how to add a v2 endpointdoc/agents/architecture.md- transaction and block flow, L1 reads, stake table, consensus upgradesdoc/agents/protocol-versions.md- what each version changed, and what a network runsdoc/agents/live-chains.md- querying mainnet or decaf over the query-service APIdoc/agents/rewards.md- reward accumulation and the L1 claim pathdoc/cargo-features.md- feature gates for zkVM builds and which functions panic without themdoc/upgrades.md- configuring and running a consensus upgradedoc/software-releases.md- release branches,MAJOR.MINOR.PHASE.PATCHtags, the tracker issue and its commandsdoc/espresso-dev-node.md- single-process dev node, for rollup integration workdoc/light-client-follower.md- a query node without stake that follows the chain through the light clientdoc/pup.md-pupDatadog CLI, for logs and metrics of Espresso's own infrastructure
Reviewing is the bottleneck. Default to changes that minimize reviewer time.
- Each PR is one self-contained change. Split larger work into a stack.
- Separate refactors and renames from behavior changes. Every commit compiles and passes tests.
- Delete code in its own commit.
- Don't spread small edits across many files when one file would do.
- Order code top-down: public API first, helpers below. Reviewers read in declaration order.
- Each function fits on one screen. Extract named sub-steps; don't use comments to mark sections.
- Comment the why only when it isn't visible from types or code. Don't narrate the what.
- Subject: imperative, scoped, under 70 chars (
feat(stake-table): ...). - When work is ready, suggest an updated PR description capturing the final changeset.
- Tell the reviewer where to focus.
- Link the regression test or
referencetest when touching serializable types.
justfile- build/test/deploy commandsdata/genesis/*.toml- genesis configs, including the protocol version each network runsdata/v*/- reference serialization test vectors