Mekanisme GAS yang diperkenalkan oleh bahasa MOVE: Analisis lengkap tentang skema penagihan sumber daya on-chain

robot
Pembuatan abstrak sedang berlangsung

Desain GAS pertama MOVE: Analisis metode perhitungan biaya GAS on-chain

Versi awal bahasa MOVE awalnya direncanakan untuk berjalan di lingkungan tanpa GAS, sehingga tidak dipersiapkan untuk mekanisme GAS. Baru-baru ini, sebuah tim dari publik blockchain merancang solusi GAS pertama untuk bahasa MOVE, yang disebut sebagai percobaan "petualangan".

Dalam skema GAS ini, tim yang ditetapkan menjelaskan prinsip desain, proses implementasi, metode perhitungan GAS, mekanisme penyesuaian selanjutnya, dan menyatakan bahwa mereka menyambut saran dari komunitas.

Pengukuran GAS adalah konsep dasar dari banyak blockchain, yang secara abstrak mendefinisikan jumlah sumber daya komputasi dan penyimpanan yang diperlukan untuk menjalankan dan menyimpan transaksi on-chain. Skema GAS menentukan biaya dari semua operasi eksekusi on-chain, yang digunakan untuk menghitung pengeluaran GAS selama eksekusi transaksi.

Proses Implementasi

Untuk melaksanakan dengan efektif, proses di on-chain ini mencakup:

  1. Menentukan Prinsip Desain
  2. Siapkan kerangka evaluasi, tentukan harga untuk setiap operasi yang dilakukan
  3. Membangun sistem pengukuran GAS dan algebra GAS yang aman untuk MOVE
  4. Mengimpor kerangka GAS hulu ke on-chain
  5. Membuat kerangka GAS memiliki kemampuan untuk menyimpan kesadaran
  6. Mengoptimalkan skema GAS lebih lanjut

Prinsip Desain

  1. Biaya operasional harus terkait langsung dengan sumber daya yang tersedia di jaringan (seperti CPU, memori, jaringan, penyimpanan I/O, dan penggunaan ruang, dll). Seiring dengan perbaikan teknologi dan proses, biaya GAS harus menurun sesuai.

  2. GAS harus diatur oleh on-chain governance dan dapat dikonfigurasi tanpa gangguan.

  3. GAS dapat mencegah serangan DoS terhadap sumber daya tetap jaringan, dan dapat disesuaikan dengan cepat melalui tata kelola berdasarkan kondisi jaringan.

  4. Harga GAS harus mencerminkan visi untuk pertumbuhan yang dipercepat dan menjaga popularitas blockchain.

  5. Mendorong untuk membuat pilihan yang baik dalam desain, seperti memprioritaskan keamanan, modularitas, dan pernyataan.

metode perhitungan GAS

Pengguna harus menentukan dua nilai saat mengajukan transaksi:

  • Jumlah GAS maksimum: Jumlah unit GAS maksimum yang bersedia dibayar pengguna untuk mengeksekusi transaksi.
  • Harga unit GAS: dihitung dalam oktal per unit GAS, 1 oktal = 0,00000001 token asli.

Biaya akan dikenakan selama proses eksekusi transaksi:

  1. Biaya tetap: Biaya dasar ditambah biaya tambahan untuk transaksi besar
  2. Biaya eksekusi: digunakan untuk mengeksekusi instruksi MOVE
  3. Biaya pembacaan: biaya untuk membaca data dari penyimpanan permanen
  4. Biaya penulisan: Biaya untuk menulis data ke penyimpanan permanen

Biaya transaksi akhir = Total GAS yang digunakan × Harga per GAS

Misalnya, sebuah transaksi menghabiskan 670 unit GAS, harga GAS yang ditentukan pengguna adalah 100 Octa/unit, maka biaya akhirnya adalah 670 × 100 = 67000 Octa = 0.00067 token asli.

Jika GAS habis selama eksekusi transaksi, pengirim akan dikenakan biaya sesuai dengan jumlah GAS maksimum, dan semua perubahan akan dibatalkan.

Penjelasan Rencana GAS

  1. Konfigurasi Dasar

Rencana GAS mencakup beberapa komponen yang tidak terkait dengan operasi tunggal, seperti ukuran transaksi dan unit GAS maksimum.

  1. Skala transaksi

Sebagian besar ukuran transaksi berada pada tingkat kilobyte. Publikasi modul MOVE dapat mencapai beberapa ribu byte, sedangkan kerangka tertentu sekitar 100KB. Modul pengguna biasanya berada di antara 4KB hingga 40KB. Ukuran transaksi awal ditetapkan pada 32KB, kemudian disesuaikan menjadi 64KB berdasarkan umpan balik komunitas untuk menyederhanakan pengembangan aplikasi.

