Bagaimana cara menggunakan OPStack untuk membangun siklus jam dari game berantai penuh?

Pengarang: Gametaverse

Secara umum, game berbasis loop. Game loop adalah proses iteratif yang biasanya terdiri dari pemrosesan input pengguna, pembaruan status game, dan rendering dunia game. Putaran ini berlanjut saat game berjalan, biasanya berjalan puluhan hingga ratusan kali per detik agar dunia game terus mengalir.

Namun, arsitektur blockchain berbasis push. Blockchain adalah database terdistribusi yang membagikan dan menyimpan informasi melalui node dalam jaringan. Ketika sebuah node menghasilkan transaksi baru (seperti transfer, panggilan kontrak, dll.), Transaksi tersebut akan didorong ke jaringan, dan node lain akan memverifikasinya dan menambahkannya ke blockchain setelah menerima transaksi. Ini adalah proses pasif, node tidak akan secara aktif mencari transaksi baru, tetapi menunggu node lain dalam jaringan mengirimkan transaksi baru. Oleh karena itu, arsitektur blockchain dikatakan berbasis push.

Oleh karena itu, sangat penting untuk mengimplementasikan sistem siklus dengan siklus clock dalam game full-chain. Lagi pula, dalam apa yang disebut "dunia otonom", kita semua berharap bahwa beberapa NPC atau lingkungan virtual dapat berevolusi secara otomatis dari waktu ke waktu, alih-alih berkembang secara pasif mengikuti input transaksi yang didorong ke blockchain.

@therealbytes mengembangkan rantai centang bukti-konsep (rantai dengan siklus jam) berdasarkan OP Stack, yang menjalankan implementasi centang-tik otomatis dari Game of Life Conway, mari kita lihat bagaimana dia menerapkannya.

Agar terjemahannya tetap sederhana, kami menerjemahkan tick menjadi "tick", yang berarti "siklus siklus jam".

Ticking-Optimism adalah implementasi proof-of-concept dari "Ticking Blockchain" berdasarkan arsitektur rollup Batuan Dasar Optimisme.

Dalam rantai centang, ada kontrak pintar khusus yang disebut "kontrak centang", dan setiap blok akan dipanggil secara otomatis oleh protokol. Hal ini memungkinkan smart contract lain untuk secara otomatis terpicu pada waktu atau interval tertentu tanpa mengharuskan pengguna mengirim transaksi.

Cara mencapai

Arsitektur rollup modular baru Optimism, Optimism Bedrock, memperkenalkan jenis transaksi baru yang disebut "Transaksi Deposit". Berbeda dengan transaksi biasa, transaksi deposit:

  • Blok dari Lapisan 1.

  • Tidak diperlukan verifikasi tanda tangan.

  • Beli gas L2 di L1, jadi gas L2 tidak dapat dikembalikan.

Pada Bedrock asli, transaksi deposit digunakan untuk dua hal:

  • Jalankan transaksi yang dikirim langsung ke L1.

  • Tetapkan properti L1 (nomor, stempel waktu, hash, dll.) untuk kontrak L2 yang telah diterapkan sebelumnya di setiap blok.

Dalam kasus terakhir, transaksi dibuat oleh node rollup. Itu tidak membayar gas, dan gas yang digunakan tidak dipotong dari kolam gas.

Ticking-Optimism memodifikasi node rollup dan juga membuat "transaksi centang" yang bekerja dengan cara yang sama, tetapi alih-alih menyetel properti L1, ia memanggil fungsi tick() dalam kontrak yang telah diterapkan sebelumnya ke alamat 0x420000000000000000000000000000000000000A0. Kontrak ini dapat memanggil kontrak lain dengan menetapkan variabel targetnya.

Motivasi

Untuk mengilustrasikan kekuatan tickchains, bayangkan sebuah game di blockchain di mana banyak NPC (karakter non-pemain) bergerak di sekitar peta. Tanpa rantai centang, kami memiliki dua pendekatan desain utama:

  • Pembaruan malas. Di sisi klien, NPC tampak terus bergerak, tetapi posisinya hanya diperbarui secara on-chain saat pengguna mengirimkan transaksi untuk berinteraksi dengan mereka. Kontrak tersebut kemudian menghitung lokasi baru NPC berdasarkan pembaruan on-chain terakhirnya dan jumlah blok yang telah berlalu sejak saat itu.

  • Detak manual. Kami mendefinisikan fungsi pembaruan yang mengatur posisi setiap NPC di peta, dan meminta akun eksternal untuk memanggilnya secara berkala.

