# Siapkan Node OP Geth

Node OP Geth ini berfungsi sebagai node RPC non-voting yang memungkinkan eksekusi transaksi Eth L2.

* Menyiapkan Node OP Geth memerlukan OP Geth, Rhea, Hercules, Light Client (alias Proxy), dan Postgres.
* OP Geth telah dimodifikasi untuk menghitung gas berdasarkan komputasi Solana yang diperlukan. OP Geth mengambil nilai gas yang diperlukan dengan menanyakan Light Client.
* Rhea mengambil transaksi L2 dari mempool OP Geth, menyusunnya menjadi transaksi Solana, dan mengirimkannya ke Solana untuk sequencing.
* Node voting konsensus Solana mengeksekusi dan memberikan suara atas urutan transaksi ini. Hercules membaca state dari node Solana dan mengonfirmasi transaksi L2 serta urutannya di OP Geth.

## Spesifikasi mesin

Kami merekomendasikan menggunakan mesin Ubuntu dengan spesifikasi di bawah ini. Namun, macOS juga didukung.

{% tabs %}
{% tab title="Minimum" %}
4 inti, RAM 8GB, penyimpanan 1TB, bandwidth jaringan 8 MBit/detik

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

{% tab title="Disarankan" %}
8 core, RAM 16 GB, 16 core, SSD 1 TB, bandwidth jaringan 25 MBit/dtk

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

## Jalankan container Docker dengan satu perintah

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

## Atau, jalankan container Docker di bawah ini secara berurutan

{% stepper %}
{% step %}

#### Postgres

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

Tunggu hingga log menampilkan "database system is ready to accept connections".
{% endstep %}

{% step %}

#### Terapkan Migrasi

```bash
docker compose up apply_migrations
```

{% endstep %}

{% step %}

#### Light Client

Light Client menyediakan antarmuka Ethereum untuk mengakses state Solana.

Ini termasuk menyediakan estimasi gas untuk Geth.

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

Tunggu hingga log menampilkan "Starting the RPC server at 0.0.0.0:9090".
{% endstep %}

{% step %}

#### Geth

Geth adalah klien rollup yang menerima dan mengeksekusi transaksi Eth L2, serta menyediakan hasil transaksi kepada pengguna. Ini adalah node RPC non-voting.

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

Tunggu hingga log menampilkan "HTTP server started".
{% endstep %}

{% step %}

#### Rhea

Rhea mengambil transaksi rollup dari Geth, mengemasnya sebagai transaksi Rome Solana, dan mengirimkannya ke Solana untuk sequencing.

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

Tunggu hingga log menampilkan "Polling: <http://geth:8545>".
{% endstep %}

{% step %}

#### Hercules

Hercules membaca state dari node Solana dan mengonfirmasi transaksi L2 serta urutannya di OP Geth.

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

Tunggu hingga log menampilkan "SolanaBlockLoader is in sync with Solana validator".
{% endstep %}

{% step %}

#### UI Deposit

UI Deposit memungkinkan pengguna untuk deposit dan menarik SOL dengan imbalan rSOL yang digunakan untuk pembayaran gas di Rome.

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

{% endstep %}

{% step %}

#### Nginx

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

Tunggu hingga log menampilkan "Configuration complete; ready for start up".
{% endstep %}
{% endstepper %}

## Mulai ulang layanan jika diperlukan

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

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

## Ikhtisar container Docker

Container Docker yang Anda jalankan tercantum di bawah ini.

| Container Docker  | Tujuan              |
| ----------------- | ------------------- |
| proxy\_rome       | Light Client        |
| geth              | OP Geth             |
| rhea              | Rhea                |
| hercules          | Hercules            |
| postgres\_rome    | basis data Postgres |
| apply\_migrations | migrasi Postgres    |
| deposuitui        | UI Deposit          |
| romenginx         | Proxy 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/id/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.
