Skip to content

Commit 73fc1d5

Browse files
narimirantersec
andauthored
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 <[email protected]> * 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 <[email protected]>
1 parent 6548651 commit 73fc1d5

File tree

13 files changed

+185
-167
lines changed

13 files changed

+185
-167
lines changed

docs/the_nimbus_book/mkdocs.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,22 @@ markdown_extensions:
4343
toc_depth: 3
4444

4545
nav:
46-
- About:
46+
- Home:
4747
- 'index.md'
48-
- 'philosophy.md'
4948

5049
- Getting started:
5150
- 'quick-start.md'
5251
- 'run-a-validator.md'
53-
- 'migration.md'
54-
- 'metrics-pretty-pictures.md'
55-
- 'pi-guide.md'
5652
- 'el-light-client.md'
53+
- 'pi-guide.md'
5754

5855
- How-to:
5956
- Beacon node:
6057
- 'install.md'
6158
- 'build.md'
6259
- 'start-syncing.md'
6360
- 'trusted-node-sync.md'
61+
- 'migration.md'
6462

6563
- Validator:
6664
- 'deposit.md'
@@ -81,6 +79,7 @@ nav:
8179
- 'goerli-eth.md'
8280
- 'beacon-node-systemd.md'
8381
- 'log-rotate.md'
82+
- 'metrics-pretty-pictures.md'
8483
- 'database-backup.md'
8584
- 'email-notifications.md'
8685
- 'profits.md'

docs/the_nimbus_book/src/build.md

Lines changed: 17 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -9,68 +9,7 @@ The build process itself is simple and fully automated, but may take a few minut
99

1010
## Prerequisites
1111

