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:
Miran 2023-06-10 01:06:01 +02:00 committed by GitHub
parent 6548651e42
commit 73fc1d5a2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 185 additions and 167 deletions

View File

@ -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'

View File

@ -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).

View File

@ -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).

View File

@ -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

View File

@ -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.

View File

@ -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&#39;t wait to run Nimbus straight from Status Desktop <a href="https://twitter.com/hashtag/hyped?src=hash&amp;ref_src=twsrc%5Etfw">#hyped</a></p>&mdash; 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?

View File

@ -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

View File

@ -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&#39;t wait to run Nimbus straight from Status Desktop <a href="https://twitter.com/hashtag/hyped?src=hash&amp;ref_src=twsrc%5Etfw">#hyped</a></p>&mdash; 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.

View File

@ -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&#39;s $100 of hardware running at 10 Watts to support a 32 ETH node (currently ~$10K stake).</p>&mdash; 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&#39;s $100 of hardware running at 10 Watts to support a 32 ETH node (currently ~$10K stake).</p>&mdash; 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.

View File

@ -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

View File

@ -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. 💫

View File

@ -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.

View File

@ -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).