# Initialisieren Sie Ihr L2

**Hinweis: Wir verwenden die Begriffe „Proxy“ und „Light Client“ austauschbar.**

## Wechseln Sie in das Verzeichnis rome-setup/docker

```
cd rome-setup/docker
```

## Umgebungsvariablen setzen

```bash
export ROME_APPS_TAG=v1.0.1
export DEPOSIT_UI_TAG=v1.0.1
export GETH_TAG=v1.0.1

solana config set -u https://node3.devnet-us-sol-api.devnet.romeprotocol.xyz
```

## Solana-Schlüsselpaare erstellen

Erstellen Sie zwei neue Solana-Schlüsselpaare in rome-apps/docker/keys mit den Namen **Rhea-Schlüsselpaar** und **Proxy-Schlüsselpaar**. Diese Schlüsselpaare werden von den Diensten Rhea und Light Client (auf der nächsten Seite erklärt) verwendet, um Solana-Transaktionen zu signieren und zu bezahlen.

```bash
solana-keygen new -o keys/rhea-sender.json --no-bip39-passphrase --force
solana-keygen new -o keys/proxy-sender.json --no-bip39-passphrase --force
```

## SOL airdroppen

Führen Sie Airdrops von SOLs zu Ihren **Rhea** und **Proxy-Schlüsselpaaren** mit den folgenden Befehlen durch:

```bash
solana -ud airdrop 1 $(solana address -k keys/rhea-sender.json)
solana -ud airdrop 1 $(solana address -k keys/proxy-sender.json)
```

