Skip to content

Commit

Permalink
edits
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandratran committed Nov 4, 2024
1 parent 18da034 commit 376b911
Show file tree
Hide file tree
Showing 8 changed files with 155 additions and 197 deletions.
115 changes: 61 additions & 54 deletions docs/get-started/connect/testnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,23 @@ import TabItem from '@theme/TabItem';

# 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) or
[Ephemery](https://ephemery.dev/)).
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.

:::

:::note

Ephemery is a single network that rolls back to the genesis after a set period of time. Ephemery is focused on short term and heavy testing usecases. The purpose of this is also to avoid problems like insufficient testnet funds, inactive validators, state bloat, and similar issues faced by long-running testnets.

:::

## Prerequisites

- [Teku installed](../install/install-binaries.md).
Expand All @@ -51,8 +48,8 @@ If you're running a beacon node only, skip to the [next step](#3-start-the-execu
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) or [Ephemery faucets](https://ephemery-faucet.pk910.de/).
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

Expand All @@ -76,7 +73,6 @@ If specifying directories, password files must have the same name as the keys, b

- 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 @@ -98,45 +94,45 @@ Open a new terminal window.
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>
--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="Sepolia" label="Sepolia" >
</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=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=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="Ephemery" label="Ephemery" >
</TabItem>
<TabItem value="Sepolia" label="Sepolia">

```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>
--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
Expand Down Expand Up @@ -164,7 +160,7 @@ To run the Teku beacon node and validator client in a single process, run the fo
[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 @@ -178,14 +174,8 @@ teku \
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
```

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

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 value="Ephemery" label="Ephemery" default>
</TabItem>
<TabItem value="Ephemery" label="Ephemery">

```bash
teku \
Expand All @@ -199,7 +189,14 @@ teku \
--validator-keys=<path to key file>:<path to password file>[,<path to key file>:<path to password file>,...]
```

</TabItem>
</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>
</Tabs>

Specify:
Expand All @@ -221,20 +218,30 @@ To run the Teku beacon node and validator client as separate processes, first [s
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>
</Tabs>

Specify:
Expand Down
55 changes: 19 additions & 36 deletions docs/how-to/configure/tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ description: Configure TLS communication between Teku and Web3Signer.
sidebar_position: 4
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Configure TLS

You can configure TLS for communication between Teku and an external signer, for example [Web3Signer].
Expand Down Expand Up @@ -35,11 +32,12 @@ The [Teku and Web3Signer TLS configuration tutorial] provides instructions to cr
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 @@ -50,40 +48,25 @@ eth2

## Start Teku

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

<Tabs>
<TabItem value="Holesky" label="Holesky" default>
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
```
</TabItem>

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

```bash
teku --network=ephemery \
--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
```
</TabItem>
</Tabs>
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
33 changes: 10 additions & 23 deletions docs/how-to/use-external-signer/use-web3signer.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ description: Use the Web3Signer external signing client.
sidebar_position: 1
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Use Web3Signer

Teku supports the [Web3Signer] external signing client.
Expand All @@ -19,32 +16,22 @@ Teku supports the [Web3Signer] external signing client.
## Start Teku

Start Teku and specify the external signer options.

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

```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
```
</TabItem>

<TabItem value="Ephemery" label="Ephemery" default>
For example:

```bash
teku --network=ephemery \
--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
```
</TabItem>
</Tabs>

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
18 changes: 9 additions & 9 deletions docs/reference/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1737,16 +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

0 comments on commit 376b911

Please sign in to comment.