# Настройка узла OP Geth

Этот узел OP Geth служит невизирующим RPC-узлом, который обеспечивает выполнение транзакций Eth L2.

* Для настройки узла OP Geth необходимы OP Geth, Rhea, Hercules, Light Client (также известный как Proxy) и Postgres.
* OP Geth был модифицирован для расчёта газа на основе требуемых вычислительных ресурсов Solana. Он получает необходимое значение газа, выполняя запрос к Light Client.
* Rhea забирает транзакции L2 из mempool OP Geth, преобразует их в транзакции Solana и отправляет их в Solana для упорядочивания.
* Консенсусные голосующие узлы Solana выполняют эти транзакции и голосуют за их порядок. Hercules считывает состояние из узлов Solana и подтверждает транзакции L2 и их порядок в OP Geth.

## Технические характеристики машины

Рекомендуем использовать машину с Ubuntu и характеристиками ниже. Однако macOS также поддерживается.

{% tabs %}
{% tab title="Минимальные" %}
4 ядра, 8 ГБ ОЗУ, 1 ТБ хранилища, сетевой канал 8 Мбит/с

Ubuntu, x86\_64, SSD 1 ТБ
{% endtab %}

{% tab title="Рекомендуемые" %}
8 ядер, 16 ГБ ОЗУ, 16 ядер, SSD 1 ТБ, пропускная способность сети 25 Мбит/с

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

## Запустите Docker-контейнеры одной командой

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

## В качестве альтернативы запустите Docker-контейнеры ниже последовательно

{% stepper %}
{% step %}

#### Postgres

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

Дождитесь, пока в логах появится сообщение "database system is ready to accept connections".
{% endstep %}

{% step %}

#### Применить миграции

```bash
docker compose up apply_migrations
```

{% endstep %}

{% step %}

#### Light Client

Light Client предоставляет интерфейс Ethereum для доступа к состоянию Solana.

Это включает предоставление оценок газа для Geth.

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

Дождитесь, пока в логах появится сообщение "Starting the RPC server at 0.0.0.0:9090".
{% endstep %}

{% step %}

#### Geth

Geth — это клиент rollup, который принимает и выполняет транзакции Eth L2 и предоставляет пользователю результаты транзакций. Это невизирующий RPC-узел.

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

Дождитесь, пока в логах появится сообщение "HTTP server started".
{% endstep %}

{% step %}

#### Rhea

Rhea получает rollup-транзакции от Geth, упаковывает их в транзакции Rome Solana и отправляет их в Solana для упорядочивания.

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

Дождитесь, пока в логах появится сообщение "Polling: <http://geth:8545>".
{% endstep %}

{% step %}

#### Hercules

Hercules считывает состояние из узлов Solana и подтверждает транзакции L2 и их порядок в OP Geth.

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

Дождитесь, пока в логах появится сообщение "SolanaBlockLoader is in sync with Solana validator".
{% endstep %}

{% step %}

#### Интерфейс депозита

Интерфейс депозита позволяет пользователям вносить и выводить SOL в обмен на rSOL, который используется для оплаты газа в Rome.

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

{% endstep %}

{% step %}

#### Nginx

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

Дождитесь, пока в логах появится сообщение "Configuration complete; ready for start up".
{% endstep %}
{% endstepper %}

## Перезапустите службы при необходимости

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

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

## Обзор Docker-контейнеров

Ниже перечислены запущенные вами Docker-контейнеры.

| Docker-контейнер  | Назначение           |
| ----------------- | -------------------- |
| proxy\_rome       | Light Client         |
| geth              | OP Geth              |
| rhea              | Rhea                 |
| hercules          | Hercules             |
| postgres\_rome    | База данных Postgres |
| apply\_migrations | Миграции Postgres    |
| deposuitui        | Интерфейс депозита   |
| romenginx         | Прокси Nginx         |


---

# 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/ru/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.
