# Step 3: Installing execution client

## Pick an execution client

Your choice of either [**Geth**](https://geth.ethereum.org)**,** [**Besu**](https://besu.hyperledger.org)**,** [**Nethermind**](https://www.nethermind.io)**, or** [**Erigon**](https://github.com/ledgerwatch/erigon)**.**

{% hint style="warning" %}
Only one execution client is required per node.
{% endhint %}

**Execution Client Diversity** - To strengthen Ethereum's resilience against potential attacks or consensus bugs, it's best practice to run a minority client in order to increase client diversity. Find the latest distribution of execution clients here: [https://clientdiversity.org](https://clientdiversity.org/)

<figure><img src="/files/QcwjgCetiRfLv2CaG3xb" alt=""><figcaption><p>May 2023 Client Diversity</p></figcaption></figure>

{% hint style="info" %}
:shield: **Recommendation** :shield:: Nethermind
{% endhint %}

{% hint style="warning" %}
**Reminder**: Ensure you are logged in and execute all steps in this guide as non-root user, `ethereum ,`created during Step 2: Configuring Node.
{% endhint %}

**Nethermind** is built on .NET core. Nethermind makes integration with existing infrastructures simple, without losing sight of stability, reliability, data integrity, and security.

{% content-ref url="/pages/tNZTbnwI3ZkIiNwVpsa7" %}
[Nethermind](/spanish/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-testnet-prater-1/step-3-installing-execution-client/nethermind.md)
{% endcontent-ref %}

**Hyperledger Besu** is written in Java and is anopen-source Ethereum client designed for demanding enterprise applications requiring secure, high-performance transaction processing.

{% content-ref url="/pages/JEnddDsokvvf2e0dsDcU" %}
[Besu](/spanish/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-testnet-prater-1/step-3-installing-execution-client/besu.md)
{% endcontent-ref %}

**Geth** - Go-ethereum (aka Geth) is an Ethereum client built in Go. It is one of the original and most popular Ethereum clients.

{% content-ref url="/pages/g9raHAn5C4GkrvOc5v33" %}
[Geth](/spanish/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-testnet-prater-1/step-3-installing-execution-client/geth.md)
{% endcontent-ref %}

**Erigon** is an implementation of Ethereum innovating on the efficiency frontier, written in Go.

{% content-ref url="/pages/1VXLf1mb9TO3e4xdJgQf" %}
[Erigon](/spanish/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-testnet-prater-1/step-3-installing-execution-client/erigon.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.coincashew.com/spanish/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-testnet-prater-1/step-3-installing-execution-client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
