## Issue Addressed
NA
## Proposed Changes
Adds support for using the [`cross`](https://github.com/rust-embedded/cross) project to produce cross-compiled binaries using Docker images.
Provides quite clean and simple cross-compiles cause all the complexity is hidden in Dockerfiles. It does require you to be in the `docker` group though.
## Details
- Adds shortcut commands to `Makefile`
- Ensures `reqwest` and `discv5` use vendored openssl libs (i.e., static not shared).
- Switches to a [commit](284f705964) of blst that has a renamed C function to avoid a collision with openssl (upstream issue: https://github.com/supranational/blst/issues/21).
- Updates `ring` to the latest satisfiable version, since an earlier version was causing issues with `cross`.
- Off-topic, but adds extra message about Windows support as suggested by Discord user.
## Additional Info
- ~~Blocked on #1495~~
- There are no tests in CI for this yet for a few reasons:
- I'm hesitant to add more long-running tasks.
- Short-term bitrot should be avoided since we'll use it each release.
- In the long term I think it would be good to automate binary creation on a release.
- I observed the binaries increase in size from 50mb to 52mb after these changes.
1.7 KiB
Raspberry Pi 4 Installation
Tested on:
- Raspberry Pi 4 Model B (4GB)
Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1011-raspi aarch64)
Note: Lighthouse supports cross-compiling to target a
Raspberry Pi (aarch64). Compiling on a faster machine (i.e., x86_64
desktop) may be convenient.
1. Install Ubuntu
Follow the Ubuntu Raspberry Pi installation instructions.
A 64-bit version is required and latest version is recommended (Ubuntu 20.04 LTS was the latest at the time of writing).
A graphical environment is not required in order to use Lighthouse. Only the terminal and an Internet connection are necessary.
2. Install Packages
Install the Ubuntu Dependencies.
(I.e., run the sudo apt install ... command at that link).
Tips:
- If there are difficulties, try updating the package manager with
sudo apt update.
3. Install Rust
Install Rust as per rustup. (I.e., run the curl ...
command).
Tips:
- When prompted, enter
1for the default installation.- Try running
cargo versionafter Rust installation completes. If it cannot be found, runsource $HOME/.cargo/env.- It's generally advised to append
source $HOME/.cargo/envto~/.bashrc.
4. Install Lighthouse
git clone https://github.com/sigp/lighthouse.git
cd lighthouse
make
Compiling Lighthouse can take up to an hour. The safety guarantees provided by the Rust language unfortunately result in a lengthy compilation time on a low-spec CPU like a Raspberry Pi.
Once installation has finished, confirm Lighthouse is installed by viewing the
usage instructions with lighthouse --help.