# OP-Geth-Node einrichten

Dieser OP-Geth-Node dient als nicht stimmberechtigter RPC-Node, der die Ausführung von Eth-L2-Transaktionen ermöglicht.

* Für die Einrichtung eines OP-Geth-Nodes werden OP Geth, Rhea, Hercules, Light Client (auch Proxy genannt) und Postgres benötigt.
* OP Geth wurde so modifiziert, dass es Gas auf Grundlage des erforderlichen Solana-Computes berechnet. Den erforderlichen Gaswert ruft es ab, indem es den Light Client abfragt.
* Rhea nimmt L2-Transaktionen aus dem Mempool von OP Geth auf, setzt sie zu Solana-Transaktionen zusammen und sendet sie zur Sequenzierung an Solana.
* Die Konsens-Abstimmungs-Nodes von Solana führen diese Transaktionen aus und stimmen über deren Reihenfolge ab. Hercules liest den Status von den Solana-Nodes aus und bestätigt die L2-Transaktionen sowie deren Reihenfolge auf OP Geth.

## Systemanforderungen

Wir empfehlen die Verwendung eines Ubuntu-Systems mit den unten angegebenen Spezifikationen. macOS wird jedoch ebenfalls unterstützt.

{% tabs %}
{% tab title="Mindestens" %}
4 Kerne, 8 GB RAM, 1 TB Speicher, 8 MBit/s Netzwerkbandbreite

Ubuntu, x86\_64, 1 TB SSD
{% endtab %}

{% tab title="Empfohlen" %}
8 Kerne, 16 GB RAM, 16 Kerne, 1 TB SSD, 25 MBit/s Netzwerkbandbreite

Ubuntu, x86\_64, 1 TB SSD
{% endtab %}
{% endtabs %}

## Docker-Container mit einem Befehl starten

```bash
docker compose up -d
```

## Alternativ können Sie die untenstehenden Docker-Container nacheinander starten

{% stepper %}
{% step %}

#### Postgres

```bash
docker compose up -d postgres_rome
docker logs postgres_rome -f
```

Warten Sie, bis die Logs "database system is ready to accept connections" ausgeben.
{% endstep %}

{% step %}

#### Migrationen anwenden

```bash
docker compose up apply_migrations
```

{% endstep %}

{% step %}

#### Light Client

Der Light Client stellt eine Ethereum-Schnittstelle bereit, um auf den Solana-Status zuzugreifen.

Dazu gehört auch die Bereitstellung von Gas-Schätzungen für Geth.

```bash
docker compose up -d proxy_rome
docker logs proxy_rome -f
```

Warten Sie, bis die Logs "Starting the RPC server at 0.0.0.0:9090" ausgeben.
{% endstep %}

{% step %}

#### Geth

Geth ist der Rollup-Client, der Eth-L2-Transaktionen akzeptiert und ausführt und dem Benutzer die Transaktionsergebnisse bereitstellt. Es ist ein nicht stimmberechtigter RPC-Node.

```bash
docker compose up -d geth
docker logs geth -f
```

Warten Sie, bis die Logs "HTTP server started" ausgeben.
{% endstep %}

{% step %}

#### Rhea

Rhea übernimmt Rollup-Transaktionen von Geth, verpackt sie als Rome-Solana-Transaktionen und sendet sie zur Sequenzierung an Solana.

```bash
docker compose up -d rhea
docker logs rhea -f
```

Warten Sie, bis die Logs "Polling: <http://geth:8545>" ausgeben.
{% endstep %}

{% step %}

#### Hercules

Hercules liest den Status von den Solana-Nodes aus und bestätigt die L2-Transaktionen sowie deren Reihenfolge auf OP Geth.

```bash
docker compose up -d hercules
docker logs hercules -f
```

Warten Sie, bis die Logs "SolanaBlockLoader is in sync with Solana validator" ausgeben.
{% endstep %}

{% step %}

#### Deposit-UI

Die Deposit-UI ermöglicht es Benutzern, SOL gegen rSOL einzuzahlen und abzuheben, das für die Gaszahlung auf Rome verwendet wird.

```bash
docker compose up -d depositui
docker logs depositui -f
```

{% endstep %}

{% step %}

#### Nginx

```bash
docker compose up -d romenginx
docker logs romenginx -f
```

Warten Sie, bis die Logs "Configuration complete; ready for start up" ausgeben.
{% endstep %}
{% endstepper %}

## Dienste bei Bedarf neu starten

```bash
docker compose down -d
```

```bash
docker compose up -d
```

## Übersicht der Docker-Container

Die von Ihnen ausgeführten Docker-Container sind unten aufgeführt.

| Docker-Container  | Zweck                |
| ----------------- | -------------------- |
| proxy\_rome       | Light Client         |
| geth              | OP Geth              |
| rhea              | Rhea                 |
| hercules          | Hercules             |
| postgres\_rome    | Postgres-Datenbank   |
| apply\_migrations | Postgres-Migrationen |
| deposuitui        | Deposit-UI           |
| romenginx         | Nginx-Proxy          |


---

# 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.rome.builders/de/legacy/rome-l2-setup/setup-your-l2/setup-op-geth-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.
