Skip to content

Commit

Permalink
Merge branch 'main' into 1561-sequenced-transaction
Browse files Browse the repository at this point in the history
  • Loading branch information
joaniefromtheblock authored Jun 12, 2024
2 parents c121fd5 + fd76777 commit 68e55c9
Show file tree
Hide file tree
Showing 19 changed files with 224 additions and 145 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/private-networks/how-to/configure/consensus/clique.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ The `extraData` property consists of:

### Post-Merge configuration

After [The Merge](../../../../public-networks/concepts/the-merge.md), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.
After [The Merge](https://ethereum.org/en/upgrades/merge/), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.

| Field | Constant value | Comment |
|------------------|----------------------------------------------------------------------|----------------------------|
Expand Down
2 changes: 1 addition & 1 deletion docs/private-networks/how-to/configure/consensus/ibft.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ Optional configuration options in the genesis file are:

### Post-Merge configuration

After [The Merge](../../../../public-networks/concepts/the-merge.md), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.
After [The Merge](https://ethereum.org/en/upgrades/merge/), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.

| Field | Constant value | Comment |
|------------------|----------------------------------------------------------------------|----------------------------|
Expand Down
2 changes: 1 addition & 1 deletion docs/private-networks/how-to/configure/consensus/qbft.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ Optional configuration options in the genesis file are:

### Post-Merge configuration

After [The Merge](../../../../public-networks/concepts/the-merge.md), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.
After [The Merge](https://ethereum.org/en/upgrades/merge/), the following block fields are modified or deprecated. Their fields **must** contain only the constant values from the following chart.

| Field | Constant value | Comment |
|------------------|----------------------------------------------------------------------|----------------------------|
Expand Down
76 changes: 76 additions & 0 deletions docs/public-networks/concepts/node-clients.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Node clients
sidebar_position: 1
description: Learn about execution and consensus clients.
tags:
- public networks
---

# Node clients

Ethereum's Proof of Stake (PoS) protocol leverages two separate P2P networks supporting
separate clients. Execution clients gossip transactions over their network, enabling them to manage
their local transaction pool. Consensus clients gossip blocks over their network, enabling consensus
and chain growth. A validator node also runs the [validator client](#validator-clients).

:::info
As as result of [the 2022 Merge](https://ethereum.org/en/upgrades/merge/), Ethereum Mainnet
transitioned from Proof of Work (PoW) to [PoS](proof-of-stake/index.md) consensus.
:::

## Execution and consensus clients

Under PoS, a full Ethereum Mainnet node is a combination of an execution client (previously called
an [Eth1 client](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) client) and a
consensus client (previously called an
[Eth2 client](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/)). The consensus client
uses the [Engine API](../how-to/use-engine-api.md) to communicate with the execution client.

![Ethereum Merge node](../../assets/images/Execution-Consensus-Clients-EngineAPI.png)

### Execution clients

Execution clients, such as Besu, manage the execution layer, including executing transactions and
updating the world state. Execution clients serve [JSON-RPC API](../reference/engine-api/index.md)
requests and communicate with each other P2P.

Besu is an execution client that you can run with:

- [Any consensus client on Mainnet](../get-started/connect/mainnet.md).
- [Any consensus client on a testnet](../get-started/connect/testnet.md).
- [Teku on Mainnet](../tutorials/besu-teku-mainnet.md).
- [Teku on a testnet](../tutorials/besu-teku-testnet.md).

### Consensus clients

The consensus client (also known as the beacon node, CL client or, formerly, the Eth2 client)
implements the PoS consensus algorithm, which enables the network to achieve agreement based on
validated data from the execution client. Consensus clients serve
[REST API](https://docs.teku.consensys.net/reference/rest) requests and
communicate with each other P2P.

Consensus clients, such as [Teku](https://docs.teku.consensys.net/en/latest/) contain beacon node
implementations. The beacon node is the primary link to the [Beacon Chain] (i.e. the consensus layer).
A consensus client can run without the (bundled) validator to keep up with the head of the chain,
allowing the node to stay synced.

#### Validator clients

To operate a validator node, node operators must also run a validator client and deposit the
[required ETH](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/#validators) into the
deposit contract. The validator client handles attestations and block proposal — i.e. performs
[validator duties](proof-of-stake/index.md) on the consensus layer.
The validator client may either be run
[in the same process](https://docs.teku.consensys.net/get-started/start-teku#start-the-clients-in-a-single-process)
as the beacon node or [separately](https://docs.teku.consensys.net/get-started/start-teku#run-the-clients-separately).

Validators earn [rewards](https://www.blocknative.com/ethereum-staking-calculator) for performing
[validator duties](proof-of-stake/index.md), and
[fee recipients](https://docs.teku.consensys.net/reference/cli#validators-proposer-default-fee-recipient)
also earn rewards for the inclusion of execution layer transactions.

<!-- links -->

[Beacon Chain]: https://ethereum.org/en/upgrades/beacon-chain/
[Teku]: https://docs.teku.consensys.net/en/stable/
[Run a node]: https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/
12 changes: 6 additions & 6 deletions docs/public-networks/concepts/proof-of-stake/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ tags:

# Proof of stake consensus

[The Merge](../the-merge.md) transitioned Ethereum Mainnet to [proof of stake
[The Merge](https://ethereum.org/en/upgrades/merge/) transitioned Ethereum Mainnet to [Proof of Stake
(PoS)](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/) consensus.

In Ethereum's PoS, you must run a [full node](../the-merge.md#execution-and-consensus-clients) and
Under Ethereum's PoS, you must run a [full node](../node-clients.md#execution-and-consensus-clients) and
[stake 32 ETH](https://ethereum.org/en/staking/) to become a validator.

:::note
You must run a beacon node and an execution client to operate a full node on Mainnet.
To operate a full node on Mainnet, you must run a beacon node, i.e. a consensus client and an execution client.
To become a validator, you must also run a validator client (either [in the same process as the
beacon node](https://docs.teku.consensys.net/get-started/start-teku#start-the-clients-in-a-single-process)
or [separately](https://docs.teku.consensys.net/get-started/start-teku#run-the-clients-separately)).
:::

PoS is preferred over proof of work and proof of authority as a consensus mechanism because it is
PoS is preferred over Proof of Work and Proof of Authority as a consensus mechanism because it is
more secure, requires less energy, and lowers the barrier to entry.

The PoS mechanism randomly chooses validators to propose or validate blocks on the [Beacon
Expand All @@ -34,7 +34,7 @@ Validators also receive transaction fees for included blocks.

Each consensus block contains an execution payload, which contains a list of transactions and other data required to execute and validate the payload.

When a node validates a consensus block, its [consensus client](../the-merge.md#consensus-clients) processes the block and sends the execution payload to the [execution client](../the-merge.md#execution-clients), which:
When a node validates a consensus block, its [consensus client](../node-clients.md#consensus-clients) processes the block and sends the execution payload to the [execution client](../node-clients.md#execution-clients), which:

1. Assembles a block on the execution layer.
2. Verifies pre-conditions.
Expand All @@ -44,4 +44,4 @@ When a node validates a consensus block, its [consensus client](../the-merge.md#

If the block is valid, the execution client includes it in the execution chain and stores the new state in execution state storage.

If a consensus block receives attestations backed by enough staked ETH, the block is included in the Beacon Chain.
If a consensus block receives attestations backed by enough staked ETH, the block is included in the Beacon Chain. In the case of competing chains, the chain with the highest number of validator votes is selected.
85 changes: 0 additions & 85 deletions docs/public-networks/concepts/the-merge.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/public-networks/get-started/connect/mainnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import TabItem from '@theme/TabItem';

:::info

[The Merge](../../concepts/the-merge.md) was executed on **September 15, 2022**. Ethereum is now a [proof of stake](../../concepts/proof-of-stake/index.md) network, and a full Ethereum node requires both [an execution client and a consensus client](../../concepts/the-merge.md#execution-and-consensus-clients).
As a [Proof of Stake network](../../concepts/proof-of-stake/index.md), running a full Ethereum node requires both [an execution client and a consensus client](../../concepts/node-clients.md#execution-and-consensus-clients).

:::

Run Besu as an [execution client](../../concepts/the-merge.md#execution-clients) with any consensus client on Ethereum Mainnet.
Run Besu as an [execution client](../../concepts/node-clients.md#execution-clients) with any [consensus client](../../concepts/node-clients.md#consensus-clients) on Ethereum Mainnet.

If you're using [Teku] as a consensus client, you can follow the [Besu and Teku Mainnet tutorial](../../tutorials/besu-teku-mainnet.md).

Expand Down
Loading

0 comments on commit 68e55c9

Please sign in to comment.