Update "Getting started" part of the book (#4938)
* refactor index.md * move philosophy.md into index.md * clean up the 'getting started' topic move how-to's to the how-to section * cleaner titles * move prerequisites to the install.md page * hardware.md: small refactor * improve quick-start.md * refactor eth1.md * refactor validating guide * reverse the order of BN and LC in the table * pi-guide.md: minor edit * Apply suggestions from code review Co-authored-by: tersec <tersec@users.noreply.github.com> * make link texts more concrete * remove comparison to other clients * add some more explanations to `build.md` * change 'days' to 'hours' --------- Co-authored-by: tersec <tersec@users.noreply.github.com>
This commit is contained in:
parent
6548651e42
commit
73fc1d5a2b
|
@ -43,17 +43,14 @@ markdown_extensions:
|
||||||
toc_depth: 3
|
toc_depth: 3
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- About:
|
- Home:
|
||||||
- 'index.md'
|
- 'index.md'
|
||||||
- 'philosophy.md'
|
|
||||||
|
|
||||||
- Getting started:
|
- Getting started:
|
||||||
- 'quick-start.md'
|
- 'quick-start.md'
|
||||||
- 'run-a-validator.md'
|
- 'run-a-validator.md'
|
||||||
- 'migration.md'
|
|
||||||
- 'metrics-pretty-pictures.md'
|
|
||||||
- 'pi-guide.md'
|
|
||||||
- 'el-light-client.md'
|
- 'el-light-client.md'
|
||||||
|
- 'pi-guide.md'
|
||||||
|
|
||||||
- How-to:
|
- How-to:
|
||||||
- Beacon node:
|
- Beacon node:
|
||||||
|
@ -61,6 +58,7 @@ nav:
|
||||||
- 'build.md'
|
- 'build.md'
|
||||||
- 'start-syncing.md'
|
- 'start-syncing.md'
|
||||||
- 'trusted-node-sync.md'
|
- 'trusted-node-sync.md'
|
||||||
|
- 'migration.md'
|
||||||
|
|
||||||
- Validator:
|
- Validator:
|
||||||
- 'deposit.md'
|
- 'deposit.md'
|
||||||
|
@ -81,6 +79,7 @@ nav:
|
||||||
- 'goerli-eth.md'
|
- 'goerli-eth.md'
|
||||||
- 'beacon-node-systemd.md'
|
- 'beacon-node-systemd.md'
|
||||||
- 'log-rotate.md'
|
- 'log-rotate.md'
|
||||||
|
- 'metrics-pretty-pictures.md'
|
||||||
- 'database-backup.md'
|
- 'database-backup.md'
|
||||||
- 'email-notifications.md'
|
- 'email-notifications.md'
|
||||||
- 'profits.md'
|
- 'profits.md'
|
||||||
|
|
|
@ -9,68 +9,7 @@ The build process itself is simple and fully automated, but may take a few minut
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
!!! tip
|
Make sure you have all needed [build prerequisites](./install.md#build-prerequisites).
|
||||||
If you are planning to use the precompiled binaries, you can skip this section and go straight to the [binaries](./binaries.md)!
|
|
||||||
|
|
||||||
When building from source, you will need additional build dependencies to be installed:
|
|
||||||
|
|
||||||
- Developer tools (C compiler, Make, Bash, Git)
|
|
||||||
- [CMake](https://cmake.org/)
|
|
||||||
|
|
||||||
<!-- TODO: Please test whether the instructions below are correct. I think we are missing some dependencies on Windows. -->
|
|
||||||
<!-- Microsoft offer virtual machines that you can use for testing here: -->
|
|
||||||
<!-- https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ -->
|
|
||||||
|
|
||||||
=== "Linux"
|
|
||||||
|
|
||||||
On common Linux distributions the dependencies can be installed with
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Debian and Ubuntu
|
|
||||||
sudo apt-get install build-essential git cmake
|
|
||||||
|
|
||||||
# Fedora
|
|
||||||
dnf install @development-tools cmake
|
|
||||||
|
|
||||||
# Archlinux, using an AUR manager
|
|
||||||
yourAURmanager -S base-devel cmake
|
|
||||||
```
|
|
||||||
|
|
||||||
=== "macOS"
|
|
||||||
|
|
||||||
With [Homebrew](https://brew.sh/):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
brew install cmake
|
|
||||||
```
|
|
||||||
|
|
||||||
=== "Windows"
|
|
||||||
|
|
||||||
To build Nimbus on Windows, the MinGW-w64 build environment is recommended.
|
|
||||||
|
|
||||||
Install Mingw-w64 for your architecture using the "[MinGW-W64 Online Installer](https://sourceforge.net/projects/mingw-w64/files/)":
|
|
||||||
|
|
||||||
1. Select your architecture in the setup menu (`i686` on 32-bit, `x86_64` on 64-bit).
|
|
||||||
2. Set threads to `win32`.
|
|
||||||
3. Set exceptions to "dwarf" on 32-bit and "seh" on 64-bit.
|
|
||||||
4. Change the installation directory to `C:\mingw-w64` and add it to your system PATH in `"My Computer"/"This PC" -> Properties -> Advanced system settings -> Environment Variables -> Path -> Edit -> New -> C:\mingw-w64\mingw64\bin` (`C:\mingw-w64\mingw32\bin` on 32-bit).
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
If the online installer isn't working you can try installing `mingw-w64` through [MSYS2](https://www.msys2.org/).
|
|
||||||
|
|
||||||
Install [Git for Windows](https://gitforwindows.org/) and use a "Git Bash" shell to clone and build `nimbus-eth2`.
|
|
||||||
|
|
||||||
=== "Android"
|
|
||||||
|
|
||||||
- Install the [Termux](https://termux.com) app from FDroid or the Google Play store
|
|
||||||
- Install a [PRoot](https://wiki.termux.com/wiki/PRoot) of your choice following the instructions for your preferred distribution.
|
|
||||||
Note, the Ubuntu PRoot is known to contain all Nimbus prerequisites compiled on Arm64 architecture (the most common architecture for Android devices).
|
|
||||||
|
|
||||||
Assuming you use Ubuntu PRoot
|
|
||||||
|
|
||||||
```sh
|
|
||||||
apt install build-essential git
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building the node
|
## Building the node
|
||||||
|
|
||||||
|
@ -91,3 +30,19 @@ make -j4 nimbus_beacon_node
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
Omit `-j4` on systems with 4GB of memory or less.
|
Omit `-j4` on systems with 4GB of memory or less.
|
||||||
|
|
||||||
|
This step can take several minutes.
|
||||||
|
After it has finished, you can check if the installation was successful by running:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
build/nimbus_beacon_node --help
|
||||||
|
```
|
||||||
|
|
||||||
|
If you see the command-line options, your installation was successful!
|
||||||
|
Otherwise, don't hesitate to reach out to us in the `#helpdesk` channel of [our discord](https://discord.gg/j3nYBUeEad).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Keeping Nimbus updated
|
||||||
|
|
||||||
|
When you decide to upgrade Nimbus to a newer version, make sure to follow the [keeping updated guide](./keep-updated.md).
|
|
@ -1,4 +1,4 @@
|
||||||
# Run the light client
|
# Light client
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
The light client is currently in BETA and details around running it may change.
|
The light client is currently in BETA and details around running it may change.
|
||||||
|
@ -12,13 +12,13 @@ Since the merge 🐼, execution clients can no longer run standalone.
|
||||||
|
|
||||||
Compared to a full beacon node, a light client has several advantages and disadvantages.
|
Compared to a full beacon node, a light client has several advantages and disadvantages.
|
||||||
|
|
||||||
| Feature | Light Client | Beacon Node |
|
| Feature | Beacon Node | Light Client |
|
||||||
| -- | -- | -- |
|
| -- | -- | -- |
|
||||||
| Disk usage | **<1MB** | ~70GB |
|
| Disk usage | ~70GB | **<1MB** |
|
||||||
| Bandwidth | **TBD (low)** | *TBD* |
|
| Bandwidth | *TBD* | **TBD (low)** |
|
||||||
| Sync time | **Seconds** | Days |
|
| Sync time | Hours | **Seconds** |
|
||||||
| Head delay | 4/3 slot (15 s) | **None** |
|
| Head delay | **None** | 4/3 slot (15 s) |
|
||||||
| Security | Light | **Full** |
|
| Security | **Full** | Light |
|
||||||
|
|
||||||
Light clients delegate full validation to other network participants and operate under a honest supermajority (> 2/3) assumption among elected participants.
|
Light clients delegate full validation to other network participants and operate under a honest supermajority (> 2/3) assumption among elected participants.
|
||||||
Due to this delegation, light clients are typically behind by ~4/3 slots (~15 seconds on Ethereum mainnet).
|
Due to this delegation, light clients are typically behind by ~4/3 slots (~15 seconds on Ethereum mainnet).
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
# Run an execution client
|
# Run an execution client
|
||||||
|
|
||||||
In order to perform validation duties, you need to also be running an execution client — at least one for each beacon node.
|
In order to perform validation duties, you **must have** an execution client running — at least one for each beacon node.
|
||||||
|
Relying on third-party services such as Infura, Alchemy and Pocket is no longer possible.
|
||||||
|
Sharing the same execution client between multiple beacon nodes is not supported.
|
||||||
|
|
||||||
Nimbus has been tested all major execution clients, see the [execution client comparison](https://ethereum.org/en/developers/docs/nodes-and-clients/#execution-clients) for more information.
|
Nimbus has been tested with all major execution clients.
|
||||||
|
See the [execution client comparison](https://ethereum.org/en/developers/docs/nodes-and-clients/#execution-clients) for more information.
|
||||||
!!! warning
|
|
||||||
You need to run your own execution client.
|
|
||||||
Relying on third-party services such as Infura, Alchemy and Pocket is no longer possible.
|
|
||||||
Sharing the same execution client between multiple beacon nodes is not supported.
|
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
Syncing an execution client may take hours or even days, depending on your hardware!
|
Syncing an execution client **may take hours or even days**, depending on your hardware!
|
||||||
|
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
|
|
|
@ -9,11 +9,15 @@ The recommended system requirements for running the Nimbus beacon node are:
|
||||||
| Disk space | 200GB |
|
| Disk space | 200GB |
|
||||||
| Network | Reliable broadband |
|
| Network | Reliable broadband |
|
||||||
|
|
||||||
!!! note "Execution client"
|
|
||||||
In addtion to the beacon node, you will need to run an [execution client](./eth1.md).
|
|
||||||
Check the documentation of the client of choice and add them to the above requirements.
|
|
||||||
|
|
||||||
Broadly, to run both an execution and a consensus client on the same machine, we recommend a **2 TB** SSD drive and **8 GB RAM**.
|
### Execution client
|
||||||
|
|
||||||
!!! note "Minimal requirements"
|
In addition to the beacon node, you will need to run an [execution client](./eth1.md).
|
||||||
Nimbus has been optimized to also run well on hardware significantly less powerful than the recommended system requirements — the more validators you run on the same node, the more hardware resources and network bandwidth will it will use.
|
Check the documentation of the client of choice and add them to the above requirements.
|
||||||
|
|
||||||
|
Broadly, to run both an execution and a consensus client on the same machine, we recommend a **2 TB** SSD and **16 GB RAM**.
|
||||||
|
|
||||||
|
|
||||||
|
### Minimal requirements
|
||||||
|
|
||||||
|
Nimbus has been optimized to also run well on hardware significantly less powerful than the recommended system requirements — the more validators you run on the same node, the more hardware resources and network bandwidth will it will use.
|
||||||
|
|
|
@ -1,19 +1,13 @@
|
||||||
# The Nimbus Guide
|
# The Nimbus Guide
|
||||||
|
|
||||||
!!! note ""
|
|
||||||
Eager to get started?
|
|
||||||
The [quickstart guide](./quick-start.md) is for you.
|
|
||||||
|
|
||||||
Coming from a different client?
|
|
||||||
Check out the [migration guide](./migration.md).
|
|
||||||
|
|
||||||
Nimbus is a client for the Ethereum network that is [lightweight](https://our.status.im/ethereum-is-green/), [secure](./audit.md) and [easy to use](./run-a-validator.md).
|
Nimbus is a client for the Ethereum network that is [lightweight](https://our.status.im/ethereum-is-green/), [secure](./audit.md) and [easy to use](./run-a-validator.md).
|
||||||
|
|
||||||
Its efficiency and low resource consumption allows it to perform well on all kinds of systems: ranging from Raspberry Pi's and mobile devices — where it contributes to low power consumption and security — to powerful servers where it leaves resources free to perform other tasks, such as running an [execution node](./eth1.md).
|
Its efficiency and low resource consumption allows it to perform well on all kinds of systems: ranging from Raspberry Pi and mobile devices — where it contributes to low power consumption and security — to powerful servers where it leaves resources free to perform other tasks, such as running an [execution node](./eth1.md).
|
||||||
|
|
||||||
This book describes the consensus layer client, [`nimbus-eth2`](https://github.com/status-im/nimbus-eth2).
|
This book describes the consensus layer client, [`nimbus-eth2`](https://github.com/status-im/nimbus-eth2).
|
||||||
An execution client, [nimbus-eth1](https://github.com/status-im/nimbus-eth2), is also under development.
|
An execution client, [nimbus-eth1](https://github.com/status-im/nimbus-eth2), is also under development.
|
||||||
|
|
||||||
|
|
||||||
## Feature highlights
|
## Feature highlights
|
||||||
|
|
||||||
* [Beacon node](./quick-start.md) with integrated validator client, slashing protection and doppelganger detection
|
* [Beacon node](./quick-start.md) with integrated validator client, slashing protection and doppelganger detection
|
||||||
|
@ -24,6 +18,36 @@ An execution client, [nimbus-eth1](https://github.com/status-im/nimbus-eth2), is
|
||||||
* [External block builder](./external-block-builder.md) (PBS / mev-boost) support with execution client fallback
|
* [External block builder](./external-block-builder.md) (PBS / mev-boost) support with execution client fallback
|
||||||
* [Light consensus client](./el-light-client.md) for running an execution client without a full beacon node
|
* [Light consensus client](./el-light-client.md) for running an execution client without a full beacon node
|
||||||
|
|
||||||
|
|
||||||
|
## Design goals
|
||||||
|
|
||||||
|
One of our most important design goals is an application architecture that makes it **simple to embed Nimbus into other software.**
|
||||||
|
|
||||||
|
Another goal is to **minimize reliance on third-party software.**
|
||||||
|
|
||||||
|
A third one is for the application binary to be as **lightweight as possible in terms of resources used.**
|
||||||
|
|
||||||
|
### Integration with Status
|
||||||
|
|
||||||
|
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I can't wait to run Nimbus straight from Status Desktop <a href="https://twitter.com/hashtag/hyped?src=hash&ref_src=twsrc%5Etfw">#hyped</a></p>— JARRAÐ HOPΞ (@jarradhope) <a href="https://twitter.com/jarradhope/status/1293473249347555334?ref_src=twsrc%5Etfw">August 12, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||||
|
|
||||||
|
As part of our first design goal, our primary objective here is for Nimbus to be tightly integrated into the [Status messaging app](https://status.im/).
|
||||||
|
|
||||||
|
Our dream is for you to be able to run and monitor your validator straight from Status desktop.
|
||||||
|
|
||||||
|
|
||||||
|
## Book contents
|
||||||
|
|
||||||
|
You can read this book from start to finish, or you might want to read just specific topics you're interested in:
|
||||||
|
|
||||||
|
* If you're eager to get started, the [quickstart guide](./quick-start.md) is for you.
|
||||||
|
* Coming from a different client? Check out the [migration guide](./migration.md).
|
||||||
|
* Visualize the important metrics with [Grafana and Prometheus](./metrics-pretty-pictures.md).
|
||||||
|
* Interested in becoming a validator? Follow the [validator guide](./run-a-validator.md).
|
||||||
|
* If you're not planning on becoming a validator, you can run the [light client](./el-light-client.md).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Get in touch
|
## Get in touch
|
||||||
|
|
||||||
Need help with anything?
|
Need help with anything?
|
||||||
|
|
|
@ -8,8 +8,68 @@ Check that your machine matches the [minimal system requirements](./hardware.md)
|
||||||
|
|
||||||
## Build prerequisites
|
## Build prerequisites
|
||||||
|
|
||||||
You will need to install developer tools (C compiler, Make, Bash, Git) and [CMake](https://cmake.org/).
|
!!! tip
|
||||||
See the [build guide](./build.md).
|
If you are planning to use the precompiled binaries, you can skip this section and go straight to the [binaries](./binaries.md)!
|
||||||
|
|
||||||
|
When building from source, you will need additional build dependencies to be installed:
|
||||||
|
|
||||||
|
- Developer tools (C compiler, Make, Bash, Git)
|
||||||
|
- [CMake](https://cmake.org/)
|
||||||
|
|
||||||
|
<!-- TODO: Please test whether the instructions below are correct. I think we are missing some dependencies on Windows. -->
|
||||||
|
<!-- Microsoft offer virtual machines that you can use for testing here: -->
|
||||||
|
<!-- https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ -->
|
||||||
|
|
||||||
|
=== "Linux"
|
||||||
|
|
||||||
|
On common Linux distributions the dependencies can be installed with:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Debian and Ubuntu
|
||||||
|
sudo apt-get install build-essential git cmake
|
||||||
|
|
||||||
|
# Fedora
|
||||||
|
dnf install @development-tools cmake
|
||||||
|
|
||||||
|
# Arch Linux, using an AUR manager
|
||||||
|
yourAURmanager -S base-devel cmake
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "macOS"
|
||||||
|
|
||||||
|
With [Homebrew](https://brew.sh/):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
brew install cmake
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Windows"
|
||||||
|
|
||||||
|
To build Nimbus on Windows, the MinGW-w64 build environment is recommended.
|
||||||
|
|
||||||
|
Install Mingw-w64 for your architecture using the "[MinGW-W64 Online Installer](https://sourceforge.net/projects/mingw-w64/files/)":
|
||||||
|
|
||||||
|
1. Select your architecture in the setup menu (`i686` on 32-bit, `x86_64` on 64-bit).
|
||||||
|
2. Set threads to `win32`.
|
||||||
|
3. Set exceptions to "dwarf" on 32-bit and "seh" on 64-bit.
|
||||||
|
4. Change the installation directory to `C:\mingw-w64` and add it to your system PATH in `"My Computer"/"This PC" -> Properties -> Advanced system settings -> Environment Variables -> Path -> Edit -> New -> C:\mingw-w64\mingw64\bin` (`C:\mingw-w64\mingw32\bin` on 32-bit).
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
If the online installer isn't working you can try installing `mingw-w64` through [MSYS2](https://www.msys2.org/).
|
||||||
|
|
||||||
|
Install [Git for Windows](https://gitforwindows.org/) and use a "Git Bash" shell to clone and build `nimbus-eth2`.
|
||||||
|
|
||||||
|
=== "Android"
|
||||||
|
|
||||||
|
- Install the [Termux](https://termux.com) app from FDroid or the Google Play store
|
||||||
|
- Install a [PRoot](https://wiki.termux.com/wiki/PRoot) of your choice following the instructions for your preferred distribution.
|
||||||
|
Note, the Ubuntu PRoot is known to contain all Nimbus prerequisites compiled on Arm64 architecture (the most common architecture for Android devices).
|
||||||
|
|
||||||
|
Assuming you use Ubuntu PRoot:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt install build-essential git
|
||||||
|
```
|
||||||
|
|
||||||
## Time
|
## Time
|
||||||
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
# Design goals
|
|
||||||
|
|
||||||
One of our most important design goals is an application architecture that makes it **simple to embed Nimbus into other software.**
|
|
||||||
|
|
||||||
Another goal is to **minimize reliance on third-party software.**
|
|
||||||
|
|
||||||
A third one is for the application binary to be as **lightweight as possible in terms of resources used.**
|
|
||||||
|
|
||||||
### Integration with Status
|
|
||||||
|
|
||||||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I can't wait to run Nimbus straight from Status Desktop <a href="https://twitter.com/hashtag/hyped?src=hash&ref_src=twsrc%5Etfw">#hyped</a></p>— JARRAÐ HOPΞ (@jarradhope) <a href="https://twitter.com/jarradhope/status/1293473249347555334?ref_src=twsrc%5Etfw">August 12, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
|
||||||
|
|
||||||
As part of our first design goal, our primary objective here is for Nimbus to be tightly integrated into the [Status messaging app](https://status.im/).
|
|
||||||
|
|
||||||
Our dream is for you to be able to run and monitor your validator straight from Status desktop.
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I expect the new Raspberry Pi 4 (4GB RAM option, external SSD) to handle an Eth2 validator node without breaking a sweat. That's $100 of hardware running at 10 Watts to support a 32 ETH node (currently ~$10K stake).</p>— Justin Ðrake (@drakefjustin) <a href="https://twitter.com/drakefjustin/status/1143091047058366465?ref_src=twsrc%5Etfw">June 24, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I expect the new Raspberry Pi 4 (4GB RAM option, external SSD) to handle an Eth2 validator node without breaking a sweat. That's $100 of hardware running at 10 Watts to support a 32 ETH node (currently ~$10K stake).</p>— Justin Ðrake (@drakefjustin) <a href="https://twitter.com/drakefjustin/status/1143091047058366465?ref_src=twsrc%5Etfw">June 24, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||||
|
|
||||||
> In addition to this guide, we highly recommend this [wonderful and complementary resource](https://docs.rocketpool.net/guides/node/local/prepare-pi.html#preliminary-setup) by community member Joe Clapis.
|
In addition to this guide, we highly recommend this [wonderful and complementary resource](https://docs.rocketpool.net/guides/node/local/prepare-pi.html#preliminary-setup) by community member Joe Clapis.
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
|
@ -41,12 +41,13 @@ As such, we try our best to explain things from first-principles.
|
||||||
|
|
||||||
### 1. Download Raspberry Pi Imager
|
### 1. Download Raspberry Pi Imager
|
||||||
|
|
||||||
[Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) is an imaging utility that makes it simple to manage your microSD card with Raspbian (the free Pi operating system based on Debian).
|
[Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) is an imaging utility that makes it simple to manage your microSD card with Raspberry Pi OS (the free Pi operating system based on Debian, previously called Raspbian).
|
||||||
|
|
||||||
You can find the [download](https://www.learnenough.com/command-line-tutorial/basics) link for your operating system here: [Windows](https://downloads.raspberrypi.org/imager/imager_1.4.exe), [macOS](https://downloads.raspberrypi.org/imager/imager_1.4.dmg), [Ubuntu](https://downloads.raspberrypi.org/imager/imager_1.4_amd64.deb).
|
You can find the [download](https://www.learnenough.com/command-line-tutorial/basics) link for your operating system here: [Windows](https://downloads.raspberrypi.org/imager/imager_1.4.exe), [macOS](https://downloads.raspberrypi.org/imager/imager_1.4.dmg), [Ubuntu](https://downloads.raspberrypi.org/imager/imager_1.4_amd64.deb).
|
||||||
|
|
||||||
### 2. Download Raspian 64-bit OS
|
### 2. Download 64-bit Raspberry Pi OS
|
||||||
|
|
||||||
|
You need to install the 64-bit version of Raspberry Pi OS.
|
||||||
You can find the latest version, [here](https://downloads.raspberrypi.org/raspios_arm64/images/).
|
You can find the latest version, [here](https://downloads.raspberrypi.org/raspios_arm64/images/).
|
||||||
|
|
||||||
### 3. Plug in SD card
|
### 3. Plug in SD card
|
||||||
|
@ -55,15 +56,15 @@ Use your microSD to USB adapter to plug the SD card into your computer.
|
||||||
|
|
||||||
### 4. Download Raspberry Pi OS
|
### 4. Download Raspberry Pi OS
|
||||||
|
|
||||||
Open Raspberry Pi Imager and click on **CHOOSE OS**
|
Open Raspberry Pi Imager and click on **CHOOSE OS**:
|
||||||
|
|
||||||
![](https://storage.googleapis.com/ethereum-hackmd/upload_7b8cfa54f877218b6d971f09fa8d62ff.png)
|
![](https://storage.googleapis.com/ethereum-hackmd/upload_7b8cfa54f877218b6d971f09fa8d62ff.png)
|
||||||
|
|
||||||
Scroll down and click on **Use custom**
|
Scroll down and click on **Use custom**:
|
||||||
|
|
||||||
![](https://i.imgur.com/ar88MTt.png)
|
![](https://i.imgur.com/ar88MTt.png)
|
||||||
|
|
||||||
Find the OS you downloaded in step 2
|
Find the OS you downloaded in step 2:
|
||||||
|
|
||||||
![](https://i.imgur.com/NeOT8pf.png)
|
![](https://i.imgur.com/NeOT8pf.png)
|
||||||
|
|
||||||
|
@ -237,7 +238,7 @@ ssh pi@195.177.101.93
|
||||||
|
|
||||||
### 10b. Boot from external SSD
|
### 10b. Boot from external SSD
|
||||||
|
|
||||||
Follow [this guide](https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb) to copy the contents of your SD card over to your SSD, and boot your Pi from your SSD.
|
Follow [this RPi4 guide](https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb) to copy the contents of your SD card over to your SSD, and boot your Pi from your SSD.
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
Make sure you connect your SSD the Pi's USB 3 port (the blue port).
|
Make sure you connect your SSD the Pi's USB 3 port (the blue port).
|
||||||
|
@ -263,7 +264,7 @@ Once you're done, `ssh` back into your Pi.
|
||||||
|
|
||||||
=== "Manual installation"
|
=== "Manual installation"
|
||||||
|
|
||||||
Open the [Nimbus eth2 releases page](https://github.com/status-im/nimbus-eth2/releases/latest) and copy the link for the file that starts with `nimbus-eth2_Linux_arm64v8`.
|
Open the [Nimbus eth2 releases page](https://github.com/status-im/nimbus-eth2/releases/latest), go to the Assets on the bottom of the page, and copy the link for the file that starts with `nimbus-eth2_Linux_arm64v8`.
|
||||||
|
|
||||||
Run this in your home directory to download nimbus-eth2:
|
Run this in your home directory to download nimbus-eth2:
|
||||||
|
|
||||||
|
@ -279,7 +280,7 @@ Once you're done, `ssh` back into your Pi.
|
||||||
=== "Using package manager"
|
=== "Using package manager"
|
||||||
|
|
||||||
1. Add Status APT repository to your system.
|
1. Add Status APT repository to your system.
|
||||||
Follow [this guide](https://apt.status.im).
|
Follow our [APT guide](https://apt.status.im).
|
||||||
|
|
||||||
2. Install Nimbus using APT:
|
2. Install Nimbus using APT:
|
||||||
|
|
||||||
|
@ -292,12 +293,12 @@ Once you're done, `ssh` back into your Pi.
|
||||||
### 12. Copy signing key over to Pi
|
### 12. Copy signing key over to Pi
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
If you haven't generated your validator key(s) and/or made your deposit yet, follow the instructions on [this page](./deposit.md) before carrying on.
|
If you haven't generated your validator key(s) and/or made your deposit yet, follow the instructions on the [deposit page](./deposit.md) before carrying on.
|
||||||
|
|
||||||
We'll use the `scp` command to send files over SSH.
|
We'll use the `scp` command to send files over SSH.
|
||||||
It allows you to copy files between computers, say from your Raspberry Pi to your desktop/laptop, or vice-versa.
|
It allows you to copy files between computers, say from your Raspberry Pi to your desktop/laptop, or vice-versa.
|
||||||
|
|
||||||
Copy the folder containing your validator key(s) from your computer to your `pi`'s homefolder by opening up a new terminal window and running the following command:
|
Copy the folder containing your validator key(s) from your computer to your `pi`'s home folder by opening up a new terminal window and running the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
scp -r <VALIDATOR_KEYS_DIRECTORY> pi@195.177.101.93:
|
scp -r <VALIDATOR_KEYS_DIRECTORY> pi@195.177.101.93:
|
||||||
|
@ -332,7 +333,7 @@ We're finally ready to connect to the Prater testnet!
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
If you haven't already, we recommend registering for, and running, your own eth1 node in parallel.
|
If you haven't already, we recommend registering for, and running, your own eth1 node in parallel.
|
||||||
For instructions on how to do so, see [this page](./eth1.md).
|
For instructions on how to do so, see the [eth1 page](./eth1.md).
|
||||||
|
|
||||||
To connect to Prater, run:
|
To connect to Prater, run:
|
||||||
```
|
```
|
||||||
|
@ -393,12 +394,12 @@ Now that you have Nimbus up and running, we recommend [setting up a systemd serv
|
||||||
Systemd will also ensure your validator keeps running when you exit your ssh session (`Ctrl-C`) and/or switch off your laptop.
|
Systemd will also ensure your validator keeps running when you exit your ssh session (`Ctrl-C`) and/or switch off your laptop.
|
||||||
|
|
||||||
|
|
||||||
For the details on how to do this, see [this page](./beacon-node-systemd.md).
|
For the details on how to do this, see our [systemd guide](./beacon-node-systemd.md).
|
||||||
|
|
||||||
|
|
||||||
### Overclocking
|
### Overclocking
|
||||||
|
|
||||||
While you shouldn't need to, if you're feeling adventurous and want to try and squeeze out some extra performance out of your Pi's CPU, see [this guide](https://docs.rocketpool.net/guides/node/local/prepare-pi.html#overclocking-the-pi) by Joe Clapis.
|
While you shouldn't need to, if you're feeling adventurous and want to try and squeeze out some extra performance out of your Pi's CPU, see the [overclocking guide](https://docs.rocketpool.net/guides/node/local/prepare-pi.html#overclocking-the-pi) by Joe Clapis.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
We have since improved performance in several ways which should make a vanilla Pi perform well.
|
We have since improved performance in several ways which should make a vanilla Pi perform well.
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
# Run the beacon node
|
# Beacon node
|
||||||
|
|
||||||
This page takes you through the steps of getting a standard installation of the Nimbus beacon node running.
|
This page takes you through the steps of getting a standard installation of the Nimbus beacon node running.
|
||||||
|
|
||||||
The quickstart setup involves running two nodes: an [execution client](./eth1.md) and a beacon node — both are needed to run a full Ethereum setup.
|
The quickstart setup involves running two nodes: an [execution client](./eth1.md) and a beacon node.
|
||||||
|
Both are needed to run a full Ethereum setup.
|
||||||
|
|
||||||
|
To become a validator, you first need to set up a beacon node.
|
||||||
The beacon node connects to the beacon chain network, syncs historical data, and provides [API's](./rest-api.md) to monitor and interact with the beacon chain.
|
The beacon node connects to the beacon chain network, syncs historical data, and provides [API's](./rest-api.md) to monitor and interact with the beacon chain.
|
||||||
|
|
||||||
Running a beacon node is a [worthwhile endeavor](https://vitalik.ca/general/2021/05/23/scaling.html#its-crucial-for-blockchain-decentralization-for-regular-users-to-be-able-to-run-a-node) even if you are not planning on validating yourself!
|
Running a beacon node is a [worthwhile endeavor](https://vitalik.ca/general/2021/05/23/scaling.html#its-crucial-for-blockchain-decentralization-for-regular-users-to-be-able-to-run-a-node) even if you are not planning on validating yourself!
|
||||||
|
|
||||||
The guide assumes [Ubuntu Linux](https://ubuntu.com/download/server) is being used, and therefore some familiarity with [the Linux command line](https://ubuntu.com/tutorials/command-line-for-beginners) is needed.
|
The guide assumes [Ubuntu Linux](https://ubuntu.com/download/server) is being used, and therefore some familiarity with [the Linux command line](https://ubuntu.com/tutorials/command-line-for-beginners) is needed.
|
||||||
|
|
||||||
!!! note
|
|
||||||
To become a validator, you first need to set up a beacon node.
|
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
You can practice running the node safely on the [Prater testnet](./prater.md) - throughout, we'll provide instructions for both Prater and Mainnet.
|
You can practice running the node safely on the [Prater testnet](./prater.md).
|
||||||
|
Throughout, we'll provide instructions for both Prater and Mainnet.
|
||||||
|
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
|
@ -27,32 +27,28 @@ Prepare your machine by installing [Nimbus' dependencies](./install.md).
|
||||||
To run a beacon node, you need to have access to an execution client exposing the web3 API.
|
To run a beacon node, you need to have access to an execution client exposing the web3 API.
|
||||||
Throughout, we'll assume an execution client is running on the same machine as the beacon node, but this is not required.
|
Throughout, we'll assume an execution client is running on the same machine as the beacon node, but this is not required.
|
||||||
|
|
||||||
See the [execution client guide](./eth1.md) for instructions on how to pick and install an execution client!
|
See the [execution client guide](./eth1.md) for instructions on how to pick and install an execution client.
|
||||||
|
|
||||||
### 3. Install Nimbus
|
### 3. Install Nimbus
|
||||||
|
|
||||||
Next, download the [latest release](./binaries.md) and install it by unpacking the archive.
|
=== "Download binaries"
|
||||||
Using a command line terminal:
|
|
||||||
|
|
||||||
```sh
|
Binary releases are available from [GitHub](https://github.com/status-im/nimbus-eth2/releases/latest) and our [APT repository](https://apt.status.im/) (Debian/Ubuntu).
|
||||||
# Create a directory that can hold the beacon chain data and applications - this should be a fast SSD
|
|
||||||
mkdir -p nimbus-eth2
|
|
||||||
|
|
||||||
# Download the latest release - replace the link with the latest release on the download page!
|
We currently have binaries available for Linux `AMD64`, `ARM` and `ARM64`, Windows `AMD64` and macOS (`AMD64` and `ARM64`).
|
||||||
wget https://github.com/status-im/nimbus-eth2/releases/download/v22.10.1/nimbus-eth2_Linux_amd64_22.10.1_97a1cdc4.tar.gz
|
|
||||||
|
|
||||||
# Unpack the archive into the `nimbus-eth2` directory you just created
|
See the [binaries guide](./binaries.md) on how to install them.
|
||||||
tar xvf nimbus-eth2_Linux_amd64_22.10.1_97a1cdc4.tar.gz --strip-components 1 -C nimbus-eth2
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! tip "Other installation methods"
|
|
||||||
Debian / Ubuntu users may wish to use our [APT repository](./binaries.md).
|
|
||||||
|
|
||||||
Advanced users looking to take advantage of hardware-specific features and optimization may wish to [build from source](./build.md) instead!
|
=== "Build from source"
|
||||||
|
|
||||||
|
Building Nimbus from source is simple and fully automated.
|
||||||
|
Follow the [build guide](./build.md).
|
||||||
|
|
||||||
|
|
||||||
### 4. Start the node
|
### 4. Start the node
|
||||||
|
|
||||||
Once you've installed the binaries, you can [start the node](./start-syncing.md) which will initiate the sync process.
|
Once you've installed Nimbus, you can [start the node](./start-syncing.md) which will initiate the sync process.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd nimbus-eth2
|
cd nimbus-eth2
|
||||||
|
|
|
@ -1,30 +1,25 @@
|
||||||
# Run a validator
|
# Validating
|
||||||
|
|
||||||
Once your beacon node is [running](./quick-start.md), the next step is to set up a validator.
|
Once your beacon node is [running](./quick-start.md), the next step is to set up a validator.
|
||||||
|
|
||||||
!!! tip "No validator client needed"
|
Nimbus **doesn't require** setting up a separate validator client process — the beacon node can itself perform validator duties.
|
||||||
Unlike other beacon chain clients, Nimbus does not require setting up a separate validator client process — the beacon node can itself perform validator duties.
|
This is a simple, safe and efficient way to get started.
|
||||||
|
|
||||||
This is a simple, safe and efficient way to get started.
|
!!! tip "Separate validator client"
|
||||||
|
|
||||||
|
While not needed, advanced users may want to use a [separate validator client](./validator-client.md) instead.
|
||||||
|
|
||||||
Advanced users may want to use a separate [validator client](./validator-client.md) process instead.
|
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
### 1. Deposit
|
1. [Make a deposit](./deposit.md) for your validator.
|
||||||
|
|
||||||
[Make a deposit](./deposit.md) for your validator.
|
2. [Import your validator keys](./keys.md) into Nimbus.
|
||||||
|
|
||||||
### 2. Import
|
3. [Start performing validator duties](./connect-eth2.md) by restarting the node.
|
||||||
|
|
||||||
[Import your validator keys](./keys.md) into Nimbus.
|
|
||||||
|
|
||||||
### 3. Validate
|
|
||||||
|
|
||||||
[Start performing duties](./connect-eth2.md) by restarting the node.
|
|
||||||
|
|
||||||
Congratulations!
|
Congratulations!
|
||||||
You're now set up to be earning a small amount of ETH every 6.4 minutes in return for keeping the Ethereum network secure!
|
You're now set up to be earning a small amount of ETH every 6.4 minutes in return for keeping the Ethereum network secure!
|
||||||
|
|
||||||
!!! success "What next?"
|
!!! success "What next?"
|
||||||
While that's all there is to it, it is essential that you both [keep an eye on your validator](keep-an-eye.md) and [keep Nimbus updated](keep-updated.md) regularly 💫
|
While that's all there is to it, it is essential that you both [keep an eye on your validator](keep-an-eye.md) and [keep Nimbus updated](keep-updated.md) regularly. 💫
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Sync from a trusted node
|
# Sync from a trusted node
|
||||||
|
|
||||||
When you [start the beacon node](./quick-start.md) for the first time, it connects to the beacon chain network and starts syncing automatically — a process that can take several days.
|
When you [start the beacon node](./quick-start.md) for the first time, it connects to the beacon chain network and starts syncing automatically — a process that can take **several hours** or even days.
|
||||||
|
|
||||||
Trusted node sync allows you to get started more quickly by fetching a recent checkpoint from a trusted node — you can get started in minutes instead of days.
|
Trusted node sync allows you to get started more quickly by fetching a recent checkpoint from a trusted node — you can get started in **minutes** instead of hours or days.
|
||||||
|
|
||||||
To use trusted node sync, you must have access to a node that you trust and that exposes the [Beacon API](./rest-api.md) (for example, a locally running backup node).
|
To use trusted node sync, you must have access to a node that you trust and that exposes the [Beacon API](./rest-api.md) (for example, a locally running backup node).
|
||||||
Should this node, or your connection to it, be compromised, your node will not be able to detect whether or not it is being served false information.
|
Should this node, or your connection to it, be compromised, your node will not be able to detect whether or not it is being served false information.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
Some features of the validator client, such as the metrics server, are currently in BETA and details may change in response to community feedback.
|
Some features of the validator client, such as the metrics server, are currently in BETA and details may change in response to community feedback.
|
||||||
Please consult the `--help` screen for more details.
|
Please consult the `--help` screen for more details.
|
||||||
|
|
||||||
By default, Nimbus integrates the validator client into the main beacon node process - this is a simple, safe and efficient way to run a validator.
|
By default, Nimbus integrates the validator client into the main beacon node process — this is a simple, safe and efficient way to run a validator.
|
||||||
|
|
||||||
Advanced users may wish to run validators in a separate process, allowing more flexible deployment strategies.
|
Advanced users may wish to run validators in a separate process, allowing more flexible deployment strategies.
|
||||||
The Nimbus beacon node supports both its own and third-party validator clients via the built-in [REST API](./rest-api.md).
|
The Nimbus beacon node supports both its own and third-party validator clients via the built-in [REST API](./rest-api.md).
|
||||||
|
|
Loading…
Reference in New Issue