Merge commit '252473d2d15ed1e2a654c3e6b6b1513a00a8bf2b' into dev/etan/lc-wasm4

This commit is contained in:
Etan Kissling 2023-10-25 11:33:43 +02:00
commit 78487a0b6e
No known key found for this signature in database
GPG Key ID: B21DA824C5A3D03D
29 changed files with 124 additions and 102 deletions

View File

@ -670,7 +670,7 @@ proc popFirst(chain: var Eth1Chain) =
chain.blocksByHash.del removed.hash.asBlockHash
eth1_chain_len.set chain.blocks.len.int64
func getDepositsRoot*(m: DepositsMerkleizer): Eth2Digest =
func getDepositsRoot*(m: var DepositsMerkleizer): Eth2Digest =
mixInLength(m.getFinalHash, int m.totalChunks)
proc addBlock*(chain: var Eth1Chain, newBlock: Eth1Block) =
@ -1783,7 +1783,7 @@ proc getBlockProposalData*(chain: var Eth1Chain,
deposits.add data
depositRoots.add hash_tree_root(data)
var scratchMerkleizer = copy chain.finalizedDepositsMerkleizer
var scratchMerkleizer = chain.finalizedDepositsMerkleizer
if chain.advanceMerkleizer(scratchMerkleizer, stateDepositIdx):
let proofs = scratchMerkleizer.addChunksAndGenMerkleProofs(depositRoots)
for i in 0 ..< totalDepositsInNewBlock:
@ -1844,7 +1844,7 @@ proc init*(T: type Eth1Chain,
cfg: cfg,
finalizedBlockHash: finalizedBlockHash,
finalizedDepositsMerkleizer: m,
headMerkleizer: copy m)
headMerkleizer: m)
proc new*(T: type ELManager,
cfg: RuntimeConfig,
@ -1877,7 +1877,7 @@ proc safeCancel(fut: var Future[void]) =
func clear(chain: var Eth1Chain) =
chain.blocks.clear()
chain.blocksByHash.clear()
chain.headMerkleizer = copy chain.finalizedDepositsMerkleizer
chain.headMerkleizer = chain.finalizedDepositsMerkleizer
chain.hasConsensusViolation = false
proc doStop(m: ELManager) {.async.} =

View File

@ -1,3 +1,12 @@
# beacon_chain
# Copyright (c) 2018-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
# at your option. This file may not be copied, modified, or distributed except according to those terms.
{.push raises: [].}
from stew/objects import isZeroMemory
import ./eth2_merkleization
@ -35,11 +44,11 @@ template getDepositCountU64*(d: OldDepositContractSnapshot |
func getDepositRoot*(d: OldDepositContractSnapshot |
DepositTreeSnapshot): Eth2Digest =
let merk = DepositsMerkleizer.init(d.depositContractState)
var merk = DepositsMerkleizer.init(d.depositContractState)
let hash = merk.getFinalHash()
# TODO: mixInLength should accept unsigned int instead of int as
# this right now cuts in half the theoretical number of deposits.
return mixInLength(hash, int(merk.totalChunks))
return mixInLength(hash, int(merk.getChunkCount()))
func isValid*(d: DepositTreeSnapshot, wantedDepositRoot: Eth2Digest): bool =
## `isValid` requires the snapshot to be self-consistent and

View File

@ -35,9 +35,9 @@ The following options are available:
Where:
- The `network` can be `mainnet`, `prater`, or `sepolia`.
- The `network` can be `mainnet`, `holesky`, or `sepolia`.
- The default location of the `db` is `build/data/shared_mainnet_0/db` for `mainnet`, `build/data/shared_prater_0/db` for `prater`, etc.
- The default location of the `db` is `build/data/shared_mainnet_0/db` for `mainnet`, `build/data/shared_holesky_0/db` for `holesky`, etc.
Near the bottom, you should see:
@ -55,11 +55,11 @@ Use `start-slot` and `slots` to restrict the analysis on a specific block range.
### 3. Run
To view the performance of all validators on Prater so far across the entire block range stored in your database, run:
To view the performance of all validators on Holesky so far across the entire block range stored in your database, run:
```sh
build/ncli_db validatorPerf \
--network=prater \
--db=build/data/shared_prater_0/db
--network=holesky \
--db=build/data/shared_holesky_0/db
```
You should see output that looks like to the following:
@ -77,8 +77,8 @@ validator_index,attestation_hits,attestation_misses,head_attestation_hits,head_a
To restrict the analysis to the performance between slots 0 and 128, say, run:
```sh
build/ncli_db validatorPerf \
--network=prater \
--db=build/data/shared_prater_0/db \
--network=holesky \
--db=build/data/shared_holesky_0/db \
--start-slot=0 \
--slots=128
```

View File

@ -56,7 +56,7 @@ sudo systemctl edit nimbus_beacon_node.service
The service file contains several options for controlling Nimbus.
Important options include:
* `Environment=NETWORK`: set this to `mainnet`, `prater` or `sepolia`, depending on which network you want to connect to
* `Environment=NETWORK`: set this to `mainnet`, `holesky` or `sepolia`, depending on which network you want to connect to
* `Environment=WEB3_URL`: point this to your execution client, see the [Execution Client](./eth1.md) setup guide
* `Environment=REST_ENABLED`: REST is used to interact with the beacon node, in particular when setting up a separate Validator Client, see the [REST API](./rest-api.md) guide
* `Environment=METRICS_ENABLED`: metrics are used for monitoring the node, see the [metrics](./metrics-pretty-pictures.md) setup guide
@ -141,5 +141,5 @@ When running multiple beacon nodes, make sure that each service:
## Further examples
- A [service template file](https://github.com/chfast/ethereum-node/blob/main/nimbus%40.service) by Pawel Bylica which allows you to start two services at the same time, e.g. `nimbus@prater.service` and `nimbus@mainnet.service`.
- A [service template file](https://github.com/chfast/ethereum-node/blob/main/nimbus%40.service) by Pawel Bylica which allows you to start two services at the same time, e.g. `nimbus@holesky.service` and `nimbus@mainnet.service`.
- The [EthereumOnARM](https://github.com/diglos/ethereumonarm/blob/main/fpm-package-builder/nimbus/extras/nimbus.service) project maintains a service file as part of their Ethereum installation package repository.

View File

@ -3,7 +3,7 @@
Nimbus stores all the information it needs to run in a data directory.
In this directory, you'll find a database, your validator keys and secrets, and several other items.
When following the installation guide, the chain data will be stored in `build/data` with separate directories for each chain (mainnet, prater, etc).
When following the installation guide, the chain data will be stored in `build/data` with separate directories for each chain (mainnet, holesky, etc).
!!! tip "The `--data-dir` option"
The `--data-dir=/path/to/data` allows picking a specific data directory to store the chain.

View File

@ -3,7 +3,7 @@
The best way to do this is to use `.backup` sqlite command:
1. Navigate to either `build/data/shared_mainnet_0/db/` (if you're running Prater: `shared_prater_0`) or the directory you supplied to the `--data-dir` argument when you launched Nimbus.
1. Navigate to either `build/data/shared_mainnet_0/db/` (if you're running Holesky: `shared_holesky_0`) or the directory you supplied to the `--data-dir` argument when you launched Nimbus.
2. Run the following command:
```

View File

@ -80,9 +80,9 @@ The following sections explain how to do this for certain EL clients.
geth --authrpc.jwtsecret="$HOME/jwtsecret"
```
=== "Goerli"
=== "Holesky"
```sh
geth --goerli --authrpc.jwtsecret="$HOME/jwtsecret"
geth --holesky --authrpc.jwtsecret="$HOME/jwtsecret"
```
=== "Nethermind"
@ -92,9 +92,9 @@ The following sections explain how to do this for certain EL clients.
nethermind --JsonRpc.JwtSecretFile="$HOME/jwtsecret"
```
=== "Goerli"
=== "Holesky"
```sh
nethermind --config goerli --JsonRpc.JwtSecretFile="$HOME/jwtsecret"
nethermind --config holesky --JsonRpc.JwtSecretFile="$HOME/jwtsecret"
```
=== "Others"
@ -119,7 +119,7 @@ A block root may be obtained from another trusted beacon node, or from a trusted
```
=== "Beaconcha.in"
On the [beaconcha.in](https://beaconcha.in) website ([Goerli](https://prater.beaconcha.in)), navigate to the `Epochs` section and select a recent `Finalized` epoch.
On the [beaconcha.in](https://beaconcha.in) website ([Holesky](https://holesky.beaconcha.in)), navigate to the `Epochs` section and select a recent `Finalized` epoch.
Then, scroll down to the bottom of the page.
If the bottom-most slot has a `Proposed` status, copy its `Root Hash`.
Otherwise, for example if the bottom-most slot was `Missed`, go back and pick a different epoch.
@ -141,10 +141,10 @@ To start the light client, run the following commands (inserting your own truste
--trusted-block-root=$TRUSTED_BLOCK_ROOT
```
=== "Goerli"
=== "Holesky"
```sh
TRUSTED_BLOCK_ROOT=0x1234567890123456789012345678901234567890123456789012345678901234
build/nimbus_light_client --network=goerli \
build/nimbus_light_client --network=holesky \
--web3-url=http://127.0.0.1:8551 --jwt-secret="$HOME/jwtsecret" \
--trusted-block-root=$TRUSTED_BLOCK_ROOT
```

View File

@ -37,9 +37,9 @@ Select an execution client and install it, configuring it such that that the aut
geth --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret /tmp/jwtsecret
```
=== "Goerli"
=== "Holesky"
```
geth --goerli --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret /tmp/jwtsecret
geth --holesky --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret /tmp/jwtsecret
```
=== "Nethermind"
@ -87,9 +87,9 @@ You will need to pass the path to the token file to Nimbus together with the web
--jwt-secret=/tmp/jwtsecret
```
=== "Prater"
=== "Holesky"
```sh
./run-prater-beacon-node.sh \
./run-holesky-beacon-node.sh \
--el=http://127.0.0.1:8551 \
--jwt-secret=/tmp/jwtsecret
```

View File

@ -33,9 +33,9 @@ Additionally, the URL of the service exposing the [builder API](https://ethereum
./run-mainnet-beacon-node.sh --payload-builder=true --payload-builder-url=https://${HOST}:${PORT}/
```
=== "Prater Beacon Node"
=== "Holesky Beacon Node"
```sh
./run-prater-beacon-node.sh --payload-builder=true --payload-builder-url=https://${HOST}:${PORT}/
./run-holesky-beacon-node.sh --payload-builder=true --payload-builder-url=https://${HOST}:${PORT}/
```
=== "Validator Client"

View File

@ -62,7 +62,7 @@ While we strongly recommend against it, you can disable doppelganger detection w
### What is the best way to stress test my execution+consensus setup before committing with real ETH?
We recommend running [a Nimbus beacon node](./quick-start.md) on [Prater](./prater.md) and a mainnet [execution client](./eth1.md) on the same machine.
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).
@ -184,7 +184,7 @@ In other words, if you stood to earn ≈0.01 ETH, you would instead be penalized
### How can I keep track of my validator?
One way of keeping track is using an online service such as beaconcha.in: [Mainnet](https://beaconcha.in/) or [Prater](https://prater.beaconcha.in).
One way of keeping track is using an online service such as beaconcha.in: [Mainnet](https://beaconcha.in/) or [Holesky](https://holesky.beaconcha.in).
Another way is to set up [validator monitoring](./validator-monitor.md) together with a [dashboard](./metrics-pretty-pictures.md) to keep track of its performance.

View File

@ -12,8 +12,8 @@ The graffiti can be either a string or, if you want to specify raw bytes, you ca
./run-mainnet-beacon-node.sh --graffiti="<YOUR_WORDS>"
```
=== "Prater"
=== "Holesky"
```sh
./run-prater-beacon-node.sh --graffiti="<YOUR_WORDS>"
./run-holesky-beacon-node.sh --graffiti="<YOUR_WORDS>"
```

View File

@ -39,7 +39,7 @@ In order to recreate deep history in a pruned node, download the [era archive of
./run-mainnet-beacon-node.sh --history=prune ...
```
=== "Prater"
=== "Holesky"
```sh
./run-prater-beacon-node.sh --history=prune ...
./run-holesky-beacon-node.sh --history=prune ...
```

View File

@ -23,7 +23,7 @@ If you come across any issues, please [report them here](https://github.com/stat
3. Download the [latest release](./binaries.md) and install it by unpacking the archive.
4. Choose one of Nethermind, Besu, Erigon, or Geth as an execution client.
Download, install, and [run it](https://notes.ethereum.org/@launchpad/goerli#Run-an-Execution-Layer-Client).
Download, install, and [run it](https://notes.ethereum.org/@launchpad/holesky#Run-an-Execution-Layer-Client).
=== "Nethermind"

View File

@ -2,7 +2,7 @@
Once your validator has been activated, you can set up [validator monitoring](./validator-monitor.md) together with a [dashboard](./metrics-pretty-pictures.md) to keep track of its performance.
Another way of keeping track is using an online service such as beaconcha.in: [Mainnet](https://beaconcha.in/) or [Prater](https://prater.beaconcha.in).
Another way of keeping track is using an online service such as beaconcha.in: [Mainnet](https://beaconcha.in/) or [Holesky](https://holesky.beaconcha.in).
Both online services and dashboards allow setting up alerts for when the validator is offline.

View File

@ -8,7 +8,7 @@ By default, we disable the Keymanager API.
To enable it, start the beacon node with the `--keymanager` option enabled:
```
./run-prater-beacon-node.sh --keymanager
./run-holesky-beacon-node.sh --keymanager
```
Once the node is running, you'll be able to access the API from [http://localhost:5052/](http://localhost:5052/).

View File

@ -70,7 +70,7 @@ The final step is to redirect logs to `rotatelogs` using a pipe when starting Ni
```bash
build/nimbus_beacon_node \
--network:prater \
--network:holesky \
--web3-url="$WEB3URL" \
--data-dir:$DATADIR 2>&1 | rotatelogs -L "$DATADIR/nbc_bn.log" -p "/path/to/rotatelogs-compress.sh" -D -f -c "$DATADIR/log/nbc_bn_%Y%m%d%H%M%S.log" 3600
```

View File

@ -14,7 +14,7 @@ You can learn more about Grafana [here](https://github.com/grafana/grafana).
To enable the metrics server, run the beacon node with the `--metrics` flag:
```
./run-prater-beacon-node.sh --metrics
./run-holesky-beacon-node.sh --metrics
```
Visit [http://127.0.0.1:8008/metrics](http://127.0.0.1:8008/metrics) with a browser or `curl`.

View File

@ -37,12 +37,12 @@ Run the following command from the directory which contains the `deposit` execut
--chain mainnet
```
=== "Prater"
=== "Holesky"
```sh
./deposit existing-mnemonic \
--validator_start_index 0 \
--num_validators 1 \
--chain prater
--chain holesky
```
You'll be prompted to enter your mnemonic, and a new password for your keystore.
@ -70,12 +70,12 @@ Run the following command from the directory which contains the `deposit` execut
--chain mainnet
```
=== "Prater"
=== "Holesky"
```
./deposit existing-mnemonic \
--validator_start_index 1 \
--num_validators 1 \
--chain prater
--chain holesky
```
You'll be prompted to enter your mnemonic and a new password for your keystore.

View File

@ -353,7 +353,7 @@ Depending on your installation method, run these commands to import your signing
```sh
# Run import command as the `nimbus` user
sudo -u nimbus /usr/bin/nimbus_beacon_node deposits import --data-dir=/var/lib/nimbus/shared_prater_0 /path/to/keys
sudo -u nimbus /usr/bin/nimbus_beacon_node deposits import --data-dir=/var/lib/nimbus/shared_holesky_0 /path/to/keys
```
=== "Manual installation"
@ -361,7 +361,7 @@ Depending on your installation method, run these commands to import your signing
To import your signing key into Nimbus, from the `nimbus-eth2` directory run.
```sh
build/nimbus_beacon_node deposits import --data-dir=build/data/shared_prater_0 ../validator_keys
build/nimbus_beacon_node deposits import --data-dir=build/data/shared_holesky_0 ../validator_keys
```
You'll be asked to enter the password you created to encrypt your keystore(s).
@ -369,26 +369,26 @@ Depending on your installation method, run these commands to import your signing
Your validator client needs both your signing keystore(s) and the password encrypting it to import your [key](https://blog.ethereum.org/2020/05/21/keys/) (since it needs to decrypt the keystore in order to be able to use it to sign on your behalf).
### 15. Connect to Prater
### 15. Connect to Holesky
We're finally ready to connect to the Prater testnet!
We're finally ready to connect to the Holesky testnet!
!!! note
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 the [eth1 page](./eth1.md).
To connect to Prater, run:
To connect to Holesky, run:
=== "Using package manager"
```sh
sudo -u nimbus /usr/bin/nimbus_beacon_node --network=prater --data-dir=/var/lib/nimbus/shared_prater_0
sudo -u nimbus /usr/bin/nimbus_beacon_node --network=holesky --data-dir=/var/lib/nimbus/shared_holesky_0
```
=== "Manual installation"
```sh
./run-prater-beacon-node.sh
./run-holesky-beacon-node.sh
```
@ -397,19 +397,19 @@ To connect to Prater, run:
If you look near the top of the logs printed to your console, you should see confirmation that your beacon node has started, with your local validator attached:
```
INF 2020-12-01 11:25:33.487+01:00 Launching beacon node
INF 2023-10-01 11:25:33.487+01:00 Launching beacon node
...
INF 2020-12-01 11:25:34.556+01:00 Loading block dag from database topics="beacnde" tid=19985314 file=nimbus_beacon_node.nim:198 path=build/data/shared_prater_0/db
INF 2020-12-01 11:25:35.921+01:00 Block dag initialized
INF 2020-12-01 11:25:37.073+01:00 Generating new networking key
INF 2023-10-01 11:25:34.556+01:00 Loading block dag from database topics="beacnde" tid=19985314 file=nimbus_beacon_node.nim:198 path=build/data/shared_holesky_0/db
INF 2023-10-01 11:25:35.921+01:00 Block dag initialized
INF 2023-10-01 11:25:37.073+01:00 Generating new networking key
...
NOT 2020-12-01 11:25:45.267+00:00 Local validator attached tid=22009 file=validator_pool.nim:33 pubkey=95e3cbe88c71ab2d0e3053b7b12ead329a37e9fb8358bdb4e56251993ab68e46b9f9fa61035fe4cf2abf4c07dfad6c45 validator=95e3cbe8
NOT 2023-10-01 11:25:45.267+00:00 Local validator attached tid=22009 file=validator_pool.nim:33 pubkey=95e3cbe88c71ab2d0e3053b7b12ead329a37e9fb8358bdb4e56251993ab68e46b9f9fa61035fe4cf2abf4c07dfad6c45 validator=95e3cbe8
...
NOT 2020-12-01 11:25:59.512+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3836397 depositsProcessed=106147
NOT 2020-12-01 11:26:02.574+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3841412 depositsProcessed=106391
NOT 2023-10-01 11:25:59.512+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3836397 depositsProcessed=106147
NOT 2023-10-01 11:26:02.574+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3841412 depositsProcessed=106391
...
INF 2020-12-01 11:26:31.000+00:00 Slot start topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:505 lastSlot=96566 scheduledSlot=96567 beaconTime=1w6d9h53m24s944us774ns peers=7 head=b54486c4:96563 headEpoch=3017 finalized=2f5d12e4:96479 finalizedEpoch=3014
INF 2020-12-01 11:26:36.285+00:00 Slot end topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:593 slot=96567 nextSlot=96568 head=b54486c4:96563 headEpoch=3017 finalizedHead=2f5d12e4:96479 finalizedEpoch=3014
INF 2023-10-01 11:26:31.000+00:00 Slot start topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:505 lastSlot=96566 scheduledSlot=96567 beaconTime=1w6d9h53m24s944us774ns peers=7 head=b54486c4:96563 headEpoch=3017 finalized=2f5d12e4:96479 finalizedEpoch=3014
INF 2023-10-01 11:26:36.285+00:00 Slot end topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:593 slot=96567 nextSlot=96568 head=b54486c4:96563 headEpoch=3017 finalizedHead=2f5d12e4:96479 finalizedEpoch=3014
```
To keep track of your syncing progress, have a look at the output at the very bottom of the terminal window in which your validator is running.
@ -422,7 +422,7 @@ peers: 15 finalized: ada7228a:8765 head: b2fe11cd:8767:2 time: 9900:
Keep an eye on the number of peers you're currently connected to (in the above case that's `15`), as well as your [sync progress](./keep-an-eye.md#syncing-progress).
!!! note
15 - 20 peers and an average sync speed of **0.5 - 1.0** blocks per second is normal on `Prater` with a Pi.
15 - 20 peers and an average sync speed of **0.5 - 1.0** blocks per second is normal on `Holesky` with a Pi.
If your sync speed is much slower than this, the root of the problem may be your USB3.0 to SSD adapter.
See [this post](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245931) for a recommended workaround.
@ -432,8 +432,8 @@ Keep an eye on the number of peers you're currently connected to (in the above c
Whether or not your Pi is up to the task will depend on a number of factors such as SSD speed, network connectivity, etc.
As such, it's best to verify performance on a testnet first.
The best thing you can do is to set your Pi to run Prater.
If you have no trouble syncing and attesting on Prater, your setup should good enough for mainnet as well.
The best thing you can do is to set your Pi to run Holesky.
If you have no trouble syncing and attesting on Holesky, your setup should good enough for mainnet as well.
<blockquote class="twitter-tweet" data-conversation="none"><p lang="en" dir="ltr">We&#39;ve been running lots of PIs and NanoPCs 24/7 for 3 years and never got a hardware fail. It is easy (and cheap) to get redundancy of components (even spare PIs in different locations, more of this to come).</p>&mdash; Ethereum on ARM (@EthereumOnARM) <a href="https://twitter.com/EthereumOnARM/status/1332772217420177408?ref_src=twsrc%5Etfw">November 28, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

View File

@ -12,8 +12,8 @@ Running a beacon node is a [worthwhile endeavor](https://vitalik.ca/general/2021
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.
!!! 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 [Holesky testnet](./holesky.md).
Throughout, we'll provide instructions for both Holesky and Mainnet.
## Steps
@ -70,11 +70,11 @@ cd nimbus-eth2
./run-mainnet-beacon-node.sh --web3-url=http://127.0.0.1:8551 --jwt-secret=/tmp/jwtsecret
```
=== "Prater"
=== "Holesky"
```sh
# Start a prater testnet node
./run-prater-beacon-node.sh --web3-url=http://127.0.0.1:8551 --jwt-secret=/tmp/jwtsecret
# Start a holesky testnet node
./run-holesky-beacon-node.sh --web3-url=http://127.0.0.1:8551 --jwt-secret=/tmp/jwtsecret
```
Once the beacon node starts, you'll see it logging information to the console, like so:

View File

@ -15,7 +15,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.prater.beacon-api.nimbus.team/`
* `http://unstable.holesky.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):
@ -29,9 +29,9 @@ You can make requests as follows (here we are requesting the version the Nimbus
curl -X GET http://unstable.mainnet.beacon-api.nimbus.team/eth/v1/node/version
```
=== "Prater unstable branch"
=== "Holesky unstable branch"
```
curl -X GET http://unstable.prater.beacon-api.nimbus.team/eth/v1/node/version
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.

View File

@ -29,10 +29,10 @@ To make a deposit, you will need to generate keys then submit a deposit transact
The process of setting up a validator is also documented at the Ethereum launchpad site:
* [Mainnet](https://launchpad.ethereum.org/)
* [Goerli/Prater EthStaker Launchpad](https://goerli.launchpad.ethstaker.cc/en/) or [Goerli/Prater EF Launchpad](https://prater.launchpad.ethereum.org/)
* [Holesky EthStaker Launchpad](https://holesky.launchpad.ethstaker.cc/en/) or [Holesky EF Launchpad](https://holesky.launchpad.ethereum.org/)
!!! tip
Before running your validator on Mainnet, you can (and should) verify that your setup works as expected by running it on the [Prater testnet](./prater.md).
Before running your validator on Mainnet, you can (and should) verify that your setup works as expected by running it on the [Holesky testnet](./holesky.md).
### 1. Download the deposit tool
@ -67,10 +67,10 @@ The deposit tool generates a seed phrase, and uses this to create validator and
./deposit new-mnemonic --chain mainnet
```
=== "Prater"
=== "Holesky"
```sh
# Run the deposit tool and follow the instructions on screen
./deposit new-mnemonic --chain prater
./deposit new-mnemonic --chain holesky
```
### 3. Make the deposit
@ -116,9 +116,9 @@ We'll import the signing key of each validator to the [data directory](./data-di
build/nimbus_beacon_node deposits import --data-dir=build/data/shared_mainnet_0
```
=== "Prater"
=== "Holesky"
```sh
build/nimbus_beacon_node deposits import --data-dir=build/data/shared_prater_0
build/nimbus_beacon_node deposits import --data-dir=build/data/shared_holesky_0
```
On success, a message will be printed that your keys have been imported:
@ -146,10 +146,10 @@ If your `validator_keys` folder is stored elsewhere, you can pass its location t
/path/to/keys
```
=== "Prater"
=== "Holesky"
```sh
build/nimbus_beacon_node deposits import \
--data-dir=build/data/shared_prater_0 \
--data-dir=build/data/shared_holesky_0 \
/path/to/keys
```
@ -197,9 +197,9 @@ Press `Ctrl-c` to stop the beacon node if it's running, then use the same comman
./run-mainnet-beacon-node.sh --web3-url=http://127.0.0.1:8551 --suggested-fee-recipient=0x...
```
=== "Prater"
=== "Holesky"
```sh
./run-prater-beacon-node.sh --web3-url=http://127.0.0.1:8551 --suggested-fee-recipient=0x...
./run-holesky-beacon-node.sh --web3-url=http://127.0.0.1:8551 --suggested-fee-recipient=0x...
```
### 3. Check the logs

View File

@ -24,10 +24,10 @@ Later, when everything is working, you can easily switch to mainnet.
=== "Testnet"
To start syncing the `prater` testnet from the `nimbus-eth2` repository, run:
To start syncing the `holesky` testnet from the `nimbus-eth2` repository, run:
```
./run-prater-beacon-node.sh
./run-holesky-beacon-node.sh
```
=== "Mainnet"
@ -43,17 +43,17 @@ Later, when everything is working, you can easily switch to mainnet.
You should see the following output:
```
INF 2020-12-01 11:25:33.487+01:00 Launching beacon node
INF 2023-10-01 11:25:33.487+01:00 Launching beacon node
...
INF 2020-12-01 11:25:34.556+01:00 Loading block dag from database topics="beacnde" tid=19985314 path=build/data/shared_prater_0/db
INF 2020-12-01 11:25:35.921+01:00 Block dag initialized
INF 2020-12-01 11:25:37.073+01:00 Generating new networking key
INF 2023-10-01 11:25:34.556+01:00 Loading block dag from database topics="beacnde" tid=19985314 path=build/data/shared_holesky_0/db
INF 2023-10-01 11:25:35.921+01:00 Block dag initialized
INF 2023-10-01 11:25:37.073+01:00 Generating new networking key
...
NOT 2020-12-01 11:25:59.512+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3836397 depositsProcessed=106147
NOT 2020-12-01 11:26:02.574+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3841412 depositsProcessed=106391
NOT 2023-10-01 11:25:59.512+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3836397 depositsProcessed=106147
NOT 2023-10-01 11:26:02.574+00:00 Eth1 sync progress topics="eth1" tid=21914 blockNumber=3841412 depositsProcessed=106391
...
INF 2020-12-01 11:26:31.000+00:00 Slot start topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:505 lastSlot=96566 scheduledSlot=96567 beaconTime=1w6d9h53m24s944us774ns peers=7 head=b54486c4:96563 headEpoch=3017 finalized=2f5d12e4:96479 finalizedEpoch=3014
INF 2020-12-01 11:26:36.285+00:00 Slot end topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:593 slot=96567 nextSlot=96568 head=b54486c4:96563 headEpoch=3017 finalizedHead=2f5d12e4:96479 finalizedEpoch=3014
INF 2023-10-01 11:26:31.000+00:00 Slot start topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:505 lastSlot=96566 scheduledSlot=96567 beaconTime=1w6d9h53m24s944us774ns peers=7 head=b54486c4:96563 headEpoch=3017 finalized=2f5d12e4:96479 finalizedEpoch=3014
INF 2023-10-01 11:26:36.285+00:00 Slot end topics="beacnde" tid=21815 file=nimbus_beacon_node.nim:593 slot=96567 nextSlot=96568 head=b54486c4:96563 headEpoch=3017 finalizedHead=2f5d12e4:96479 finalizedEpoch=3014
...
```
@ -68,7 +68,7 @@ You can add command line options to the startup command.
For example, to change the port to 9100, use:
```sh
./run-prater-beacon-node.sh --tcp-port=9100 --udp-port=9100
./run-holesky-beacon-node.sh --tcp-port=9100 --udp-port=9100
```
To see a list of the command line options available to you, with descriptions, run:

View File

@ -36,9 +36,9 @@ If this Nimbus node has two validators, one of which has its own suggested fee r
./run-mainnet-beacon-node.sh --suggested-fee-recipient=0x70E47C843E0F6ab0991A3189c28F2957eb6d3842
```
=== "Prater"
=== "Holesky"
```sh
./run-prater-beacon-node.sh --suggested-fee-recipient=0x70E47C843E0F6ab0991A3189c28F2957eb6d3842
./run-holesky-beacon-node.sh --suggested-fee-recipient=0x70E47C843E0F6ab0991A3189c28F2957eb6d3842
```
=== "Validator Client"

View File

@ -2,7 +2,7 @@
!!! note
The commands on this page refer to mainnet.
If you're running on `prater` or another testnet, replace `mainnet` accordingly.
If you're running on `holesky` or another testnet, replace `mainnet` accordingly.
We are continuously making improvements to both stability and resource usage.
If you run into any problem with Nimbus and are not running the latest version, chances are they have already been fixed.

View File

@ -35,11 +35,11 @@ To start trusted node sync, run:
--trusted-node-url=http://localhost:5052
```
=== "Prater"
=== "Holesky"
```sh
build/nimbus_beacon_node trustedNodeSync \
--network:prater \
--data-dir=build/data/shared_prater_0 \
--network:holesky \
--data-dir=build/data/shared_holesky_0 \
--trusted-node-url=http://localhost:5052
```

View File

@ -21,7 +21,7 @@ Next, choose a data directory for the validator client and import the keys there
```sh
build/nimbus_beacon_node deposits import \
--data-dir:build/data/vc_shared_prater_0 "<YOUR VALIDATOR KEYS DIRECTORY>"
--data-dir:build/data/vc_shared_holesky_0 "<YOUR VALIDATOR KEYS DIRECTORY>"
```
!!! warning
@ -35,7 +35,7 @@ With the keys imported, you are ready to start validator client:
```sh
build/nimbus_validator_client \
--data-dir:build/data/vc_shared_prater_0
--data-dir:build/data/vc_shared_holesky_0
```
# Options

13
run-holesky-beacon-node.sh Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Copyright (c) 2020-2023 Status Research & Development GmbH. Licensed under
# either of:
# - Apache License, version 2.0
# - MIT license
# at your option. This file may not be copied, modified, or distributed except
# according to those terms.
cd "$(dirname $0)"
# Allow the binary to receive signals directly.
exec scripts/run-beacon-node.sh nimbus_beacon_node holesky "$@"

@ -1 +1 @@
Subproject commit f43bfb453a8c315cf2d51aeff410d43101335feb
Subproject commit 4adb471040df5c7dbd8487c9d23dda366a316ffa