Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ephemery command to documentation #621

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 81 additions & 38 deletions docs/get-started/connect/testnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,19 @@

# Connect to a testnet

Run Teku as a consensus client with any execution client on a testnet (for example [Holesky](https://github.com/eth-clients/holesky) or
[Sepolia](https://github.com/eth-clients/sepolia)).
Run Teku as a consensus client with any execution client on a testnet (for example [Holesky](https://github.com/eth-clients/holesky),
[Ephemery](https://ephemery.dev/), or [Sepolia](https://github.com/eth-clients/sepolia)).

Check failure on line 13 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 13, "column": 2}}}, "severity": "ERROR"}

If you're using [Besu](https://besu.hyperledger.org/en/stable/) as an execution client, you can follow the
[Besu and Teku testnet tutorial](https://besu.hyperledger.org/en/latest/public-networks/tutorials/besu-teku-testnet/).

:::note
:::note Notes

Sepolia is a permissioned network and you can't run a validator client on it without [requesting to become a validator](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg) first.
- Ephemery is a single network that rolls back to the genesis after a set period of time.

Check failure on line 20 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 20, "column": 3}}}, "severity": "ERROR"}
Ephemery is focused on short-term and heavy testing use cases.

Check failure on line 21 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 21, "column": 3}}}, "severity": "ERROR"}
It avoids problems like insufficient testnet funds, inactive validators, state bloat, and similar
issues faced by long-running testnets.
- Sepolia is a permissioned network and you can't run a validator client on it without [requesting to become a validator](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg) first.

Check failure on line 24 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:24:180 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md
You can connect your consensus client using the beacon node only, without any validator duties.

:::
Expand All @@ -44,16 +48,16 @@
If you're also running a validator client, create a test Ethereum address
(you can do this in [MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015289452-How-to-create-an-additional-account-in-your-wallet)).
Fund this address with testnet ETH (32 ETH and gas fees for each validator) using a faucet.
See the list of [Holesky faucets](https://github.com/eth-clients/holesky#metadata) or
[Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia).
See the list of [Holesky faucets](https://github.com/eth-clients/holesky#metadata), [Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia),
or [Ephemery faucets](https://ephemery-faucet.pk910.de/).

Check failure on line 52 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 52, "column": 5}}}, "severity": "ERROR"}

:::note

If you're unable to get ETH using the faucet, you can ask for help on the [EthStaker Discord](https://discord.gg/ethstaker).

:::

Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/).
Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) or [Ephemery Staking Launchpad](https://launchpad.ephemery.dev/).

Check failure on line 60 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 60, "column": 135}}}, "severity": "ERROR"}

Remember the passwords that you use to create the validator keys, because you
need them to [create the validator password files](#create-a-password-file-for-each-validator-key).
Expand All @@ -62,14 +66,13 @@

For each validator key, create a text file containing the password to decrypt the key.

Teku allows you to specify individual keys and passwords in the command line, or you can specify directories from which to load keys and passwords.

Check failure on line 69 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:69:148 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md
If specifying directories, password files must have the same name as the keys, but use the `.txt` extension.

:::info

- If the Launchpad creates a key named `keystore-m_12381_3600_0_0_0-1596485378.json`,
then the password file must be named `keystore-m_12381_3600_0_0_0-1596485378.txt`.

- The password file format follows
[`EIP-2335`](https://eips.ethereum.org/EIPS/eip-2335#password-requirements)
requirements (UTF-8 encoded file, unicode normalization, and control code removal).
Expand All @@ -91,34 +94,48 @@
To run Teku as a beacon node only (without validator duties), run the following command or [specify the options in a configuration file](../../how-to/configure/use-config-file.md):

<Tabs>
<TabItem value="Holesky" label="Holesky" default>
<TabItem value="Holesky" label="Holesky" default>

```bash
teku \
--network=holesky \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL>
```

</TabItem>
<TabItem value="Ephemery" label="Ephemery">

Check failure on line 110 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 110, "column": 17}}}, "severity": "ERROR"}

