# Beacon Clients

{% content-ref url="/pages/wcntNMFmNZRRKeaqDPUE" %}
[Lighthouse](/ethereum-dev/infrastructure/client-software/beacon-clients/lighthouse.md)
{% endcontent-ref %}

{% content-ref url="/pages/8lTZw6Qj6i4s1xPNWekX" %}
[Teku](/ethereum-dev/infrastructure/client-software/beacon-clients/teku.md)
{% endcontent-ref %}

## Process - Changing Clients

1. Stop old client.
2. Disable old client.
3. Delete old client data.
4. Enable new client.
5. Start new client.

## UFW Config

Configure the firewall.

{% code title="Beacon Clients" %}

```bash
BEACON_P2P_PORT=              # Default: 9000
BEACON_HTTP_PORT=             # Default: 5052
BEACON_METRICS_PORT=          # Default: 5054

sudo ufw allow ${BEACON_P2P_PORT} comment 'Allow Beacon P2P in'
sudo ufw allow ${BEACON_HTTP_PORT} comment 'Allow Beacon http in'
sudo ufw allow ${BEACON_METRICS_PORT} comment 'Allow Beacon Metrics in'
```

{% endcode %}

## Beacon Service Environment Variables

```bash
sudo vim /etc/default/beacon-variables.env
```

```ini
NETWORK=                            # E.g. mainnet or holesky
BEACON_EXECUTION_ENDPOINTS=         # E.g. http://127.0.0.1:8551
BEACON_P2P_PORT=                    # Default: 9000
BEACON_HTTP_ADDRESS=                # E.g. 0.0.0.0
BEACON_HTTP_PORT=                   # Default: 5052
BEACON_METRICS_ADDR=                # E.g. 0.0.0.0
BEACON_METRICS_PORT=                # E.g. 5054
BEACON_SUGGESTED_FEE_RECIPIENT=     # E.g. 0x0000...
BEACON_CHECKPOINT_SYNC_URL=         # E.g. https://beaconstate.ethstaker.cc
BEACON_BUILDER=                     # E.g. http://127.0.0.1:18550
NGINX_PROXY_BEACON_METRICS_PORT=    # Unified metrics port e.g. 5055
```


---

# 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://docs.eridian.xyz/ethereum-dev/infrastructure/client-software/beacon-clients.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.
