> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/id/rome-zk-evm/run-a-rollup.md).

# Jalankan sebuah rollup

Daftarkan dan jalankan chain Rome ZK EVM milik Anda sendiri di Solana devnet dengan rollup runner v0.3.0.

Panduan `./rollup` runner memulai satu chain terhadap program Solana devnet bersama milik Rome. Anda menjalankan nodenya dan membayar biaya Solana-nya. Anda tidak men-deploy program settlement sendiri. Pendaftaran tidak memerlukan izin, tetapi root yang dibuktikan membutuhkan verification key khusus chain yang didaftarkan oleh Rome.

Halaman ini menggunakan **v0.3.0**. The [panduan devnet lengkap](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/RUN-ON-DEVNET.md) mencakup setiap pengaturan, kegagalan, dan langkah pemulihan.

## Sebelum Anda mulai

Gunakan mesin Linux x86-64 dengan bash 4 atau yang lebih baru, Git, Docker Engine 28 atau yang lebih baru dengan Compose, curl, jq, openssl, Solana CLI, dan Python 3.11 atau yang lebih baru. Anda memerlukan endpoint RPC Solana devnet, keypair payer Solana yang didanai, yang juga merupakan otoritas chain Anda, dan kunci penandatangan sequencer. Simpan kedua file tersebut tetap privat dan dapat dibaca oleh pengguna container 999. Panduan ini menjelaskan cara membuatnya.

Anggarkan sekitar **7 SOL di devnet** untuk payer. Pendaftaran mengunci 5 SOL; `./rollup check` mengharapkan setidaknya 1 SOL tersisa untuk posting dan sewa. Deposit menjadi dapat dikembalikan setelah root final pertama atau sepuluh root yang diposting. Jika chain direklamasi sebelum itu, deposit masuk ke treasury. Chain juga memerlukan alamat penerima biaya EVM yang Anda kendalikan.

Untuk menyelesaikan root, Anda memerlukan host prover dengan satu GPU NVIDIA dengan memori lebih dari 30 GB. Kartu 24 GB terlalu kecil untuk langkah pembuktian final. [Host prover](/id/rome-zk-evm/prover-host.md) memberikan anggaran RAM dan disk. Node dapat berjalan dan memublikasikan batch sebelum prover siap, tetapi tidak ada root-nya yang akan final.

## Mulai node

Klon rilisan dan bekerja dari direktori rollup-nya:

```sh
git clone --branch v0.3.0 https://github.com/rome-protocol/solana-zk-evm.git
cd solana-zk-evm/deploy/rollup
cp .env.example .env
cp chain.toml.example chain.toml
```

Atur RPC Solana, lokasi penandatangan, dan `ROME_ZK_TAG=v0.3.0` dari `.env`. Pertahankan `PROGRAMS_JSON=programs.devnet.json`. Atur `ROME_ZK_GUEST_TAG=v0.3.0` dan `ZISK_RELEASE=1.3.1-alpha` untuk build guest berikutnya. Biarkan RPC terikat ke loopback untuk percobaan pertama secara lokal. Biarkan `PROVER` belum disetel sampai guest dan kuncinya siap.

Setel `genesis.fee_recipient` dari `chain.toml` ke alamat EVM Anda. Jangan pilih chain ID. Settlement menurunkan satu dari payer dan jumlah pendaftarannya; `init` membacanya sebelum mengirim apa pun. Sekitar setengah dari semua ID terlalu besar untuk MetaMask. Jika milik Anda termasuk salah satunya, `init` berhenti dengan `ChainIdNotWalletSafe`; buat kunci payer baru, arahkan `PAYER_KEYPAIR_PATH` ke sana dan jalankan `init` lagi.

Chain baru dimulai dengan saldo nol. Jika Anda mendeklarasikan satu saldo yang didukung untuk mendapatkan gas sebelum deposit dibuka, kunci jumlah wrapped SOL yang sama di vault chain sebelum meminta verification key.

```sh
./rollup init
./rollup register --dry-run
./rollup register --confirm
./rollup up
./rollup check
```

`init` merender konfigurasi genesis dan layanan. `register --confirm` mengunci deposit 5 SOL dan membuat cursor batch. `up` memulai node sequencer, batcher, derive, dan verifier. `check` menyebutkan layanan apa pun yang hilang, lalu membandingkan chain ID, head, kemajuan batcher, inbox, dan root. Jalankan lagi setelah batch sempat ditutup; pemeriksaan kemajuan batch pertama hanya mencatat sampel.

Tanpa prover, sequencer melayani RPC, batcher mengirim data transaksi ke inbox, dan derive merekonstruksi chain. Satu batch inbox bukan root settlement final. Bahkan root genesis pun menunggu bukti.

## Pindah dari batch ke root final

Bangun guest untuk genesis chain Anda:

```sh
./rollup guest-build
```

Build ini menggunakan guest v0.3.0 dan ZisK 1.3.1-alpha. Ini menghasilkan program guest chain dan metadata verification-key. Menghitung `programVK` memerlukan proving key ZisK dan sekitar 36 GB RAM. Mendaftarkan chain tidak mendaftarkan verification key. Kirim [permintaan verification-key](/id/rome-zk-evm/verification-key.md) setelah build. Rome memeriksa genesis dan guest Anda, lalu mendaftarkan kunci dengan slot aktivasi.

Pada host prover, atur `PROVER=on` dan guest, metadata verifikasi, serta pengaturan ZisK yang dijelaskan dalam runbook lengkap. Setelah kunci aktif:

```sh
./rollup init
./rollup up
./rollup check
```

Periksa bahwa `service prover` dan `verification key` item lolos. Prover memproses batch inbox secara berurutan. Setiap bukti yang valid memposting root yang final segera setelah transaksi Solana-nya masuk.

## Buat blok pertama

Tanpa saldo genesis yang didukung, chain tidak memiliki gas untuk transaksi sampai deposit dibuka. Deposit memerlukan root terbukti pertama. Default `empty_block_interval_secs = 0` membiarkan chain yang idle tanpa blok, jadi atur ke `60` di bawah `[profile]` dari `chain.toml` setelah kunci aktif dan prover berjalan. Render dan mulai ulang:

```sh
./rollup init
./rollup up
./rollup check
```

Setelah root pertama final, atur interval kembali ke `0` dan jalankan ulang `init` dan `up` kecuali Anda menginginkan blok kosong secara teratur. Menyalakannya saat menunggu Rome mendaftarkan kunci akan menimbulkan antrean. Setiap batch harus dibuktikan secara berurutan.

Dengan interval blok kosong 60 detik dan penutupan batch 60 detik, chain membuat sekitar satu batch per menit, atau sekitar 1.440 per hari. Di devnet, root yang dibuktikan menghabiskan biaya payer sekitar **0.003 SOL**: sekitar 0,002 SOL untuk sewa akun pending, biaya settlement 0,001 SOL, dan biaya transaksi di atas itu. Ritme tersebut sekitar 4,4 SOL per hari sebelum biaya posting inbox. Sewa akun pending tetap terkunci dengan pengaturan default. Dengan blok kosong dimatikan, chain yang idle tidak menutup batch dan tidak membayar biaya posting.

Untuk menerima deposit, selanjutnya buat vault, aktifkan konfigurasi exit setelah penundaannya, dan buka antrean deposit. Perintah-perintah tersebut dan pemeriksaannya ada di [Deposit dan penarikan](/id/rome-zk-evm/deposits-and-withdrawals.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/id/rome-zk-evm/run-a-rollup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