Dengan tickchain, solusinya mirip dengan tick manual, tetapi kontrak tick memanggil fungsi pembaruan secara otomatis, bukan manual.

Keuntungan menggunakan "tanda centang otomatis" dari rantai centang daripada tanda centang manual adalah:

  • Pembaruan dijamin dengan kesepakatan.

  • Pembaruan akan dilakukan sebelum semua transaksi di blok dan tidak dapat didahului karena merupakan bagian dari protokol itu sendiri.

  • Perbarui transaksi tidak berpartisipasi dalam pasar gas reguler.

Namun, kutu otomatis memerlukan blockchain khusus. Jika tingkat pembaruan sama, centang manual dan otomatis memerlukan sumber daya komputasi yang sama pada node. Pembaruan malas, di sisi lain, biasanya lebih murah karena pembaruan on-chain lebih kecil dan lebih jarang.

Selain itu, biaya komputasi transaksi tick meningkat seiring dengan pertumbuhan status yang perlu diperbarui. Ini memberi tekanan tambahan pada pengembang untuk merancang aplikasi mereka sedemikian rupa sehingga biaya tidak pernah melebihi apa yang dapat didukung oleh rantai.

Terlepas dari kelemahan besar ini, centang otomatis lebih cocok daripada pembaruan lambat untuk jenis aplikasi tertentu.

  1. Status selalu on-chain secara eksplisit dan terkini

Tick memungkinkan smart contract untuk mengakses, dengan biaya tetap, keadaan dinamis yang diperbarui menggunakan ekspresi bentuk terbuka.

Status (dalam contoh di atas, lokasi NPC) selalu dapat dibaca secara on-chain dengan biaya bahan bakar yang relatif rendah dan konstan. Tetapi biaya penghitungan kondisi saat ini akan meningkat seiring dengan jumlah blok sejak pembaruan terakhir, dan biaya gas akan semakin meningkat.

Jika kami memperbarui posisi entitas yang bergerak dengan kecepatan konstan, kami dapat menghitung di mana ia seharusnya berada di setiap bongkahan tertentu dari posisi set terakhirnya dan jumlah bongkahan sejak pembaruan. Biaya operasi ini tidak bertambah dengan jumlah blok di antara pembaruan.

Di sisi lain, jika keadaan yang kami perbarui adalah sesuatu seperti Game of Life Conway (atau simulasi tiga gravitasi), biaya pembaruan tumbuh secara linier dengan jumlah langkah sejak pembaruan terakhir. Ini adalah masalah karena dapat tumbuh melampaui apa yang bersedia dibayar pengguna atau apa yang dapat didukung oleh rantai.

  1. Fungsi klien yang berbeda

Dengan pembaruan lambat, logika pembaruan perlu diimplementasikan baik dalam kontrak pintar maupun klien. Dengan mencentang, itu hanya perlu diimplementasikan di blockchain, dan klien dapat dengan mudah bereaksi terhadap peristiwa on-chain.

  1. Kode lebih sederhana dan mudah ditinjau

Pembaruan malas memungkinkan pengembang untuk menyebarkan logika pembaruan mereka ke banyak fungsi dan kontrak pintar, dengan setiap fungsi hanya dipicu saat transaksi tertentu dijalankan. Sebaliknya, pendekatan tik-tik hanya membutuhkan fungsi pembaruan yang dijamin aktif secara berkala. Yang terakhir membuatnya lebih mudah untuk menjaga konsistensi dan integritas negara.

Selain itu, setiap kali status pembaruan lambat baru ditambahkan (misalnya, tipe NPC baru), semua fungsi pembaruan mungkin perlu dimodifikasi untuk memperhitungkannya. Ini membuat basis kode lebih kompleks dan rentan terhadap masalah.

  1. Pengguna tidak membayar biaya pembaruan

Biaya pembaruan yang lambat seringkali sangat bervariasi, dan pengguna dapat mengatur transaksi mereka sehingga sebagian besar beban pembaruan menjadi tanggungan orang lain. Dengan ticks, biaya semua operasi relatif stabil dan tidak rentan terhadap serangan MEV.

Game Demo Kehidupan Conway

Saya membuat demo tickchain yang menjalankan versi interaktif Game of Life Conway. Rantai telah dimodifikasi untuk menyertakan logika automata seluler di mesin eksekusi, membuatnya lebih efisien, memungkinkan papan permainan yang lebih besar daripada yang dapat diimplementasikan sebagai bytecode kontrak pintar.

Kode sumber demo:

Video demo:

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)