2.3 KiB
Development Environment Setup
This document describes how to setup a development environment. It is intended for software developers and researchers who wish to contribute to development.
Lighthouse is a Rust project and cargo is
used extensively. As such, you'll need to install Rust in order to build the
project. Generally, Rust is installed using the
rustup tool-chain manager.
Steps
A fully-featured development environment can be achieved with the following steps:
- Install rustup.
- Use the command
rustup showto get information about the Rust installation. You should see that the active tool-chain is the stable version.- Updates can be performed using
rustup update, Lighthouse generally requires a recent version of Rust.
- Updates can be performed using
- Install build dependencies (Arch packages are listed here, your
distribution will likely be similar):
clang: required by RocksDB.protobuf: required for protobuf serialization (gRPC)libssl-dev: also gRPCcmake: required for building protobufgit-lfs: The Git extension for Large File Support (required for Ethereum Foundation test vectors).
- Clone the repository with submodules:
git clone --recursive https://github.com/sigp/lighthouse. If you're already cloned the repo, ensure testing submodules are present:$ git submodule init; git submodule update - Change directory to the root of the repository.
- Run the test suite with
cargo test --all --release. The build and test process can take several minutes. If you experience any failures onmaster, please raise an issue.
Notes:
Lighthouse targets Rust stable but generally runs on nightly too.
Note for Windows users:
Perl may also be required to build lighthouse. You can install Strawberry
Perl, or alternatively use a choco install command
choco install strawberryperl.
Additionally, the dependency protoc-grpcio v0.3.1 is reported to have issues
compiling in Windows. You can specify a known working version by editing
version in protos/Cargo.toml section to protoc-grpcio = "<=0.3.0".