Wenn Sie Probleme mit Airdrops haben, [uns auf unserem Discord kontaktieren](https://discord.com/invite/romeprotocol).

## JWT-Geheimnis erzeugen

Erzeugen Sie ein [JWT-Geheimnis](https://jwt.io/introduction) das von Geth verwendet wird. Bewahren Sie dieses Geheimnis sicher auf.

```
openssl rand -hex 32
```

Beispielwert unten.

```
7ff586310476ffc476995fa0cd3a80be82e2aba650dddc885ac26c82af29c40d
```

## Solana-Slot prüfen

Prüfen Sie den Solana-Slot und aktualisieren Sie start\_slot in proxy-config.yml und rhea-config.yml (befinden sich in rome-setup/docker/cfg) mit dem aktuellen Slot.

```bash
solana slot
```

Dieser Slot wird von Rhea und dem Light Client (d. h. Proxy) verwendet, um den aktuellen Zustand des Rollups basierend auf der Solana-Transaktionshistorie ab dem Startslot zu bestimmen.

## Nginx-Zertifikat kopieren

Wenn Sie auf einem Remote-Server einrichten, kopieren Sie die Nginx-Zertifikate in Ihr lokales Verzeichnis. Bei lokaler Einrichtung überspringen Sie diesen Schritt.

**Hinweis: Ersetzen Sie den unten stehenden Dateipfad durch den Speicherort Ihres Zertifikats.**

<pre class="language-bash"><code class="lang-bash">mkdir -p ./nginx/ssl
<strong>sudo cp /etc/letsencrypt/live/caesar.internal.romeprotocol.xyz/fullchain.pem ./nginx/ssl/
</strong><strong>sudo cp /etc/letsencrypt/live/caesar.internal.romeprotocol.xyz/privkey.pem ./nginx/ssl/
</strong></code></pre>

## Konfigurationsdateien aktualisieren

### Docker Compose

1. Aktualisieren `docker-compose.yml` um die Werte CHAIN\_ID und JWT\_SECRET zu ersetzen.

<pre class="language-yaml"><code class="lang-yaml">geth:
  image: romelabs/rollup-op-geth:${GETH_TAG:-main}
  logging: *logging-config
  hostname: geth
  container_name: geth
  environment:
<strong>    CHAIN_ID: '98989897'
</strong><strong>    JWT_SECRET: '7ff586310476ffc476995fa0cd3a80be82e2aba650dddc885ac26c82af29c40d'
</strong>...
</code></pre>

2. Wenn Sie Ihr L2 auf einem Remote-Server einrichten, heben Sie das Auskommentieren des romenginx-Containers in `docker-compose.yml`auf. Andernfalls, wenn Sie auf Ihrem lokalen Rechner einrichten, überspringen Sie diesen Schritt.

### Rhea-Konfiguration

Aktualisieren Sie rhea-config.yml, um chain\_id, Solana rpc\_urls und Payer festzulegen.

<pre class="language-yaml"><code class="lang-yaml"><strong>chain_id: 98989897 # Ersetzen Sie dies durch Ihre registrierte Chain-ID
</strong><strong>rpc_urls: ["https://node3.devnet-us-sol-api.devnet.romeprotocol.xyz"] # Ersetzen Sie dies durch das Rome Solana RPC
</strong>program_id: "RPDwFyw4ekzzgyJfSrVmJgmfi51ovyqzLckYGchLpKX"
commitment: "confirmed"
payers:
  - payer_keypair: "/opt/keys/rhea-sender.json"
    fee_recipients:
      - 0x5f5d351dB427d1131D8Dcd4F151185E6E6111907
geth_indexer:
  geth_http_addr: "http://geth:8545"
  geth_poll_interval_ms: 100
mempool_ttl: 15 # (Sekunden) Ein vergleichsweise höherer Wert zur tatsächlichen op-geth-TTL verhindert, dass Rhea wiederholt sendet
</code></pre>

### Hercules-Konfiguration

Aktualisieren Sie hercules-config.yml, um chain\_id, start\_slot, Solana RPC, geth\_engine\_secret und Payer festzulegen.

<pre class="language-yaml"><code class="lang-yaml"><strong>start_slot: 385523275 # Ersetzen Sie dies durch Ihren neuesten Solana-Slot
</strong>admin_rpc: "0.0.0.0:8000"
mode: Indexer
block_loader:
  program_id: "RPDwFyw4ekzzgyJfSrVmJgmfi51ovyqzLckYGchLpKX"
  batch_size: 64
  block_retries: 100
  tx_retries: 100
  retry_int_sec: 1
  commitment: "confirmed"
  client:
    providers:
<strong>      - "https://node3.devnet-us-sol-api.devnet.romeprotocol.xyz" # Ersetzen Sie dies durch das Rome Solana RPC
</strong>storage:
  connection:
    database_url: "postgres://hercules:qwerty123@postgres_rome/test_rollup"
    max_connections: 16
    connection_timeout_sec: 30
rollup_indexer:
  max_slot_history: 4096
  block_parser:
    program_id: "RPDwFyw4ekzzgyJfSrVmJgmfi51ovyqzLckYGchLpKX"
<strong>    chain_id: 98989897 # Ersetzen Sie dies durch Ihre registrierte Chain-ID
</strong>    parse_mode: engine_api
  block_producer:
    type: engine_api
    geth_engine:
      geth_engine_addr: "http://geth:8551"
<strong>      geth_engine_secret: "7ff586310476ffc476995fa0cd3a80be82e2aba650dddc885ac26c82af29c40d" # Ersetzen Sie dies durch Ihr erzeugtes JWT-Geheimnis
</strong>    geth_api: "http://geth:8545"
</code></pre>

### Proxy-Konfiguration

Aktualisieren Sie proxy-config.yml, um chain\_id, start\_slot, Solana rpc\_url und Payer festzulegen.

<pre class="language-yaml"><code class="lang-yaml"><strong>chain_id: 98989897 # Ersetzen Sie dies durch Ihre registrierte Chain-ID
</strong><strong>start_slot: 385523275 # Ersetzen Sie dies durch Ihren neuesten Solana-Slot
</strong>program_id: "RPDwFyw4ekzzgyJfSrVmJgmfi51ovyqzLckYGchLpKX"
solana:
<strong>  rpc_url: "https://node3.devnet-us-sol-api.devnet.romeprotocol.xyz" # Ersetzen Sie dies durch das Rome Solana RPC
</strong>  commitment: "confirmed"
payers:
  - payer_keypair: "/opt/keys/proxy-sender.json"
    fee_recipients:
      - 0x5f5d351dB427d1131D8Dcd4F151185E6E6111907
ethereum_storage:
  type: "pg_storage"
  connection:
    database_url: "postgres://hercules:qwerty123@postgres_rome/test_rollup"
    max_connections: 16
proxy_host: "0.0.0.0:9090"
max_slot_history: 4096
gas_price: 1000000000
</code></pre>

### Deposit-UI-Konfiguration

Ändern Sie die beiden untenstehenden Dateien.

* `rome-setup/docker/depositui/chains.yml` um anzugeben `chainId` .
* `rome-setup/docker/depositui/env.depositui` um anzugeben `NEXT_PUBLIC_SOLANA_RPC_URL` .

### Payer angeben

Geben Sie mehrere Payer an, um den Durchsatz zu erhöhen, da mehr Transaktionen parallel ausgeführt werden können, wenn mehr Payer vorhanden sind.

### fee\_recipients angeben

Geben Sie fee\_recipients als Ethereum-Adressen an, die L2-native Token als Vergütung für die Ausführung von Solana-Transaktionen erhalten.

Wenn kein fee\_recipient angegeben ist, werden keine L2-nativen Token als Vergütung übertragen.

Geben Sie mehrere fee\_recipients an, um den Durchsatz zu erhöhen, da mehr Transaktionen parallel ausgeführt werden können, wenn mehr Empfänger vorhanden sind.


---

# 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/initialize-your-l2.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.