12-
!!! tip
13-
If you are planning to use the precompiled binaries, you can skip this section and go straight to the [binaries](./binaries.md)!
14-
15-
When building from source, you will need additional build dependencies to be installed:
16-
17-
- Developer tools (C compiler, Make, Bash, Git)
18-
- [CMake](https://cmake.org/)
19-
20-
<!-- TODO: Please test whether the instructions below are correct. I think we are missing some dependencies on Windows. -->
21-
<!-- Microsoft offer virtual machines that you can use for testing here: -->
22-
<!-- https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ -->
23-
24-
=== "Linux"
25-
26-
On common Linux distributions the dependencies can be installed with
27-
28-
```sh
29-
# Debian and Ubuntu
30-
sudo apt-get install build-essential git cmake
31-
32-
# Fedora
33-
dnf install @development-tools cmake
34-
35-
# Archlinux, using an AUR manager
36-
yourAURmanager -S base-devel cmake
37-
```
38-
39-
=== "macOS"
40-
41-
With [Homebrew](https://brew.sh/):
42-
43-
```sh
44-
brew install cmake
45-
```
46-
47-
=== "Windows"
48-
49-
To build Nimbus on Windows, the MinGW-w64 build environment is recommended.
50-
51-
Install Mingw-w64 for your architecture using the "[MinGW-W64 Online Installer](https://sourceforge.net/projects/mingw-w64/files/)":
52-
53-
1. Select your architecture in the setup menu (`i686` on 32-bit, `x86_64` on 64-bit).
54-
2. Set threads to `win32`.
55-
3. Set exceptions to "dwarf" on 32-bit and "seh" on 64-bit.
56-
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).
57-
58-
!!! note
59-
If the online installer isn't working you can try installing `mingw-w64` through [MSYS2](https://www.msys2.org/).
60-
61-
Install [Git for Windows](https://gitforwindows.org/) and use a "Git Bash" shell to clone and build `nimbus-eth2`.
62-
63-
=== "Android"
64-
65-
- Install the [Termux](https://termux.com) app from FDroid or the Google Play store
66-
- Install a [PRoot](https://wiki.termux.com/wiki/PRoot) of your choice following the instructions for your preferred distribution.
67-
Note, the Ubuntu PRoot is known to contain all Nimbus prerequisites compiled on Arm64 architecture (the most common architecture for Android devices).
68-
69-
Assuming you use Ubuntu PRoot
70-
71-
```sh
72-
apt install build-essential git
73-
```
12+
Make sure you have all needed [build prerequisites](./install.md#build-prerequisites).
7413

7514
## Building the node
7615

@@ -91,3 +30,19 @@ make -j4 nimbus_beacon_node
9130

9231
!!! tip
9332
Omit `-j4` on systems with 4GB of memory or less.
33+
34+
This step can take several minutes.
35+
After it has finished, you can check if the installation was successful by running:
36+
37+
```sh
38+
build/nimbus_beacon_node --help
39+
```
40+
41+
If you see the command-line options, your installation was successful!
42+
Otherwise, don't hesitate to reach out to us in the `#helpdesk` channel of [our discord](https://discord.gg/j3nYBUeEad).
43+
44+
45+
46+
## Keeping Nimbus updated
47+
48+
When you decide to upgrade Nimbus to a newer version, make sure to follow the [keeping updated guide](./keep-updated.md).

docs/the_nimbus_book/src/el-light-client.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Run the light client
1+
# Light client
22

33
!!! warning
44
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.
1212

1313
Compared to a full beacon node, a light client has several advantages and disadvantages.
1414

15-
| Feature | Light Client | Beacon Node |
15+
| Feature | Beacon Node | Light Client |
1616
| -- | -- | -- |
17-
| Disk usage | **<1MB** | ~70GB |
18-
| Bandwidth | **TBD (low)** | *TBD* |
19-
| Sync time | **Seconds** | Days |
20-
| Head delay | 4/3 slot (15 s) | **None** |
21-
| Security | Light | **Full** |
17+
| Disk usage | ~70GB | **<1MB** |
18+
| Bandwidth | *TBD* | **TBD (low)** |
19+
| Sync time | Hours | **Seconds** |
20+
| Head delay | **None** | 4/3 slot (15 s) |
21+
| Security | **Full** | Light |
2222

2323
Light clients delegate full validation to other network participants and operate under a honest supermajority (> 2/3) assumption among elected participants.
2424
Due to this delegation, light clients are typically behind by ~4/3 slots (~15 seconds on Ethereum mainnet).

docs/the_nimbus_book/src/eth1.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Run an execution client
22

3-
In order to perform validation duties, you need to also be running an execution client — at least one for each beacon node.
3+
In order to perform validation duties, you **must have** an execution client running — at least one for each beacon node.
4+
Relying on third-party services such as Infura, Alchemy and Pocket is no longer possible.
5+
Sharing the same execution client between multiple beacon nodes is not supported.
46

5-
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.
6-
7-
!!! warning
8-
You need to run your own execution client.
9-
Relying on third-party services such as Infura, Alchemy and Pocket is no longer possible.
10-
Sharing the same execution client between multiple beacon nodes is not supported.
7+
Nimbus has been tested with all major execution clients.
8+
See the [execution client comparison](https://ethereum.org/en/developers/docs/nodes-and-clients/#execution-clients) for more information.
119

1210
!!! info
13-
Syncing an execution client may take hours or even days, depending on your hardware!
11+
Syncing an execution client **may take hours or even days**, depending on your hardware!
12+
1413

1514
## Steps
1615

docs/the_nimbus_book/src/hardware.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@ The recommended system requirements for running the Nimbus beacon node are:
99
| Disk space | 200GB |
1010
| Network | Reliable broadband |
1111

12-
!!! note "Execution client"
13-
In addtion to the beacon node, you will need to run an [execution client](./eth1.md).
14-
Check the documentation of the client of choice and add them to the above requirements.
1512

16-
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**.
13+
### Execution client
1714

18-
!!! note "Minimal requirements"
19-
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.
15+
In addition to the beacon node, you will need to run an [execution client](./eth1.md).
16+
Check the documentation of the client of choice and add them to the above requirements.
17+
18+
Broadly, to run both an execution and a consensus client on the same machine, we recommend a **2 TB** SSD and **16 GB RAM**.
19+
20+
21+
### Minimal requirements
22+
23+
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.

docs/the_nimbus_book/src/index.md

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
# The Nimbus Guide
22

3-
!!! note ""
4-
Eager to get started?
5-
The [quickstart guide](./quick-start.md) is for you.
6-
7-
Coming from a different client?
8-
Check out the [migration guide](./migration.md).
9-
103
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).
114

12-
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).
5+
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).
136

147
This book describes the consensus layer client, [`nimbus-eth2`](https://github.com/status-im/nimbus-eth2).
158
An execution client, [nimbus-eth1](https://github.com/status-im/nimbus-eth2), is also under development.
169

10+
1711
## Feature highlights
1812

1913
* [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
2418
* [External block builder](./external-block-builder.md) (PBS / mev-boost) support with execution client fallback
2519
* [Light consensus client](./el-light-client.md) for running an execution client without a full beacon node
2620

21+
22+
## Design goals
23+
24+
One of our most important design goals is an application architecture that makes it **simple to embed Nimbus into other software.**
25+
26+
Another goal is to **minimize reliance on third-party software.**
27+
28+
A third one is for the application binary to be as **lightweight as possible in terms of resources used.**
29+
30+
### Integration with Status
31+
32+
<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>
33+
34+
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/).
35+
36+
Our dream is for you to be able to run and monitor your validator straight from Status desktop.
37+
38+
39+
## Book contents
40+
41+
You can read this book from start to finish, or you might want to read just specific topics you're interested in:
42+
43+
* If you're eager to get started, the [quickstart guide](./quick-start.md) is for you.
44+
* Coming from a different client? Check out the [migration guide](./migration.md).
45+
* Visualize the important metrics with [Grafana and Prometheus](./metrics-pretty-pictures.md).
46+
* Interested in becoming a validator? Follow the [validator guide](./run-a-validator.md).
47+
* If you're not planning on becoming a validator, you can run the [light client](./el-light-client.md).
48+
49+
50+
2751
## Get in touch
2852

2953
Need help with anything?

docs/the_nimbus_book/src/install.md

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,68 @@ Check that your machine matches the [minimal system requirements](./hardware.md)
88

99
## Build prerequisites
1010

11-
You will need to install developer tools (C compiler, Make, Bash, Git) and [CMake](https://cmake.org/).
12-
See the [build guide](./build.md).
11+
!!! tip
12+
If you are planning to use the precompiled binaries, you can skip this section and go straight to the [binaries](./binaries.md)!
13+
14+
When building from source, you will need additional build dependencies to be installed:
15+
16+
- Developer tools (C compiler, Make, Bash, Git)
17+
- [CMake](https://cmake.org/)
18+
19+
<!-- TODO: Please test whether the instructions below are correct. I think we are missing some dependencies on Windows. -->
20+
<!-- Microsoft offer virtual machines that you can use for testing here: -->
21+
<!-- https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ -->
22+
23+
=== "Linux"
24+
25+
On common Linux distributions the dependencies can be installed with:
26+
27+
```sh
28+
# Debian and Ubuntu
29+
sudo apt-get install build-essential git cmake
30+
31+
# Fedora
32+
dnf install @development-tools cmake
33+
34+
# Arch Linux, using an AUR manager
35+
yourAURmanager -S base-devel cmake
36+
```
37+
38+
=== "macOS"
39+
40+
With [Homebrew](https://brew.sh/):
41+
42+
```sh
43+
brew install cmake
44+
```
45+
46+
=== "Windows"
47+
48+
To build Nimbus on Windows, the MinGW-w64 build environment is recommended.
49+
50+
Install Mingw-w64 for your architecture using the "[MinGW-W64 Online Installer](https://sourceforge.net/projects/mingw-w64/files/)":
51+
52+
1. Select your architecture in the setup menu (`i686` on 32-bit, `x86_64` on 64-bit).
53+
2. Set threads to `win32`.
54+
3. Set exceptions to "dwarf" on 32-bit and "seh" on 64-bit.
55+
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).
56+
57+
!!! note
58+
If the online installer isn't working you can try installing `mingw-w64` through [MSYS2](https://www.msys2.org/).
59+
60+
Install [Git for Windows](https://gitforwindows.org/) and use a "Git Bash" shell to clone and build `nimbus-eth2`.
61+
62+
=== "Android"
63+
64+
- Install the [Termux](https://termux.com) app from FDroid or the Google Play store
65+
- Install a [PRoot](https://wiki.termux.com/wiki/PRoot) of your choice following the instructions for your preferred distribution.
66+
Note, the Ubuntu PRoot is known to contain all Nimbus prerequisites compiled on Arm64 architecture (the most common architecture for Android devices).
67+
68+
Assuming you use Ubuntu PRoot:
69+
70+
```sh
71+
apt install build-essential git
72+
```
1373

1474
## Time
1575

docs/the_nimbus_book/src/philosophy.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)