refresh nimbus guide (#6687)

Small updates to the nimbus guide to update or remove some obsolete
points.
This commit is contained in:
Jacek Sieka 2024-11-02 10:59:35 +01:00 committed by GitHub
parent 7726f39004
commit 25665eed4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 20 additions and 66 deletions

View File

@ -15,8 +15,6 @@ Before building Nimbus for the first time, make sure to install the [prerequisit
Nimbus is built in the [Nim language](https://nim-lang.org).
The compiler is automatically installed when building the project for the first time.
More information — in particular security-related information about the language — can be found in the [Auditor Handbook](https://nimbus.guide/auditors-book/).
## Code style
The code follows the [Status Nim Style Guide](https://status-im.github.io/nim-style-guide/).
@ -169,11 +167,6 @@ nim --version # Nimbus is tested and supported on 1.2.12 at the moment
make dist
```
## Multi-client interop scripts
[This repository](https://github.com/eth2-clients/multinet) contains a set of scripts used by the client implementation teams to test interop between the clients (in certain simplified scenarios).
It mostly helps us find and debug issues.
## Stress-testing the client by limiting the CPU power
```bash

View File

@ -52,54 +52,9 @@ make -j4 nimbus_light_client
This may take a few minutes.
When the process finishes, the `nimbus_light_client` executable can be found in the `build` subdirectory.
## Pairing with the EL client
To ensure that only the light client can control the EL client, a file with random content (JWT secret) must be created.
The format is 64 hexadecimal (0-9, a-f) characters.
To create one, the following command may be used:
```sh
openssl rand -hex 32 | tr -d "\n" > "$HOME/jwtsecret"
```
!!! tip
To adjust where the file is created, adjust the `$HOME/jwtsecret` portion in the command above.
Also adjust other commands in this guide accordingly.
The JWT secret must be passed to both the EL client and the light client to complete the pairing.
## Running the EL client
In addition to the [regular instructions](./eth1.md) to run an EL client, the JWT secret must be configured.
The following sections explain how to do this for certain EL clients.
=== "Geth"
=== "Mainnet"
```sh
geth --authrpc.jwtsecret="$HOME/jwtsecret"
```
=== "Holesky"
```sh
geth --holesky --authrpc.jwtsecret="$HOME/jwtsecret"
```
=== "Nethermind"
=== "Mainnet"
```sh
nethermind --JsonRpc.JwtSecretFile="$HOME/jwtsecret"
```
=== "Holesky"
```sh
nethermind --config holesky --JsonRpc.JwtSecretFile="$HOME/jwtsecret"
```
=== "Others"
Please consult your EL client's documentation for instructions on how to configure the JWT secret and running the EL client.
Follow the [regular instructions](./eth1.md) for running the execution client, taking note of its JWT secret configuration that you will need in the next step.
## Running the light client
@ -136,16 +91,18 @@ To start the light client, run the following commands (inserting your own truste
=== "Mainnet"
```sh
TRUSTED_BLOCK_ROOT=0x1234567890123456789012345678901234567890123456789012345678901234
JWTSECRET=path/to/execution/client/jwt.hex
build/nimbus_light_client \
--web3-url=http://127.0.0.1:8551 --jwt-secret="$HOME/jwtsecret" \
--web3-url=http://127.0.0.1:8551 --jwt-secret="$JWTSECRET" \
--trusted-block-root=$TRUSTED_BLOCK_ROOT
```
=== "Holesky"
```sh
TRUSTED_BLOCK_ROOT=0x1234567890123456789012345678901234567890123456789012345678901234
JWTSECRET=path/to/execution/client/jwt.hex
build/nimbus_light_client --network=holesky \
--web3-url=http://127.0.0.1:8551 --jwt-secret="$HOME/jwtsecret" \
--web3-url=http://127.0.0.1:8551 --jwt-secret="$JWTSECRET" \
--trusted-block-root=$TRUSTED_BLOCK_ROOT
```

View File

@ -25,7 +25,7 @@ cd nimbus-eth1
To build the Nimbus execution client and its dependencies, make sure you have [all prerequisites](./install.md) and then run:
```sh
make -j4 nimbus nrpc
make -j4 nimbus_execution_client nrpc
```
This may take a few minutes.

View File

@ -65,9 +65,6 @@ While we strongly recommend against it, you can disable doppelganger detection w
We recommend running [a Nimbus beacon node](./quick-start.md) on [Holesky](./holesky.md) and a mainnet [execution client](./eth1.md) on the same machine.
This will simulate the load of running a mainnet validator.
To stress test it, add `--subscribe-all-subnets` to the [beacon node options](./options.md).
This simulates the maximum load that the consensus layer will put on the machine should you run 64 validators or more on it.
### How do I add an additional validator?
See the information [here](./additional-validator.md).

View File

@ -37,7 +37,7 @@ rotate 7
[rotatelogs](https://httpd.apache.org/docs/2.4/programs/rotatelogs.html) captures `stdout` logging and redirects it to a file, rotating and compressing on the fly.
It is available on most servers and can be used with `Docker`, `Systemd` and manual setups to write rotated logs files.
It is available on most servers and can be used with `docker`, `systemd` and manual setups to write rotated logs files.
In particular, when `systemd` and its accompanying `journald` log daemon are used, this setup avoids clogging the system log by keeping the Nimbus logs in a separate location.

View File

@ -138,7 +138,7 @@ Use the [open ports tool](https://www.yougetsignal.com/tools/open-ports/) to che
- `Peer count low, no new peers discovered...`
This is a sign that you may be missing attestations.
This is a sign that you may be missing attestations. It often happens when the hardware you're running the edge of being too slow - it can also happen during network outages or when bandwidth is insufficient to keep up.
- `No external IP provided for the ENR...`

View File

@ -1,6 +1,7 @@
# Optimistic sync
Optimistic sync is the process of syncing an execution and consensus client concurrently, without having the consensus client wait for the execution client.
During optimistic sync, the consensus client quickly syncs up to the latest consensus but delays verifying block execution payloads: it continuously informs the execution client of the latest consensus head, allowing the execution client to perform a snapshot sync directly to the latest state.
Once the execution client has caught up, the consensus and execution clients work in lock-step each validating the block.

View File

@ -25,7 +25,7 @@ Prepare your machine by installing [Nimbus' dependencies](./install.md).
### 2. Set up an execution client
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 [engine API](https://hackmd.io/@danielrachi/engine_api).
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.

View File

@ -16,6 +16,7 @@ If you wish to expose the beacon node to the public internet, it is recommended
* `http://testing.mainnet.beacon-api.nimbus.team/`
* `http://unstable.mainnet.beacon-api.nimbus.team/`
* `http://unstable.holesky.beacon-api.nimbus.team/`
* `http://unstable.sepolia.beacon-api.nimbus.team/`
You can make requests as follows (here we are requesting the version the Nimbus software version of the node in question):
@ -34,12 +35,17 @@ You can make requests as follows (here we are requesting the version the Nimbus
curl -X GET http://unstable.holesky.beacon-api.nimbus.team/eth/v1/node/version
```
The test endpoints are part of pre-release testing and run an unstable version of Nimbus.
We welcome reports about any problems you might have with them.
=== "Sepolia unstable branch"
```
curl -X GET http://unstable.sepolia.beacon-api.nimbus.team/eth/v1/node/version
```
They may also be unresponsive at times: **please do not rely on them for validation**.
We may also disable them at any time without warning.
!!! warning ""
The test endpoints are part of pre-release testing and run a development version of Nimbus.
We welcome reports about any problems you might have with them.
They may also be unresponsive at times: **please do not rely on them for validation**.
We may also disable them at any time without warning.
## Configure your node to run a local REST server