Transaksi yang terlalu besar akan meningkatkan biaya bandwidth jaringan dan mungkin mempengaruhi kinerja. Untuk menyeimbangkan skala dan aksesibilitas, mempool mungkin akan mengabaikan transaksi yang terlalu besar.

  1. Unit GAS maksimum

Definisi unit GAS maksimum dalam skema GAS menentukan jumlah maksimum operasi yang dapat dieksekusi dalam satu transaksi. Ini berbeda dengan jumlah GAS maksimum yang ditentukan oleh pengguna. Mengatur terlalu tinggi dapat menyebabkan masalah kinerja, seperti loop tak terbatas. Saat ini, bahkan dengan peningkatan kerangka kerja dalam skala maksimum, hanya kurang dari 90% dari unit GAS maksimum (ditetapkan pada 1.000.000) yang digunakan.

  1. Evaluasi Biaya Eksekusi

Tim menggunakan kerangka acuan dan alat analisis Valgrind untuk mengevaluasi biaya eksekusi, dan menghasilkan biaya relatif dari instruksi MOVE dan fungsi asli. Dengan mempertimbangkan contoh pengkodean yang meningkatkan ketahanan dan keamanan sistem, jumlah instruksi mesin yang dieksekusi akhirnya ditentukan.

  1. Biaya penyimpanan

Rencana penyimpanan GAS mempertimbangkan bandwidth akses data, kapasitas IOPS, dan biaya penyimpanan permanen. Mengakses item status mana pun melibatkan biaya yang terkait dengan verifikasi status blockchain. Rumus perhitungan biaya penyimpanan GAS adalah:

Biaya penyimpanan GAS = Biaya proyek + ( biaya byte × Jumlah byte )

  1. Operasi membaca, membuat, dan menulis
  • Membaca: Operasi yang paling umum, menyesuaikan biaya berdasarkan IOPS dan kapasitas bandwidth disk.
  • Membuat: Menambahkan item baru ke dalam penyimpanan status, biaya tertinggi, disesuaikan dengan ruang disk jaringan.
  • Tulis: Memperbarui item yang ada, biaya byte sama dengan pembuatan.

Biaya terkait penyimpanan dievaluasi berdasarkan setiap transaksi, bahkan jika membaca/menulis sumber yang sama beberapa kali, hanya dikenakan biaya sekali.

partisipasi komunitas

Sebagai proyek komunitas, anggota dapat:

  1. Menunjukkan ketidakrasionalan dalam rencana GAS
  2. Mengajukan kekhawatiran dan berpartisipasi dalam diskusi
  3. Melakukan voting terhadap proposal tata kelola yang relevan

penyesuaian biaya GAS

GAS plan sebagai penyimpanan konfigurasi on-chain, dapat diubah melalui proposal tata kelola. Ini dirancang untuk dapat diskalakan, memungkinkan peningkatan melalui tata kelola. Seiring dengan kemajuan teknologi dan umpan balik pengguna, parameter GAS dapat disesuaikan seiring berjalannya waktu.

Perubahan rumus GAS yang kompleks mungkin memerlukan pembaruan perangkat lunak node, dan membedakan melalui fitur tanda GAS baru. Ini memerlukan operator node untuk mengadopsi versi baru secara luas dan menyetujui penggunaan melalui proposal tata kelola.

Pekerjaan Masa Depan

Sebagai kerangka GAS pertama untuk bahasa MOVE, desain ini meletakkan dasar untuk pekerjaan di masa depan:

  1. Mengurangi biaya eksekusi: dengan meningkatkan efisiensi compiler dan mesin virtual.

  2. Perhitungan GAS Multi-Dimensi: Memungkinkan pengguna untuk menetapkan anggaran terpisah untuk eksekusi dan penyimpanan, sehingga mencapai definisi harga GAS maksimum yang lebih rinci.

  3. Mengurangi pembengkakan status: Menjelajahi konsep TTL setiap proyek, secara otomatis menghapus item status yang tidak terakses saat TTL kedaluwarsa, untuk mendorong pengembang membersihkan data on-chain.

Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Hadiah
  • 5
  • Bagikan
Komentar
0/400
GateUser-3824aa38vip
· 07-06 09:00
Hemat gas sudah cukup.
Lihat AsliBalas0
CascadingDipBuyervip
· 07-06 08:56
Bull, akhirnya ada yang mengurus gas.
Lihat AsliBalas0
GigaBrainAnonvip
· 07-06 08:54
Gas ini terlalu berat, harganya membuatku lemas.
Lihat AsliBalas0
ZkSnarkervip
· 07-06 08:53
secara teknis model gas ini hanyalah zkvm dengan langkah tambahan
Lihat AsliBalas0
RugpullAlertOfficervip
· 07-06 08:38
Apa lagi yang ada cara baru yang bisa Rug Pull?
Lihat AsliBalas0
  • Sematkan
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)