mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-23 14:54:45 +00:00
## Issue Addressed Upgrade libp2p to v0.52 ## Proposed Changes - **Workflows**: remove installation of `protoc` - **Book**: remove installation of `protoc` - **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s - **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start - **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks - **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way - **Lighthouse network** - connection limits is now a behaviour - banned peers no longer exist on the swarm level, but at the behaviour level - `connection_event_buffer_size` now is handled per connection with a buffer size of 4 - `mplex` is deprecated and was removed - rpc handler now logs the peer to which it belongs ## Additional Info Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade: - Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it - More powerful peer management: Dial attempts from other behaviours can be rejected early - Incoming connections can be rejected early - Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this - TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips Co-authored-by: Age Manning <Age@AgeManning.com> Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
# 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](./cross-compiling.md) 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](https://ubuntu.com/download/raspberry-pi). **A 64-bit version is required**
|
|
|
|
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:
|
|
|
|
```bash
|
|
sudo apt install -y git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang
|
|
```
|
|
|
|
> Tips:
|
|
>
|
|
> - If there are difficulties, try updating the package manager with `sudo apt
|
|
> update`.
|
|
|
|
### 3. Install Rust
|
|
|
|
Install Rust as per [rustup](https://rustup.rs/):
|
|
|
|
```bash
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
```
|
|
|
|
> Tips:
|
|
>
|
|
> - During installation, when prompted, enter `1` for the default installation.
|
|
> - After Rust installation completes, try running `cargo version` . If it cannot
|
|
> be found, run `source $HOME/.cargo/env`. After that, running `cargo version` should return the version, for example `cargo 1.68.2`.
|
|
> - It's generally advisable to append `source $HOME/.cargo/env` to `~/.bashrc`.
|
|
|
|
### 4. Install Lighthouse
|
|
|
|
```bash
|
|
git clone https://github.com/sigp/lighthouse.git
|
|
cd lighthouse
|
|
git checkout stable
|
|
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. For faster
|
|
compilation on low-spec hardware, try [cross-compiling](./cross-compiling.md) on a more powerful
|
|
computer (e.g., compile for RasPi from your desktop computer).
|
|
|
|
Once installation has finished, confirm Lighthouse is installed by viewing the
|
|
usage instructions with `lighthouse --help`.
|