Repositori ini berisi contoh rollup yang terintegrasi dengan Espresso Sequencer. Contoh rollup mewakili penyimpanan akun kunci/nilai sederhana yang menerima transaksi yang dipesan dari Espresso, mengeksekusinya di VM rollup, dan menerbitkan bukti status tiruan ke kontrak pintar L1 (Ethereum). Rollup berisi API sederhana untuk mengirimkan transaksi dan menanyakan saldo akun.
Espresso dibangun di atas HotShot, sebuah jaringan yang mencapai konsensus pada kumpulan transaksi rollup. Pada tingkat tinggi, rollup adalah solusi penskalaan L1 yang melakukan komputasi off-chain yang mahal. Dalam kasus zkRollups, pembukti secara berkala mengirimkan pos pemeriksaan status rollup bersama dengan bukti validitas transaksi batch ke L1. Contoh yang diilustrasikan di sini adalah tiruan zkRollup. Untuk mempelajari lebih lanjut tentang rollup Espresso, baca dokumen kami
Pastikan docker
diinstal pada sistem Anda.
Untuk distribusi linux ikuti instruksi resmi distribusi linux Anda atau lihat instruksi resmi buruh pelabuhan.
Pertama-tama kita perlu memulai jaringan Espresso Sequencer lokal.
git clone https://github.com/EspressoSystems/espresso-sequencer
cd espresso-sequencer
docker compose pull
docker compose up -d --wait
Setelah selesai menerapkan contoh rollup, rollup tersebut dapat dijalankan secara asli.
Untuk menjalankannya secara asli, diperlukan rantai alat karat. Kami menyediakan nix shell untuk menginstal semua dependensi. Nix dapat diinstal melalui nix-installer. Setelah terinstal, jalankan perintah berikut dari root proyek:
nix develop
just dev-demo
Setelah menjalankan just dev-demo
, Anda akan dapat melihat log new state event
setelah beberapa menit.
submit
API rollup. Jika Alice mengkhawatirkan sensor, dia dapat mengirimkan transaksinya langsung ke sequencer.Light Client
di L1, yang memverifikasi bahwa konsensus telah tercapai pada status baru.Status Batal
Status contoh rollup terdiri dari:
Pelaksana
Pelaksana adalah layanan yang bertanggung jawab untuk berlangganan negara baru yang diposting ke kontrak klien ringan L1, menerapkan transaksi ke negara rollup, dan mengirimkan bukti tiruan ke kontrak rollup. Rollup sering kali memisahkan peran eksekutor dan pembuktian menjadi dua layanan berbeda, namun contoh ini menggabungkan keduanya demi kesederhanaan.
API Batal
Rollup API adalah REST API yang mencakup titik akhir submit
dan query
.
Kontrak Rollup
Kontrak rollup menyimpan komitmen status rollup terbaru. Kontrak memperbarui komitmen negara ketika menerima bukti transisi negara yang sah dari pelaksana.
Dalam contoh ini, kami menggunakan beberapa komponen Espresso seperti dijelaskan di bawah. Informasi lebih lanjut dapat ditemukan di dokumen
Klien ringan adalah kontrak cerdas yang memverifikasi integritas status rollup. Kode kontrak dapat ditemukan di sini
Kami menjalankan jaringan espresso menggunakan image docker espresso-sequencer. Jaringan menggunakan jagoan untuk mencapai konsensus mengenai status rollup. Arsitektur dapat ditemukan di sini
Espresso Network menggunakan HotShot untuk mencapai konsensus mengenai status rollup.