From 131e1fa2af34f2ae6b26951a5ff208ef825470d5 Mon Sep 17 00:00:00 2001 From: Glory Agatevure Date: Mon, 4 Nov 2024 05:43:32 +0100 Subject: [PATCH] Add Ephemery command to documentation (#1727) * Add Ephemery command to testnet.md file Signed-off-by: gconnect * Add ephemery command to other files Signed-off-by: gconnect * Update docs/public-networks/concepts/network-and-chain-id.md Co-authored-by: Sally MacFarlane Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/connect/testnet.md Co-authored-by: Sally MacFarlane Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/start-node.md Co-authored-by: Sally MacFarlane Signed-off-by: Glory Agatevure * Add ephemery to testnet.md Signed-off-by: gconnect * Update docs/public-networks/concepts/node-sync.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/connect/testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/connect/testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/connect/testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/get-started/connect/testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update src/components/HomepageCards/index.tsx Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/tutorials/besu-teku-testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/tutorials/besu-teku-testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Update docs/public-networks/tutorials/besu-teku-testnet.md Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Signed-off-by: Glory Agatevure * Add pipe to table Signed-off-by: gconnect * Update docs/public-networks/index.md Signed-off-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> --------- Signed-off-by: gconnect Signed-off-by: Glory Agatevure Signed-off-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> Co-authored-by: Sally MacFarlane Co-authored-by: Byron Gravenorst <50852695+bgravenorst@users.noreply.github.com> --- .../get-started/install/run-docker-image.md | 21 +++++++-- .../how-to/configure/bootnodes.md | 2 +- .../how-to/monitor/chainlens.md | 2 +- .../concepts/network-and-chain-id.md | 1 + docs/public-networks/concepts/node-sync.md | 2 +- .../get-started/connect/testnet.md | 35 ++++++++++++--- .../public-networks/get-started/start-node.md | 14 +++++- docs/public-networks/index.md | 2 +- docs/public-networks/reference/cli/options.md | 1 + .../tutorials/besu-teku-testnet.md | 44 ++++++++++++++++--- src/components/HomepageCards/index.tsx | 2 +- 11 files changed, 106 insertions(+), 20 deletions(-) diff --git a/docs/private-networks/get-started/install/run-docker-image.md b/docs/private-networks/get-started/install/run-docker-image.md index c85ebbf055f..b75c253b22c 100644 --- a/docs/private-networks/get-started/install/run-docker-image.md +++ b/docs/private-networks/get-started/install/run-docker-image.md @@ -6,6 +6,9 @@ tags: - private networks --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + # Run Besu from a Docker image Besu provides a Docker image to run a Besu node in a Docker container. @@ -66,9 +69,21 @@ When running in a Docker container, [`--nat-method`](../../../public-networks/ho You can specify [Besu environment variables](../../../public-networks/reference/cli/options.md#specify-options) with the Docker image instead of the command line options. -```bash -docker run -p 30303:30303 -p 8545:8545 -e BESU_RPC_HTTP_ENABLED=true -e BESU_NETWORK=holesky hyperledger/besu:latest -``` + + + + ```bash + docker run -p 30303:30303 -p 8545:8545 -e BESU_RPC_HTTP_ENABLED=true -e BESU_NETWORK=holesky hyperledger/besu:latest + ``` + + + + + ```bash + docker run -p 30303:30303 -p 8545:8545 -e BESU_RPC_HTTP_ENABLED=true -e BESU_NETWORK=ephemery hyperledger/besu:latest + ``` + + :::caution "Unsupported address type exception" diff --git a/docs/private-networks/how-to/configure/bootnodes.md b/docs/private-networks/how-to/configure/bootnodes.md index d0e02ec6b14..2805e7e1afc 100644 --- a/docs/private-networks/how-to/configure/bootnodes.md +++ b/docs/private-networks/how-to/configure/bootnodes.md @@ -24,7 +24,7 @@ To find peers, configure one or more bootnodes. To configure a specific set of p :::note Mainnet and public testnets -For Mainnet and the Sepolia and Holesky testnets, Besu has an internal list of enode URLs and uses this list automatically when you specify the [`--network`](../../../public-networks/reference/cli/options.md#network) option. +For Mainnet and the Sepolia, Ephemery and Holesky testnets, Besu has an internal list of enode URLs and uses this list automatically when you specify the [`--network`](../../../public-networks/reference/cli/options.md#network) option. ::: diff --git a/docs/private-networks/how-to/monitor/chainlens.md b/docs/private-networks/how-to/monitor/chainlens.md index 695213eb9a3..418b8ed9243 100644 --- a/docs/private-networks/how-to/monitor/chainlens.md +++ b/docs/private-networks/how-to/monitor/chainlens.md @@ -72,7 +72,7 @@ The **Dashboard** page provides an aggregated view of network activities. ![`Chainlens_dashboard`](../../../assets/images/chainlens-dashboard.png) The **Network** page provides an overview of the network status and connected peers. -This page is disabled by default, and is only visible if you set `DISPLAY_NETWOR_TAB=enabled` using +This page is disabled by default, and is only visible if you set `DISPLAY_NETWORK_TAB=enabled` using the following command: ```bash diff --git a/docs/public-networks/concepts/network-and-chain-id.md b/docs/public-networks/concepts/network-and-chain-id.md index ae5f6afe213..c306afff239 100644 --- a/docs/public-networks/concepts/network-and-chain-id.md +++ b/docs/public-networks/concepts/network-and-chain-id.md @@ -42,6 +42,7 @@ Besu sets the chain ID (and by default the network ID) automatically, using eith | `dev` | ETH | 2018 | 2018 | Development | | `classic` | ETC | 61 | 1 | Production | | `mordor` | ETC | 63 | 7 | Test | +| `ephemery`| ETH | [dynamic](https://github.com/ephemery-testnet/ephemery-genesis/releases) | [dynamic](https://github.com/ephemery-testnet/ephemery-genesis/releases) | Test | :::info diff --git a/docs/public-networks/concepts/node-sync.md b/docs/public-networks/concepts/node-sync.md index 99874a3b628..8a532b4f375 100644 --- a/docs/public-networks/concepts/node-sync.md +++ b/docs/public-networks/concepts/node-sync.md @@ -108,7 +108,7 @@ You need Besu version 22.4.3 or later to use checkpoint sync. Checkpoint sync behaves like [snap sync](#snap-synchronization), but instead of syncing from the genesis block, it syncs from a specific checkpoint block configured in the [Besu genesis file](genesis-file.md). -Ethereum Mainnet and the Holesky testnet configurations already define default checkpoints, so you +Ethereum Mainnet, Holesky, and Ephemery testnet configurations already define default checkpoints, so you don't have to add this yourself. For other networks, you can configure a checkpoint in the genesis file by specifying the block hash, diff --git a/docs/public-networks/get-started/connect/testnet.md b/docs/public-networks/get-started/connect/testnet.md index 689c7399909..b631a19a4be 100644 --- a/docs/public-networks/get-started/connect/testnet.md +++ b/docs/public-networks/get-started/connect/testnet.md @@ -11,7 +11,7 @@ import TabItem from '@theme/TabItem'; # Connect to a testnet -Run Besu as an [execution client](../../concepts/node-clients.md#execution-clients) with any consensus client on the [Holesky](https://github.com/eth-clients/holesky) and [Sepolia](https://github.com/eth-clients/sepolia) testnets. +Run Besu as an [execution client](../../concepts/node-clients.md#execution-clients) with any consensus client on the [Holesky](https://github.com/eth-clients/holesky), [Sepolia](https://github.com/eth-clients/sepolia), and [Ephemery](https://github.com/ephemery-testnet/ephemery-resources) testnets. If you're using [Teku](https://docs.teku.consensys.net/en/latest/) as a consensus client, you can follow the [Besu and Teku testnet tutorial](../../tutorials/besu-teku-testnet.md). @@ -21,6 +21,14 @@ Sepolia is a permissioned network and you can't run a validator client on it wit ::: +:::note + +Ephemery is a single network that resets to the genesis block after a set period. The network focuses on +short-term, intensive testing use cases. This approach avoids issues like insufficient testnet funds, inactive +validators, and state bloat that long-running testnets face. + +::: + ## Prerequisites - [Besu installed](../install/binary-distribution.md). @@ -42,7 +50,7 @@ You will specify `jwtsecret.hex` when starting Besu and the consensus client. Th If you're running the consensus client as a beacon node only, skip to the [next step](#3-start-besu). -If you're also running the consensus client as 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) and [Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia). +If you're also running the consensus client as 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), [Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia), and [Ephemery faucets](https://ephemery-faucet.pk910.de/). :::note @@ -50,7 +58,7 @@ If you can't get testnet ETH using the faucet, you can ask for help on the [EthS ::: -Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) (or [request to become validator on Sepolia](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg)). +Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/), [Ephemery Staking Launchpad](https://launchpad.ephemery.dev/), or [request to become validator on Sepolia](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg). :::info @@ -100,6 +108,23 @@ besu \ + + + ```bash + besu \ + --network=ephemery \ + --rpc-http-enabled=true \ + --rpc-http-host=0.0.0.0 \ + --rpc-http-cors-origins="*" \ + --rpc-ws-enabled=true \ + --rpc-ws-host=0.0.0.0 \ + --host-allowlist="*" \ + --engine-host-allowlist="*" \ + --engine-rpc-enabled \ + --engine-jwt-secret= + ``` + + Specify the path to the `jwtsecret.hex` file generated in [step 1](#1-generate-the-shared-secret) using the [`--engine-jwt-secret`](../../reference/cli/options.md#engine-jwt-secret) option. @@ -160,6 +185,6 @@ If you're running the consensus client as a beacon node only, you're all set. If ### 6. Stake ETH -Stake your testnet ETH for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/). +Stake your testnet ETH for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) or [Ephemery Staking Launchpad](https://launchpad.ephemery.dev/). -You can check your validator status by searching your Ethereum address on the [Holesky Beacon Chain explorer](https://holesky.beaconcha.in/). It may take up to multiple days for your validator to be activated and start proposing blocks. +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/). It may take up to multiple days for your validator to be activated and start proposing blocks. diff --git a/docs/public-networks/get-started/start-node.md b/docs/public-networks/get-started/start-node.md index bc520b48ed5..ab3f01a7180 100644 --- a/docs/public-networks/get-started/start-node.md +++ b/docs/public-networks/get-started/start-node.md @@ -24,7 +24,7 @@ To delete the local block data, delete the `database` directory in the `besu/bui ## Genesis configuration -Besu specifies the genesis configuration, and sets the network ID and bootnodes when connecting to [Holesky](#run-a-node-on-holesky-testnet), [Sepolia](#run-a-node-on-sepolia-testnet), and [Mainnet](#run-a-node-on-ethereum-mainnet). +Besu specifies the genesis configuration, and sets the network ID and bootnodes when connecting to [Holesky](#run-a-node-on-holesky-testnet), [Sepolia](#run-a-node-on-sepolia-testnet), [Ephemery](#run-a-node-on-ephemery-testnet) and [Mainnet](#run-a-node-on-ethereum-mainnet). :::info @@ -104,6 +104,18 @@ Where `` and `` are the path and directory to save the S See the [guide on connecting to a testnet](connect/testnet.md) for more information. +## Run a node on Ephemery testnet + +To run a node on [Ephemery](https://github.com/ephemery-testnet/ephemery-resources?tab=readme-ov-file) specifying a data directory: + +```bash +besu --network=ephemery --data-path=/ +``` + +Where `` and `` are the path and directory to save the Ephemery chain data to. + +See the [guide on connecting to a testnet](connect/testnet.md) for more information. + ## Run a node on Ethereum Mainnet To run a node on the Ethereum Mainnet: diff --git a/docs/public-networks/index.md b/docs/public-networks/index.md index 02fcda2d210..a3a601bc6d4 100644 --- a/docs/public-networks/index.md +++ b/docs/public-networks/index.md @@ -9,7 +9,7 @@ tags: # Besu for public networks -Besu serves as an [execution client](concepts/node-clients.md#execution-clients) on public proof-of-stake Ethereum networks such as Ethereum Mainnet, Holesky, and Sepolia. +Besu serves as an [execution client](concepts/node-clients.md#execution-clients) on public proof-of-stake Ethereum networks such as Ethereum Mainnet, Holesky, Ephemery, and Sepolia. You can also run Besu using proof of work on [Ethereum Classic (ETC)](how-to/use-pow/mining.md). diff --git a/docs/public-networks/reference/cli/options.md b/docs/public-networks/reference/cli/options.md index 7c7b95c7421..17d1d4b72c9 100644 --- a/docs/public-networks/reference/cli/options.md +++ b/docs/public-networks/reference/cli/options.md @@ -2688,6 +2688,7 @@ Possible values include the following: | `dev` | ETH | Development | [`FULL`](#sync-mode) | A PoW network | Development network with low difficulty to enable local CPU mining | | `classic` | ETC | Production | [`SNAP`](#sync-mode) | A PoW network | The main [Ethereum Classic network](https://ethereumclassic.org) | | `mordor ` | ETC | Test | [`SNAP`](#sync-mode) | A PoW network | Testnet for [Ethereum Classic](https://github.com/eth-classic/mordor) | +| `ephemery` | ETH | Test | [`SNAP`](#sync-mode) | A PoS network | Multi-client testnet [Ephemery](https://ephemery.dev) | :::tip diff --git a/docs/public-networks/tutorials/besu-teku-testnet.md b/docs/public-networks/tutorials/besu-teku-testnet.md index 7b554f08043..2841cf2fb87 100644 --- a/docs/public-networks/tutorials/besu-teku-testnet.md +++ b/docs/public-networks/tutorials/besu-teku-testnet.md @@ -1,7 +1,7 @@ --- title: Run Besu and Teku on a testnet sidebar_position: 2 -description: Run Besu and Teku on Holesky or Sepolia testnet. +description: Run Besu and Teku on Holesky, Ephemery, or Sepolia testnet. tags: - public networks --- @@ -11,7 +11,7 @@ import TabItem from '@theme/TabItem'; # Run Besu and Teku on a testnet -Run Besu as an [execution client](../concepts/node-clients.md#execution-clients) and [Teku](https://docs.teku.consensys.net/) as a [consensus client](../concepts/node-clients.md#consensus-clients) on the [Holesky](https://github.com/eth-clients/holesky) and [Sepolia](https://github.com/eth-clients/sepolia) Ethereum testnets. +Run Besu as an [execution client](../concepts/node-clients.md#execution-clients) and [Teku](https://docs.teku.consensys.net/) as a [consensus client](../concepts/node-clients.md#consensus-clients) on the [Holesky](https://github.com/eth-clients/holesky), [Ephemery](https://github.com/ephemery-testnet/ephemery-resources), and [Sepolia](https://github.com/eth-clients/sepolia) Ethereum testnets. :::note @@ -41,7 +41,7 @@ You will specify `jwtsecret.hex` when starting Besu and Teku. This is a shared J If you're running Teku as a beacon node only, skip to the [next step](#4-start-besu). -If you're also running Teku as 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) and [Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia). +If you're also running Teku as 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), [Ephemery faucets](https://ephemery-faucet.pk910.de/), and [Sepolia faucets](https://github.com/eth-clients/sepolia#meta-data-sepolia). :::note @@ -49,7 +49,7 @@ If you can't get ETH using the faucet, you can ask for help on the [EthStaker Di ::: -Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) (or [request to become validator on Sepolia](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg)). +Generate validator keys for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/), [Ephemery Staking Launchpad](https://launchpad.ephemery.dev/) (or [request to become validator on Sepolia](https://notes.ethereum.org/zvkfSmYnT0-uxwwEegbCqg)). :::info @@ -97,6 +97,23 @@ besu \ + + +```bash +besu \ + --network=ephemery \ + --rpc-http-enabled=true \ + --rpc-http-cors-origins="*" \ + --rpc-ws-enabled=true \ + --p2p-host= \ + --host-allowlist="*" \ + --engine-host-allowlist="*" \ + --engine-rpc-enabled \ + --engine-jwt-secret= +``` + + + Specify the path to the `jwtsecret.hex` file generated in [step 2](#2-generate-the-shared-secret) using the [`--engine-jwt-secret`](../reference/cli/options.md#engine-jwt-secret) option. @@ -143,6 +160,21 @@ teku \ + + +```bash +teku \ + --network=ephemery \ + --ee-endpoint=http://localhost:8551 \ + --ee-jwt-secret-file= \ + --metrics-enabled=true \ + --rest-api-enabled=true \ + --p2p-advertised-ip= \ + --checkpoint-sync-url= +``` + + + Specify: @@ -249,9 +281,9 @@ If you're running Teku as a beacon node only, you're all set. If you're also run ## 7. Stake ETH -Stake your testnet ETH for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/). +Stake your testnet ETH for one or more validators using the [Holesky Staking Launchpad](https://holesky.launchpad.ethereum.org/) or [Ephemery Staking Launchpad](https://launchpad.ephemery.dev/). -You can check your validator status by searching your Ethereum address on the [Holesky Beacon Chain explorer](https://holesky.beaconcha.in/). It may take up to multiple days for your validator to be activated and start proposing blocks. +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/). It may take up to multiple days for your validator to be activated and start proposing blocks. diff --git a/src/components/HomepageCards/index.tsx b/src/components/HomepageCards/index.tsx index 4c62518a4b4..cef20cbfb4e 100644 --- a/src/components/HomepageCards/index.tsx +++ b/src/components/HomepageCards/index.tsx @@ -26,7 +26,7 @@ const CardList: CardItem[] = [ // prettier-ignore description: ( <> - Run Besu as an execution client on Ethereum Mainnet and Ethereum public testnets, such as Holesky and Sepolia. + Run Besu as an execution client on Ethereum Mainnet and Ethereum public testnets, such as Holesky, Ephemery, and Sepolia. ), buttonName: "Get started",