**Motivation** The docker build no longer works since https://github.com/ChainSafe/lodestar/pull/8462 see [most recent job run](https://github.com/ChainSafe/lodestar/actions/runs/18008927165/job/51241364972) ``` #13 [linux/amd64 build_src 5/6] RUN yarn install --non-interactive --frozen-lockfile && yarn build && yarn install --non-interactive --frozen-lockfile --production #13 ERROR: process "/bin/sh -c yarn install --non-interactive --frozen-lockfile && yarn build && yarn install --non-interactive --frozen-lockfile --production" did not complete successfully: exit code: 1 #15 [linux/arm64 build_deps 3/6] RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/* #15 67.27 Preparing to unpack .../54-libfreetype6_2.12.1+dfsg-5+deb12u4_arm64.deb ... #15 67.27 Unpacking libfreetype6:arm64 (2.12.1+dfsg-5+deb12u4) ... #15 CANCELED ------ > [linux/amd64 build_src 5/6] RUN yarn install --non-interactive --frozen-lockfile && yarn build && yarn install --non-interactive --frozen-lockfile --production: 0.219 yarn install v1.22.22 0.317 [1/5] Validating package.json... 0.336 [2/5] Resolving packages... 0.646 [3/5] Fetching packages... 28.83 error Couldn't find the binary git 28.83 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. ------ Dockerfile:11 -------------------- 10 | 11 | >>> RUN yarn install --non-interactive --frozen-lockfile && \ 12 | >>> yarn build && \ 13 | >>> yarn install --non-interactive --frozen-lockfile --production 14 | -------------------- ERROR: failed to solve: process "/bin/sh -c yarn install --non-interactive --frozen-lockfile && yarn build && yarn install --non-interactive --frozen-lockfile --production" did not complete successfully: exit code: 1 Error: Process completed with exit code 1. ``` We need to add `git` to be able to install `@lodestar/bun` **Description** Add `git` to Dockerfile to be able to install dependencies that reference a github repository eg. `@lodestar/bun` ```jsonc "@lodestar/bun": "git+https://github.com/ChainSafe/lodestar-bun.git ```
Lodestar Ethereum Consensus Implementation
Lodestar is a TypeScript implementation of the Ethereum Consensus specification developed by ChainSafe Systems.
Getting started
- ⚙️ Follow the instructions for build from source, binaries, or Docker to install Lodestar. Or use our Lodestar Quickstart scripts.
- 📚 Use Lodestar libraries in your next Ethereum Typescript project.
- 🌐 Run a beacon node on mainnet or a public testnet.
- 💻 Utilize the whole stack by starting a local testnet.
- 🗒️ View the Lodestar CLI commands and options.
- 🤓 View the Package and dependency structure.
- 📝 Prospective contributors can read the contributing section to understand how we develop and test on Lodestar.
- ✍️ If you have questions submit an issue or join us on Discord!
- 🚨 Please note our security policy.
- 🐦 Follow Lodestar on Twitter for announcements and updates!
Prerequisites
Developer Quickstart:
yarn install
yarn build
./lodestar --help
Architecture Overview
- 📦 This mono-repository contains a suite of Ethereum Consensus packages.
- ⚖️ The mono-repository is released under Apache-2.0 license. Note, that the packages contain their own licenses.
| Package | Version | License | Docs | Description |
|---|---|---|---|---|
@chainsafe/lodestar |
💻 Command-line tool for Lodestar | |||
@lodestar/api |
📋 REST Client for the Ethereum Beacon API | |||
@lodestar/beacon-node |
🚨 Beacon-chain client | |||
@lodestar/config |
🗒️ Eth Consensus types and params bundled together | |||
@lodestar/db |
💾 Read/write persistent Eth Consensus data | |||
@lodestar/flare |
💥 Command tool for triggering non-standard actions | |||
@lodestar/fork-choice |
🍴 Beacon-chain fork choice | |||
@lodestar/light-client |
🐦 Ethereum Light client | |||
@lodestar/logger |
📝 NodeJS logger for Lodestar binaries | |||
@lodestar/params |
🕸️ Eth Consensus network parameters | |||
@lodestar/prover |
✅ Ethereum Light client verifier for execution JSON-RPC calls | |||
@lodestar/reqresp |
📞 Eth Consensus Req/Resp protocol | |||
@lodestar/spec-test-util |
🧪 Test harness for Eth Consensus spec tests | |||
@lodestar/state-transition |
🔎 Eth Consensus beacon-state transition | |||
@lodestar/types |
🗒️ Eth Consensus TypeScript and SSZ types | |||
@lodestar/utils |
🧰 Miscellaneous utility functions used across Lodestar | |||
@lodestar/validator |
🏦 Validator client |
Contributors
Read our contributors document, submit an issue or talk to us on our Discord!
Meetings
Weekly contributor meetings are posted under Discussions and topics are welcomed by any participant in the relevant meeting thread. Feel free to check out our meeting notes and documents on HackMD. Post-September 2021, meeting notes can be found on the Lodestar Wiki Page.
Donations
We are a local group of Toronto open-source developers. As such, all of our open-source work is funded by grants. We all take the time out of our hectic lives to contribute to the Ethereum ecosystem. If you want to donate, you can find the ETH address under "Sponsor this project" on this repository.