# Ethereum Mainnet Full Node

## Client Resource Usage

#### Consensus Clients (Lighthouse)

<table><thead><tr><th width="178">Client</th><th width="135">Version</th><th>Date</th><th>DB Size</th><th></th></tr></thead><tbody><tr><td>Lighthouse</td><td>4.5.0</td><td>Jan 2024</td><td>~130 GiB</td><td>~5 GiB</td></tr></tbody></table>

Comment:

* Lighthouse, Lodestar and Prysm can be resynced in minutes to bring space usage back down, with `./ethd resync-consensus`
* Lighthouse is working on tree states to continuously prune

#### Execution clients

For reference, here are disk, RAM and CPU requirements, as well as mainnet initial synchronization times, for different Ethereum execution clients.

| Client | Version | Date     | DB Size   | DB Growth        | RAM         |
| ------ | ------- | -------- | --------- | ---------------- | ----------- |
| Erigon | 2.56.1  | Jan 2024 | \~1.7 TiB | \~7-8 GiB / week | See comment |

Comment:

* Erigon will have the OS use all available RAM as a DB cache during post-sync operation, but this RAM is free to be used by other programs as needed. During sync, it may run out of memory on machines with less than 32 GiB.&#x20;
* Erigon does not compress its DB, leaving that to the filesystem

## Eth Docker QuickStart

1️⃣ **Create a New User (if needed)**

```
adduser ethuser
usermod -aG sudo ethuser
usermod -aG docker ethuser
```

Then, switch to the new user:

```
su - ethuser
```

1. **Install Required Dependencies**

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl wget
```

2. **Install Docker and Docker Compose**

```bash
curl -fsSL https://get.docker.com | sudo bash
sudo usermod -aG docker $USER
newgrp docker
```

Verify the installation:

```bash
docker --version
docker compose version
```

```bash
docker ps
./ethd status
```

3. **Download and Configure Eth Docker**

```bash
cd ~
git clone https://github.com/eth-educators/eth-docker.git
cd eth-docker
```

4. **Install Eth Docker**

```bash
./ethd install
```

5. **Configure Eth Docker**

```bash
./ethd config
```

If you **do not** plan to be an Ethereum validator, you can skip entering an address.

Select clients:

* **Execution Layer**: Erigon
* **Consensus Layer**: Lighthouse

Enable monitoring with Grafana.

If you want to use the recommended setup, add the following line to `.env`:

```bash
COMPOSE_FILE=lighthouse-cl-only.yml:erigon.yml:grafana.yml:grafana-shared.yml:el-shared.yml:cl-shared.yml
```

6. Start the Ethereum Node

```bash
./ethd up
```

This will start all containers in Docker.

7. **Check Node Status**

```bash
docker ps
./ethd status
./ethd logs execution
```

8. **Stop and Restart the Node**

To stop:

```bash
./ethd stop
```

To restart after changing settings:

```bash
./ethd up
```


---

# 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://service.block-pro.net/mainnet/fuel/ethereum-mainnet-full-node.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.
