There are currently four consensus clients that can be run alongside Geth. These are:
There are currently five consensus clients that can be run alongside Geth. These are:
[Lighthouse](https://lighthouse-book.sigmaprime.io/): written in Rust
[Lighthouse](https://lighthouse-book.sigmaprime.io/): written in Rust
@ -55,8 +47,11 @@ There are currently four consensus clients that can be run alongside Geth. These
[Prysm](https://docs.prylabs.network/docs/install/install-with-script): written in Go
[Prysm](https://docs.prylabs.network/docs/install/install-with-script): written in Go
[Teku](https://pegasys.tech/teku): written in Java
[Teku](https://pegasys.tech/teku): written in Java
[Lodestar](https://github.com/ChainSafe/lodestar): written in Typescript
It is recommended to consider [client diversity][client-div-link] when choosing a consensus client. Instructions for installing each client are provided in the documentation linked in the list above.
It is recommended to consider [client diversity][client-div-link] when choosing a consensus client.
Instructions for installing each client are provided in the documentation linked in the list above.
The consensus client must be started with the right port configuration to establish an RPC connection
The consensus client must be started with the right port configuration to establish an RPC connection
to the local Geth instance. In the example above, `localhost:8551` was authorized
to the local Geth instance. In the example above, `localhost:8551` was authorized
@ -73,55 +68,19 @@ More information on this can be found in the documentation for each consensus cl
## Validators
## Validators
After The Merge, miners are no longer responsible for securing the Ethereum blockchain. Instead, this becomes the responsibility
of validators that have staked at least 32 ETH into a deposit contract and run validator software. Each of the consensus clients
have their own validator software that is described in detail in their respective documentation. The easiest way to handle
staking and validator key generation is to use the Ethereum Foundation [Staking Launchpad][launchpad-link]. The launchpad is also
available for [Prater][prater-launchpad-link], [Ropsten][ropsten-launchpad-link] and [Kiln][kiln-launchpad-link] testnets. It is
also highly recommended to review the [Merge readiness checklist][checklist-link].
## Using Geth
After the merge, Geth will follow the head of the chain via its connection to the consensus client. However, Geth is still
the portal for users to send transactions to Ethereum. Overall, Geth will not change very much from a user-perspective.
The Geth Javascript console is still available for this purpose, and the majority of the [JSON-RPC API](/docs/rpc/server) will
remain available via web3js or HTTP requests with commands as json payloads. These options are explained in more detail on the
[Javascript Console page](/docs/interface/javascript-console). The Javascript console can be started using the following command
in a separate terminal (assuming Geth's IPC file is saved in `datadir`):
```shell
geth attach datadir/geth.ipc
```
## Testnets
Ethereum Mainnet has not yet undergone The Merge, but some public testnets have. This means that running Geth alone is no longer
enough to interact with merged testnets. This includes two testnets that were purpose built to test The Merge (Kiln, Kintsugi) and
the long-standing public PoW chain, Ropsten, as well as the relatively new testnet Sepolia. If Geth is connected to these merged networks alone it will simply stall when it syncs as far
as the merge block, awaiting information from a consensus client. Therefore, any activity on these testnets requires Geth to be
connected to a consensus client. There are many instructional articles that explain how to connect to these testnets using Geth in
combination with various consensus clients, for example:
[Connecting to Kiln using Teku](https://github.com/chrishobcroft/TestingTheMerge/blob/main/geku.md)
[Connecting to Kiln using Lighthouse](https://github.com/remyroy/ethstaker/blob/main/merge-devnet.md)
[Connecting to Kiln using Prysm](https://hackmd.io/@prysmaticlabs/B1Q2SluWq)
[Connecting to Ropsten using Lighthouse](https://github.com/remyroy/ethstaker/blob/main/merge-ropsten.md)
The Merge testing will soon progress to merging the Goerli testnet. Once this has happened Geth will require a connection
Validators are responsible for securing the Ethereum blockchain. Validators are node oeprators that have staked at least
to a consensus client to work on those networks too.
32 ETH into a deposit contract and run validator software. Each of the consensus clients have their own validator software
that is described in detail in their respective documentation. The easiest way to handle staking and validator key generation
is to use the Ethereum Foundation [Staking Launchpad][launchpad-link].
## Summary
## Summary
As The Merge approaches it is important for Geth users to prepare by installing and running a consensus client. Otherwise, Geth will stop
Geth requires a connection to a consensus client in order to follow the Etheruem blockchain. There are five consensus clients
following the head of the chain immediately after The Merge. There are five consensus clients to choose from. This page provided an overview
to choose from. This page provided an overview of how to choose a consensus client and configure Geth to connect to it. More
of how to choose a consensus client and configure Geth to connect to it. This pre-emptive action will protect against disruption to users as a
information can be found on the clients' respective documentation sites or in numerous
@ -47,26 +43,14 @@ network, enabling consensus and chain growth.
For this two-client structure to work, consensus clients must be able to pass bundles of transactions to Geth
For this two-client structure to work, consensus clients must be able to pass bundles of transactions to Geth
to be executed. Executing the transactions locally is how the client validates that the transactions do not
to be executed. Executing the transactions locally is how the client validates that the transactions do not
violate any Ethereum rules and that the proposed update to Ethereum's state is correct. Likewise, when the node
violate any Ethereum rules and that the proposed update to Ethereum's state is correct. Likewise, when the node
is selected to be a block producer the consensus client must be able to request bundles of transactions from Geth to
is selected to be a block producer the consensus client must be able to request executable data from Geth including bundles of transactions and metadata to
include in the new block. This inter-client communication is handled by a local RPC connection using the
include in the new block and a resulting state change. This inter-client communication is handled by a local RPC
[`engine` API][engine-api-link] which is part of the JSON-RPC API exposed by Geth.
connection using the [`engine` API][engine-api-link] which is part of the JSON-RPC API exposed by Geth.
## Transition
## Using Geth since The Merge
The transition from PoW to PoS will happen when a pre-announced total difficulty is reached by the chain.
Although The Merge was a profound change to Ethereum's underlying achitecture, there were minimal changes to how Geth
This is different to other forks which usually occur at a certain scheduled block number. The total difficulty threshold
users interact with Ethereum. At The Merge responsibility for consensus logic and block propagation were handed over to
that will trigger the Merge is also known as the [*Terminal
Total Difficulty* (TTD)](https://ethereum.org/en/glossary/#terminal-total-difficulty). In
case of an emergency delay, the TTD can be overriden in Geth using the `--override.terminaltotaldifficulty` command-line
flag. Once the merge block exists, Geth will no longer be able to follow the head of the chain without a consensus
client. If Geth is not connected to a consensus client it will simply stall at the merge block.
Assuming a consensus client is connected in advance, the two clients will automatically
handle the merge together with no disruption to the user.
## Using Geth after The Merge
Although The Merge is a profound change to Ethereum's underlying achitecture, there will be minimal changes to how Geth
users interact with Ethereum. At The Merge responsibility for consensus logic and block propagation are handed over to
the consensus layer, but all of Geth’s other functionality remains intact. This means transactions, contract deployments
the consensus layer, but all of Geth’s other functionality remains intact. This means transactions, contract deployments
and data queries can still be handled by Geth using the same methods as before. This includes interacting with Geth using
and data queries can still be handled by Geth using the same methods as before. This includes interacting with Geth using
the JSON_RPC_API directly using tools such as [curl](https//curl.se), third party libraries such as
the JSON_RPC_API directly using tools such as [curl](https//curl.se), third party libraries such as
@ -76,11 +60,10 @@ Much more information about the Javascript console is available on the [Javascri
## Summary
## Summary
The Merge is an upcoming upgrade to Ethereum that swaps the existing PoW consensus mechanism for a PoS consensus
The Merge was an upgrade to Ethereum that swapped the original PoW based consensus mechanism for a PoS based consensus
mechanism. This changes the client software organization for Ethereum nodes. After The Merge, nodes are required to
mechanism. This changed the client software organization for Ethereum nodes. Since The Merge, both execution and consensus
run both execution and consensus clients that each have responsibility for specific parts of the Ethereum protocol
clients are required. Each client has responsibility for specific parts of the Ethereum protocol and communicate with each
and communicate with each other over a local RPC connection. Although there is some necessary configuration in advance
other over a local RPC connection.
of The Merge, the experience for Geth users should change minimally as a result of The Merge.