```bash
teku \
--network=holesky \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL>
--network=ephemery \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL optional>
```

</TabItem>
<TabItem value="Sepolia" label="Sepolia" >
</TabItem>
<TabItem value="Sepolia" label="Sepolia">

```bash
teku \
--network=sepolia \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL>
--network=sepolia \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL>
```

</TabItem>
</TabItem>
</Tabs>


Check failure on line 138 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Multiple consecutive blank lines

docs/get-started/connect/testnet.md:138 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md012.md
Specify:

- The path to the `jwtsecret.hex` file generated in [step 1] using the
Expand All @@ -132,7 +149,7 @@

You can run the Teku beacon node and validator client as a [single process](#single-process) or as [separate processes](#separate-processes).

You can check your validator status by searching your Ethereum address on the [Holesky Beacon Chain explorer](https://holesky.beaconcha.in/).
You can check your validator status by searching your Ethereum address on the [Holesky Beacon Chain explorer](https://holesky.beaconcha.in/) or [Ephemery Beacon Chain Explorer](https://beaconchain.ephemery.dev).

Check failure on line 152 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:152:212 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md

Check failure on line 152 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Line length

docs/get-started/connect/testnet.md:152:201 MD013/line-length Line length [Expected: 200; Actual: 212] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md013.md
Your validator might take multiple days to activate and start proposing blocks.

You can also use [Prometheus and Grafana](../../how-to/monitor/use-metrics.md) to monitor your nodes.
Expand All @@ -143,7 +160,7 @@
[specify the options in the configuration file](../../how-to/configure/use-config-file.md):

<Tabs>
<TabItem value="Holesky" label="Holesky" default>
<TabItem value="Holesky" label="Holesky" default>

```bash
teku \
Expand All @@ -157,12 +174,29 @@
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
```

</TabItem>
<TabItem value="Sepolia" label="Sepolia" >
</TabItem>
<TabItem value="Ephemery" label="Ephemery">

```bash
teku \
--network=ephemery \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file=<path to jwtsecret.hex> \
--metrics-enabled=true \
--rest-api-enabled=true \
--checkpoint-sync-url=<checkpoint sync URL optional> \
--validators-proposer-default-fee-recipient=<ETH address> \
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
```

</TabItem>
<TabItem value="Sepolia" label="Sepolia" >

:::note
Sepolia is a permissioned network and you can't run a validator client on it without [requesting to become a validator](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg) first.
:::

</TabItem>
</TabItem>
</Tabs>

Specify:
Expand All @@ -171,8 +205,8 @@
- The URL of a checkpoint sync endpoint using the
[`--checkpoint-sync-url`](../../reference/cli/index.md#checkpoint-sync-url) option.
- An Ethereum address you own as the default fee recipient using the [`--validators-proposer-default-fee-recipient`](../../reference/cli/index.md#validators-proposer-default-fee-recipient) option.
- The paths to the keystore `.json` file and password `.txt` file created in [step 2](#create-a-password-file-for-each-validator-key) for each validator using the [`--validator-keys`](../../reference/cli/index.md#validator-keys) option.

Check failure on line 208 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:208:237 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md

Check failure on line 208 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Line length

docs/get-started/connect/testnet.md:208:201 MD013/line-length Line length [Expected: 200; Actual: 237] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md013.md
Separate the `.json` and `.txt` files with a colon, and separate entries for multiple validators with commas.

Check failure on line 209 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:209:110 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md
Alternatively, specify paths to directories to load multiple keys and passwords from.

You can modify the option values and add other [command line options](../../reference/cli/index.md) as needed.
Expand All @@ -184,27 +218,36 @@
On a separate machine, run Teku using the [`validator-client`](../../reference/cli/subcommands/validator-client.md) subcommand:

<Tabs>
<TabItem value="Holesky" label="Holesky" default>
<TabItem value="Holesky" label="Holesky" default>

```bash
teku validator-client \
--network=holesky \
--beacon-node-api-endpoint=<endpoint> \
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
--network=holesky \
--beacon-node-api-endpoint=<endpoint> \
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
```

</TabItem>
<TabItem value="Sepolia" label="Sepolia" >
</TabItem>
<TabItem value="Ephemery">

:::note Coming soon
Support for starting Teku as a separate validator client on the Ephemery testnet is coming soon.

Check failure on line 234 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 234, "column": 65}}}, "severity": "ERROR"}
:::

</TabItem>
<TabItem value="Sepolia" label="Sepolia">

:::note
Sepolia is a permissioned network and you can't run a validator client on it without [requesting to become a validator](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg) first.
:::

</TabItem>
</TabItem>
</Tabs>

Specify:

- The location of one or more beacon node API endpoints using the [`--beacon-node-api-endpoint`](../../reference/cli/subcommands/validator-client.md#beacon-node-api-endpoint-beacon-node-api-endpoints) option.

Check failure on line 249 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Line length

docs/get-started/connect/testnet.md:249:201 MD013/line-length Line length [Expected: 200; Actual: 208] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md013.md
- The paths to the keystore `.json` file and password `.txt` file created in [step 2](#create-a-password-file-for-each-validator-key) for each validator using the [`--validator-keys`](../../reference/cli/index.md#validator-keys) option.

Check failure on line 250 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Lint

Trailing spaces

docs/get-started/connect/testnet.md:250:237 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md009.md
Separate the `.json` and `.txt` files with a colon, and separate entries for multiple validators with commas
Alternatively, specify paths to directories to load multiple keys and passwords from.

Expand All @@ -221,10 +264,10 @@
## 6. Stake ETH

Stake your testnet ETH for one or more validators using the
[Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/).
[Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) or [Ephemery Staking Launchpad](https://launchpad.ephemery.dev).

Check failure on line 267 in docs/get-started/connect/testnet.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'Ephemery'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'Ephemery'?", "location": {"path": "docs/get-started/connect/testnet.md", "range": {"start": {"line": 267, "column": 74}}}, "severity": "ERROR"}

You can check your validator status by searching your Ethereum address on the
[Holesky Beacon Chain explorer](https://holesky.beaconcha.in/).
[Holesky Beacon Chain explorer](https://holesky.beaconcha.in/) or [Ephemery Beacon Chain explorer](https://beaconchain.ephemery.dev).
It may take up to multiple days for your validator to be activated and start
proposing blocks.

Expand Down
60 changes: 60 additions & 0 deletions docs/get-started/install/run-docker-image.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,66 @@ services:
```

</TabItem>

<TabItem value="Ephemery" label="Ephemery" default>

```yaml
---
version: "3.4"
services:
besu_node:
image: hyperledger/besu:latest
command:
[
"--network=ephemery",
"--data-path=/var/lib/besu/data",
"--host-allowlist=*",
"--sync-mode=FAST",
"--rpc-http-enabled",
"--rpc-http-cors-origins=*",
"--rpc-http-api=ETH,NET,CLIQUE,DEBUG,MINER,NET,PERM,ADMIN,EEA,TXPOOL,PRIV,WEB3",
"--engine-jwt-secret=/var/lib/besu/data/token.txt",
"--engine-host-allowlist=*",
"--engine-rpc-enabled=true",
]
volumes:
- ./besu:/var/lib/besu/data
ports:
# Map the p2p port(30303), RPC HTTP port(8545), and engine port (8551)
- "8545:8545"
- "8551:8551"
- "30303:30303/tcp"
- "30303:30303/udp"

teku_node:
environment:
- "JAVA_OPTS=-Xmx4g"
image: consensys/teku:latest
command:
[
"--network=ephemery",
"--data-base-path=/var/lib/teku/data",
"--validators-proposer-default-fee-recipient=YOUR_WALLET",
"--ee-endpoint=http://besu_node:8551",
"--ee-jwt-secret-file=/var/lib/teku/data/token.txt",
"--validator-keys=/var/lib/teku/data/validator/keys:/var/lib/teku/data/validator/passwords",
"--p2p-port=9000",
"--rest-api-enabled=true",
"--rest-api-docs-enabled=true",
]
depends_on:
- besu_node
volumes:
- ./teku:/var/lib/teku/data
ports:
# Map the p2p port(9000) and REST API port(5051)
- "9000:9000/tcp"
- "9000:9000/udp"
- "5051:5051"
```

</TabItem>

<TabItem value="Mainnet" label="Mainnet" >

```yaml
Expand Down
34 changes: 19 additions & 15 deletions docs/how-to/configure/tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@
Start Web3Signer with the TLS configuration options and specify the keystore and known clients file.

```bash
web3signer --key-store-path=/Users/me/keyFiles/ \
--tls-keystore-file=/Users/me/certs/web3signer_keystore.p12 \
--tls-keystore-password-file=/Users/me/certs/web3signer_keystore_password.txt \
--tls-known-clients-file=/Users/me/certs/knownClients.txt \
eth2
web3signer \
--key-store-path=/Users/me/keyFiles/ \
--tls-keystore-file=/Users/me/certs/web3signer_keystore.p12 \
--tls-keystore-password-file=/Users/me/certs/web3signer_keystore_password.txt \
--tls-known-clients-file=/Users/me/certs/knownClients.txt \
eth2
```

:::note
Expand All @@ -47,22 +48,25 @@

## Start Teku

Start Teku with the external signer, keystore, and truststore details:
Start Teku with the external signer, keystore, and truststore details.
For example:

```bash
teku --network=holesky \
--eth1-endpoint=http://localhost:8545 \
--validators-external-signer-public-keys=0xa99a...e44c,0xb89b...4a0b \
--validators-external-signer-url=https://localhost:9000 \
--validators-external-signer-truststore=/Users/me/certs/web3signer_truststore.p12 \
--validators-external-signer-truststore-password-file=/Users/me/certs/truststore_pass.txt \
--validators-external-signer-keystore=/Users/me/certs/teku_client_keystore.p12 \
--validators-external-signer-keystore-password-file=/Users/me/certs/teku_keystore_password.txt
teku \
--network=holesky \
--eth1-endpoint=http://localhost:8545 \
--validators-external-signer-public-keys=0xa99a...e44c,0xb89b...4a0b \
--validators-external-signer-url=https://localhost:9000 \
--validators-external-signer-truststore=/Users/me/certs/web3signer_truststore.p12 \
--validators-external-signer-truststore-password-file=/Users/me/certs/truststore_pass.txt \
--validators-external-signer-keystore=/Users/me/certs/teku_client_keystore.p12 \
--validators-external-signer-keystore-password-file=/Users/me/certs/teku_keystore_password.txt
```

In the command:

- Specify the JSON-RPC URL of the ETH1 node using [`--eth1-endpoint`](../../reference/cli/index.md#eth1-endpoint-eth1-endpoints).
- Specify the network using [`--network`](../../reference/cli/index.md#network).
- Specify the JSON-RPC URL of the execution layer client using [`--eth1-endpoint`](../../reference/cli/index.md#eth1-endpoint-eth1-endpoints).

Check warning on line 69 in docs/how-to/configure/tls.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Microsoft.GeneralURL] For a general audience, use 'address' rather than 'URL'. Raw Output: {"message": "[Microsoft.GeneralURL] For a general audience, use 'address' rather than 'URL'.", "location": {"path": "docs/how-to/configure/tls.md", "range": {"start": {"line": 69, "column": 24}}}, "severity": "WARNING"}
- Specify the validator's public keys using [`--validators-external-signer-public-keys`](../../reference/cli/index.md#validators-external-signer-public-keys).
- Specify the URL of the running external signer using [`--validators-external-signer-url`](../../reference/cli/index.md#validators-external-signer-url).
- Specify the truststore and password file using [`validators-external-signer-truststore`](../../reference/cli/index.md#validators-external-signer-truststore) and [`validators-external-signer-truststore-password-file`](../../reference/cli/index.md#validators-external-signer-truststore-password-file).
Expand Down
15 changes: 10 additions & 5 deletions docs/how-to/use-external-signer/use-web3signer.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,22 @@
## Start Teku

Start Teku and specify the external signer options.
For example:

```bash
teku --network=holesky \
--eth1-endpoint=http://localhost:8545 \
--validators-external-signer-public-keys=0xa99a...e44c,0xb89b...4a0b \
--validators-external-signer-url=http://localhost:9000
teku \
--network=holesky \
--eth1-endpoint=http://localhost:8545 \
--validators-external-signer-public-keys=0xa99a...e44c,0xb89b...4a0b \
--validators-external-signer-url=http://localhost:9000
```

The command line specifies the following:

- The validator public keys for which Web3Signer signs attestations and blocks using [`--validators-external-signer-public-keys`](../../reference/cli/index.md#validators-external-signer-public-keys).
- The network using [`--network`](../../reference/cli/index.md#network).
- The JSON-RPC URL of the execution layer client using [`--eth1-endpoint`](../../reference/cli/index.md#eth1-endpoint-eth1-endpoints).

Check warning on line 32 in docs/how-to/use-external-signer/use-web3signer.md

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Microsoft.GeneralURL] For a general audience, use 'address' rather than 'URL'. Raw Output: {"message": "[Microsoft.GeneralURL] For a general audience, use 'address' rather than 'URL'.", "location": {"path": "docs/how-to/use-external-signer/use-web3signer.md", "range": {"start": {"line": 32, "column": 16}}}, "severity": "WARNING"}
- The validator public keys for which Web3Signer signs attestations and blocks using
[`--validators-external-signer-public-keys`](../../reference/cli/index.md#validators-external-signer-public-keys).
- The URL of the Web3Signer client using [`--validators-external-signer-url`](../../reference/cli/index.md#validators-external-signer-url).

:::note
Expand Down
19 changes: 10 additions & 9 deletions docs/reference/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1737,15 +1737,16 @@ The default is `mainnet`.

Possible values are:

| Network | Chain | Type | Description |
|:----------|:----------------|:-----------|:------------------------------------------------------------------------|
| `mainnet` | Consensus layer | Production | Main network |
| `minimal` | Consensus layer | Test | Used for local testing and development networks |
| `gnosis` | Consensus layer | Production | Network for the [Gnosis chain](https://www.gnosis.io/) |
| `holesky` | Consensus layer | Test | Multi-client testnet |
| `sepolia` | Consensus layer | Test | Multi-client testnet |
| `chiado` | Consensus layer | Test | Gnosis [testnet](https://docs.gnosischain.com/concepts/networks/chiado) |
| `lukso` | Consensus layer | Production | Network for the [Lukso chain](https://lukso.network/) |
| Network | Chain | Type | Description |
|:-----------|:----------------|:-----------|:------------------------------------------------------------------------|
| `mainnet` | Consensus layer | Production | Main network |
| `holesky` | Consensus layer | Test | Multi-client testnet |
| `ephemery` | Consensus layer | Test | Multi-client testnet |
| `sepolia` | Consensus layer | Test | Multi-client testnet |
| `minimal` | Consensus layer | Test | Used for local testing and development networks |
| `gnosis` | Consensus layer | Production | Network for the [Gnosis chain](https://www.gnosis.io/) |
| `chiado` | Consensus layer | Test | Gnosis [testnet](https://docs.gnosischain.com/concepts/networks/chiado) |
| `lukso` | Consensus layer | Production | Network for the [Lukso chain](https://lukso.network/) |

Predefined networks can provide defaults such as the initial state of the network, bootnodes, and
the address of the deposit contract.
Expand Down
Loading
Loading