Desain biaya bahan bakar pertama untuk bahasa MOVE: Bagaimana cara menghitung konsumsi on-chain
Pengukuran biaya bahan bakar adalah konsep dasar dari banyak blockchain, yang mendefinisikan jumlah sumber daya komputasi dan penyimpanan yang diperlukan untuk menjalankan dan menyimpan transaksi on-chain. Rencana biaya bahan bakar menentukan semua biaya yang dikeluarkan untuk eksekusi on-chain, yang digunakan untuk menghitung pengeluaran biaya bahan bakar selama eksekusi transaksi.
proses
Untuk mengeksekusi dengan efektif, proses on-chain adalah:
Prinsip Definisi
Siapkan kerangka evaluasi, tentukan harga untuk setiap pelaksanaan
Membangun sistem pengukuran biaya bahan bakar dan aljabar biaya bahan bakar yang aman untuk MOVE
Mengimpor kerangka biaya bahan bakar hulu
Membuat kerangka biaya bahan bakar memiliki kesadaran penyimpanan
Memperinci lebih lanjut rencana biaya bahan bakar
Prinsip
Prinsip yang didefinisikan adalah:
Biaya operasi harus terkait langsung dengan sumber daya yang tersedia di jaringan ( seperti CPU, memori, jaringan, penyimpanan I/O, dan penggunaan ruang, dll ). Setelah perbaikan teknologi dan proses, biaya bahan bakar seharusnya menurun.
Biaya bahan bakar harus diatur oleh on-chain governance dan dapat dikonfigurasi tanpa batas.
Biaya bahan bakar dapat mencegah serangan DoS terhadap sumber daya tetap jaringan, mungkin perlu disesuaikan dengan cepat melalui saran pemerintahan berdasarkan kondisi jaringan.
Harga biaya bahan bakar mencerminkan visi untuk pertumbuhan yang cepat dan mempertahankan popularitas blockchain.
Mendorong untuk membuat pilihan yang baik dalam desain, seperti memprioritaskan keamanan, modularitas, pernyataan, dan acara lainnya.
menghitung biaya bahan bakar
Pengguna harus menentukan dua jumlah dalam transaksi saat mengajukan transaksi:
Jumlah Biaya Bahan Bakar Maksimum: Diukur dalam unit biaya bahan bakar. Ini adalah jumlah maksimum unit biaya bahan bakar yang bersedia dibayar pengguna untuk mengeksekusi transaksi.
Biaya bahan bakar per unit: dihitung dalam oktal per unit biaya bahan bakar, 1 oktal=0.00000001 APT(=$10^{-8}$). Ini adalah harga biaya bahan bakar yang bersedia dibayar pengguna.
Selama proses eksekusi, transaksi akan dikenakan biaya:
Biaya tetap, biaya dasar tetap ditambah dengan biaya tambahan untuk transaksi besar.
Biaya eksekusi, digunakan untuk mengeksekusi instruksi MOVE.
Biaya pembacaan, digunakan untuk membaca data dari penyimpanan permanen.
Biaya penulisan, digunakan untuk menulis data ke penyimpanan permanen.
Biaya transaksi akhir dapat dihitung dengan mengalikan total jumlah biaya bahan bakar yang digunakan dengan harga per unit biaya bahan bakar. Misalnya, jika sebuah transaksi menghabiskan 670 unit biaya bahan bakar, dan harga per unit biaya bahan bakar yang ditentukan pengguna adalah 100 Octa, maka biaya transaksi akhir adalah 670 * 100 = 67000 Octa = 0.00067 APT.
Jika biaya bahan bakar habis selama proses eksekusi transaksi, pengirim akan dikenakan biaya berdasarkan jumlah maksimum biaya bahan bakar, dan semua perubahan yang dilakukan oleh transaksi tersebut akan dibatalkan.
Membuat rencana biaya bahan bakar
1. Konfigurasi Dasar
Ada beberapa komponen dalam rencana biaya bahan bakar yang tidak terkait dengan rincian operasi tunggal, termasuk ukuran transaksi dan unit biaya bahan bakar maksimum ( yang berbeda dari jumlah biaya bahan bakar maksimum yang ditentukan pengguna dalam transaksi ).
2. Skala Transaksi
Sebagian besar ukuran transaksi mungkin berada dalam kisaran kilobyte. Namun, peluncuran modul MOVE dengan mudah dapat mencapai beberapa ribu byte, sementara kerangka kerja sekitar 100 KB. Ukuran modul pengguna sebagian besar biasanya berada di antara 4KB hingga 40KB. Awalnya, nilai ukuran transaksi diatur menjadi 32KB, tetapi berdasarkan reaksi komunitas yang meminta lebih banyak ruang untuk menyederhanakan pengembangan aplikasi, ukuran transaksi disesuaikan menjadi 64KB.
Transaksi berskala sangat besar dapat menyebabkan peningkatan biaya bandwidth jaringan secara keseluruhan, yang dapat berdampak negatif pada kinerja. Jika disalahgunakan, memori pool akan didorong untuk mengabaikan transaksi yang lebih besar, sehingga pendekatan kami adalah mencapai keseimbangan antara ukuran transaksi berskala maksimum dan keterjangkauan.
3. Unit Biaya Bahan Bakar Maksimal
Unit biaya bahan bakar maksimum dalam rencana biaya bahan bakar mendefinisikan berapa banyak operasi yang dapat dilakukan dalam sebuah transaksi. Perhatikan! Ini berbeda dari jumlah biaya bahan bakar maksimum yang ditentukan pengguna dalam transaksi.
Unit biaya bahan bakar maksimum dari rencana biaya bahan bakar secara langsung mempengaruhi berapa lama sebuah transaksi dapat dieksekusi. Penetapan yang terlalu tinggi dapat menyebabkan dampak kinerja negatif pada blockchain. Misalnya, pengguna mungkin lupa untuk memiliki inkremen dalam loop while, yang dapat menyebabkan loop tak terbatas, ini adalah kesalahan umum. Bahkan setelah melakukan peningkatan kerangka maksimum, tetap saja kurang dari unit biaya bahan bakar maksimum dari rencana biaya bahan bakar ( yang ditetapkan sebesar 1.000.000) sebanyak 90%.
4. Eksekusi
Untuk mengevaluasi biaya eksekusi, dibangun kerangka acuan dan digunakan Valgrind untuk menganalisis MOVE VM saat menjalankan kerangka tersebut. Outputnya adalah sekumpulan kode sumber yang diberi komentar, yang memberi tahu berapa banyak instruksi mesin yang dihasilkan oleh setiap baris kode.
Dengan bantuan analisis di atas, kami memperkirakan secara kasar biaya relatif dari semua instruksi MOVE dan fungsi bawaan. Namun, metode ini memiliki beberapa masalah dengan fungsi inline: mereka tidak secara otomatis termasuk dalam hitungan pemanggil. Kami juga melihat bahwa ini hanya terjadi saat menganalisis beberapa instruksi MOVE, dan masalah ini dapat diselesaikan dengan menjumlahkan angka.
Kemudian, dengan mempertimbangkan contoh pengkodean yang meningkatkan ketahanan dan keamanan sistem, tim menghasilkan jumlah instruksi mesin yang dieksekusi pada akhirnya. Angka ini kemudian dipertimbangkan dengan unit penyimpanan dan biaya bahan bakar maksimum untuk menentukan nilai saat ini dalam rencana biaya bahan bakar.
5. Penyimpanan
Setiap kali mengakses item status buku yang disimpan dalam penyimpanan permanen atau data, node akan mengeluarkan permintaan baca atau tulis ke perangkat penyimpanan. Total akses data per detik tergantung pada bandwidth perangkat penyimpanan dan kapasitas IOPS. Mirip dengan siklus CPU pada bagian perhitungan biaya bahan bakar, akses data adalah kelangkaan instan yang bersaing di pasar biaya saat pengguna blockchain berada dalam beban sistem, selain itu, biaya penggunaan disk untuk menulis data adalah permanen on-chain. Tim merancang rencana biaya bahan bakar penyimpanan dengan mempertimbangkan biaya ini.
Mengakses dan menyimpan item status mana pun akan menghasilkan biaya terkait dengan struktur data yang memverifikasi status seluruh blockchain. Biaya ini terkait dengan basis dari item status yang berbeda ($2^{256}$). Ada juga biaya yang sebanding dengan ukuran setiap item. Untuk melakukan operasi pada sebuah item status, biayanya adalah ( kecuali untuk pengecualian yang dijelaskan di bagian berikutnya ):
Biaya penyimpanan bahan bakar = item_fee + (byte_fee * bytes)
baca, buat, dan tulis
Akses terhadap item status termasuk dalam salah satu dari tiga jenis berikut: baca, buat, atau tulis. Akses dikenakan biaya berdasarkan biaya item dan biaya byte, seperti yang ditunjukkan dalam persamaan di atas.
Operasi baca adalah operasi yang paling umum, yang hanya dibatasi oleh kelangkaan sumber daya sesaat. Oleh karena itu, biaya baca dikalibrasi berdasarkan IOPS disk ( biaya proyek ) dan kapasitas bandwidth dari spesifikasi perangkat keras referensi.
create adalah menambahkan item baru ke dalam penyimpanan status. Oleh karena itu, create menambah struktur data autentikasi, membuat segalanya menjadi lebih mahal, sehingga biayanya paling tinggi. Biaya pembuatan dikalibrasi berdasarkan ruang disk referensi yang dimiliki jaringan. Oleh karena itu, mengisi disk dengan item (item_fee) dan byte (byte_fee) membutuhkan biaya bahan bakar yang besar.
Operasi tulis memperbarui item yang ada dalam penyimpanan status. Oleh karena itu, operasi tulis tidak menghasilkan biaya tambahan dalam struktur data otentikasi. Namun, dengan memodifikasi entri yang ada menjadi byte yang lebih besar, disk masih dapat rusak. Oleh karena itu, kami mengenakan biaya yang sama untuk byte dalam item yang diperbarui seperti saat dibuat.
Perlu dicatat bahwa biaya yang terkait dengan penyimpanan dievaluasi berdasarkan setiap transaksi: bahkan jika membaca/menulis sumber yang sama beberapa kali, hanya satu biaya yang perlu dibayar.
Berdasarkan pertimbangan di atas, kami mendefinisikan 6 parameter biaya bahan bakar, yang membentuk komponen total biaya bahan bakar. Lihat di bawah:
per_item_read:disesuaikan berdasarkan IOPs
per_byte_read: kalibrasi berdasarkan bandwidth aktual
per_item_create:kalibrasi berdasarkan total proyek yang ditargetkan
per_byte_create: Mengkalibrasi berdasarkan total ukuran target - setiap item mencakup 1KB pertama
per_item_write: sama dengan per_item_read
per_byte_write: sama dengan per_byte_create
biaya unit bahan bakar yang stabil
Terlepas dari nilai pasar untuk melakukan operasi yang dihitung dengan APT atau mata uang fiat, setiap operasi dan transaksi itu sendiri memerlukan biaya unit tetap yang relatif terhadap biaya penyimpanan dan eksekusi. Biaya unit bahan bakar yang tetap membantu menjaga rencana biaya bahan bakar tetap tidak berubah dan terputus dari nilai pasar bebas APT. Selain itu, pemilihan jumlah desimal yang tepat untuk biaya unit bahan bakar membantu menjaga rencana biaya bahan bakar tetap tidak berubah. Dengan mempertimbangkan hal ini, tim mewakili biaya unit bahan bakar dengan akurasi sekitar 3 digit. Oleh karena itu, biaya transaksi transfer adalah sekitar 700 unit biaya bahan bakar.
partisipasi komunitas
Meskipun telah menghabiskan banyak energi untuk rencana biaya bahan bakar, namun masih jauh dari sempurna. Sebagai proyek komunitas, anggota komunitas dapat memilih:
Berdasarkan pengalaman, temukan bagian dari rencana biaya bahan bakar yang tidak masuk akal.
Ungkapkan kekhawatiran tentang rencana biaya bahan bakar dan ikut serta dalam diskusi komunitas
Melakukan pemungutan suara untuk proposal tata kelola yang terkait dengan biaya bahan bakar
Bagaimana cara menyesuaikan biaya bahan bakar?
Rencana biaya bahan bakar disimpan sebagai konfigurasi on-chain, tetapi dapat diubah melalui proposal tata kelola, dan instruksi baru atau fitur asli dapat ditambahkan tanpa hambatan.
Rencana biaya bahan bakar dirancang untuk dapat diskalakan, memungkinkan peningkatan melalui proposal tata kelola. Seiring dengan perbaikan berkelanjutan MOVE VM dan memasukkan umpan balik pengguna, parameter biaya bahan bakar dapat disesuaikan seiring berjalannya waktu.
Terkadang, rumus biaya bahan bakar mungkin memerlukan perubahan kompleks yang melampaui konfigurasi on-chain. Rumus biaya bahan bakar ini biasanya dikodekan dengan Rust dan dibedakan melalui tanda fitur biaya bahan bakar on-chain. Untuk meningkatkan rumus ini, perangkat lunak node harus diperbarui dengan rumus baru, dan dibedakan dengan tanda fitur biaya bahan bakar yang berbeda. Kemudian perangkat lunak node harus dirilis dan diadopsi secara luas oleh operator node, akhirnya, proposal tata kelola harus dirilis dan disetujui agar versi biaya bahan bakar yang baru dapat digunakan.
Pekerjaan di masa depan
Ini adalah kerangka biaya bahan bakar pertama yang layak untuk MOVE. Ini memerlukan banyak modifikasi pada MOVE VM dan Core. Kami berharap pekerjaan ini akan membuka jalan untuk pekerjaan di masa depan:
1) Mengurangi biaya eksekusi, memiliki model biaya bahan bakar yang nyata menunjukkan di mana kompiler dan mesin virtual efisien, tim dapat meningkatkan sebagian besar di dalamnya untuk mengurangi biaya eksekusi.
2) Perhitungan Biaya Bahan Bakar Multidimensi, memungkinkan pengguna untuk menetapkan anggaran terpisah untuk eksekusi dan penyimpanan. Dengan cara ini, pengguna tidak perlu membayar harga biaya bahan bakar yang tinggi karena waktu eksekusi yang terlalu lama akibat aplikasi yang ditulis dengan buruk. Ini juga akan memungkinkan definisi harga biaya bahan bakar maksimum untuk transaksi di sisi blockchain dengan lebih rinci.
3) Mengurangi keadaan yang berlebihan, saat ini tidak ada cara sederhana untuk mengecilkan kumpulan keadaan, selain kontrak ( atau pengguna ) secara eksplisit menghapus objek. Pengguna yang membayar untuk menghapus data mungkin menciptakan peluang arbitrase, di mana pengguna membuat penyimpanan saat murah dan menghapusnya saat mahal. Menunda penyelesaian tantangan ini mungkin akan mengurangi motivasi pengembang untuk menghapus data on-chain. Tim sedang mengeksplorasi konsep TTL untuk setiap proyek, yang akan menghapus item keadaan yang tidak diakses saat TTL kedaluwarsa.
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.
18 Suka
Hadiah
18
6
Bagikan
Komentar
0/400
wrekt_but_learning
· 21jam yang lalu
Biaya bahan bakar yang rumit, capek sekali.
Lihat AsliBalas0
LightningSentry
· 07-15 20:58
move dan Dianggap Bodoh
Lihat AsliBalas0
ZenZKPlayer
· 07-15 20:56
Biaya gas ini adalah lubang hitam.
Lihat AsliBalas0
InfraVibes
· 07-15 20:55
Terlalu rumit, ya? Jelaskan dulu bagaimana cara menghitungnya.
Desain biaya bahan bakar yang inovatif dari bahasa MOVE: bagaimana biaya komputasi on-chain ditentukan
Desain biaya bahan bakar pertama untuk bahasa MOVE: Bagaimana cara menghitung konsumsi on-chain
Pengukuran biaya bahan bakar adalah konsep dasar dari banyak blockchain, yang mendefinisikan jumlah sumber daya komputasi dan penyimpanan yang diperlukan untuk menjalankan dan menyimpan transaksi on-chain. Rencana biaya bahan bakar menentukan semua biaya yang dikeluarkan untuk eksekusi on-chain, yang digunakan untuk menghitung pengeluaran biaya bahan bakar selama eksekusi transaksi.
proses
Untuk mengeksekusi dengan efektif, proses on-chain adalah:
Prinsip
Prinsip yang didefinisikan adalah:
Biaya operasi harus terkait langsung dengan sumber daya yang tersedia di jaringan ( seperti CPU, memori, jaringan, penyimpanan I/O, dan penggunaan ruang, dll ). Setelah perbaikan teknologi dan proses, biaya bahan bakar seharusnya menurun.
Biaya bahan bakar harus diatur oleh on-chain governance dan dapat dikonfigurasi tanpa batas.
Biaya bahan bakar dapat mencegah serangan DoS terhadap sumber daya tetap jaringan, mungkin perlu disesuaikan dengan cepat melalui saran pemerintahan berdasarkan kondisi jaringan.
Harga biaya bahan bakar mencerminkan visi untuk pertumbuhan yang cepat dan mempertahankan popularitas blockchain.
Mendorong untuk membuat pilihan yang baik dalam desain, seperti memprioritaskan keamanan, modularitas, pernyataan, dan acara lainnya.
menghitung biaya bahan bakar
Pengguna harus menentukan dua jumlah dalam transaksi saat mengajukan transaksi:
Jumlah Biaya Bahan Bakar Maksimum: Diukur dalam unit biaya bahan bakar. Ini adalah jumlah maksimum unit biaya bahan bakar yang bersedia dibayar pengguna untuk mengeksekusi transaksi.
Biaya bahan bakar per unit: dihitung dalam oktal per unit biaya bahan bakar, 1 oktal=0.00000001 APT(=$10^{-8}$). Ini adalah harga biaya bahan bakar yang bersedia dibayar pengguna.
Selama proses eksekusi, transaksi akan dikenakan biaya:
Biaya transaksi akhir dapat dihitung dengan mengalikan total jumlah biaya bahan bakar yang digunakan dengan harga per unit biaya bahan bakar. Misalnya, jika sebuah transaksi menghabiskan 670 unit biaya bahan bakar, dan harga per unit biaya bahan bakar yang ditentukan pengguna adalah 100 Octa, maka biaya transaksi akhir adalah 670 * 100 = 67000 Octa = 0.00067 APT.
Jika biaya bahan bakar habis selama proses eksekusi transaksi, pengirim akan dikenakan biaya berdasarkan jumlah maksimum biaya bahan bakar, dan semua perubahan yang dilakukan oleh transaksi tersebut akan dibatalkan.
Membuat rencana biaya bahan bakar
1. Konfigurasi Dasar
Ada beberapa komponen dalam rencana biaya bahan bakar yang tidak terkait dengan rincian operasi tunggal, termasuk ukuran transaksi dan unit biaya bahan bakar maksimum ( yang berbeda dari jumlah biaya bahan bakar maksimum yang ditentukan pengguna dalam transaksi ).
2. Skala Transaksi
Sebagian besar ukuran transaksi mungkin berada dalam kisaran kilobyte. Namun, peluncuran modul MOVE dengan mudah dapat mencapai beberapa ribu byte, sementara kerangka kerja sekitar 100 KB. Ukuran modul pengguna sebagian besar biasanya berada di antara 4KB hingga 40KB. Awalnya, nilai ukuran transaksi diatur menjadi 32KB, tetapi berdasarkan reaksi komunitas yang meminta lebih banyak ruang untuk menyederhanakan pengembangan aplikasi, ukuran transaksi disesuaikan menjadi 64KB.
Transaksi berskala sangat besar dapat menyebabkan peningkatan biaya bandwidth jaringan secara keseluruhan, yang dapat berdampak negatif pada kinerja. Jika disalahgunakan, memori pool akan didorong untuk mengabaikan transaksi yang lebih besar, sehingga pendekatan kami adalah mencapai keseimbangan antara ukuran transaksi berskala maksimum dan keterjangkauan.
3. Unit Biaya Bahan Bakar Maksimal
Unit biaya bahan bakar maksimum dalam rencana biaya bahan bakar mendefinisikan berapa banyak operasi yang dapat dilakukan dalam sebuah transaksi. Perhatikan! Ini berbeda dari jumlah biaya bahan bakar maksimum yang ditentukan pengguna dalam transaksi.
Unit biaya bahan bakar maksimum dari rencana biaya bahan bakar secara langsung mempengaruhi berapa lama sebuah transaksi dapat dieksekusi. Penetapan yang terlalu tinggi dapat menyebabkan dampak kinerja negatif pada blockchain. Misalnya, pengguna mungkin lupa untuk memiliki inkremen dalam loop while, yang dapat menyebabkan loop tak terbatas, ini adalah kesalahan umum. Bahkan setelah melakukan peningkatan kerangka maksimum, tetap saja kurang dari unit biaya bahan bakar maksimum dari rencana biaya bahan bakar ( yang ditetapkan sebesar 1.000.000) sebanyak 90%.
4. Eksekusi
Untuk mengevaluasi biaya eksekusi, dibangun kerangka acuan dan digunakan Valgrind untuk menganalisis MOVE VM saat menjalankan kerangka tersebut. Outputnya adalah sekumpulan kode sumber yang diberi komentar, yang memberi tahu berapa banyak instruksi mesin yang dihasilkan oleh setiap baris kode.
Dengan bantuan analisis di atas, kami memperkirakan secara kasar biaya relatif dari semua instruksi MOVE dan fungsi bawaan. Namun, metode ini memiliki beberapa masalah dengan fungsi inline: mereka tidak secara otomatis termasuk dalam hitungan pemanggil. Kami juga melihat bahwa ini hanya terjadi saat menganalisis beberapa instruksi MOVE, dan masalah ini dapat diselesaikan dengan menjumlahkan angka.
Kemudian, dengan mempertimbangkan contoh pengkodean yang meningkatkan ketahanan dan keamanan sistem, tim menghasilkan jumlah instruksi mesin yang dieksekusi pada akhirnya. Angka ini kemudian dipertimbangkan dengan unit penyimpanan dan biaya bahan bakar maksimum untuk menentukan nilai saat ini dalam rencana biaya bahan bakar.
5. Penyimpanan
Setiap kali mengakses item status buku yang disimpan dalam penyimpanan permanen atau data, node akan mengeluarkan permintaan baca atau tulis ke perangkat penyimpanan. Total akses data per detik tergantung pada bandwidth perangkat penyimpanan dan kapasitas IOPS. Mirip dengan siklus CPU pada bagian perhitungan biaya bahan bakar, akses data adalah kelangkaan instan yang bersaing di pasar biaya saat pengguna blockchain berada dalam beban sistem, selain itu, biaya penggunaan disk untuk menulis data adalah permanen on-chain. Tim merancang rencana biaya bahan bakar penyimpanan dengan mempertimbangkan biaya ini.
Mengakses dan menyimpan item status mana pun akan menghasilkan biaya terkait dengan struktur data yang memverifikasi status seluruh blockchain. Biaya ini terkait dengan basis dari item status yang berbeda ($2^{256}$). Ada juga biaya yang sebanding dengan ukuran setiap item. Untuk melakukan operasi pada sebuah item status, biayanya adalah ( kecuali untuk pengecualian yang dijelaskan di bagian berikutnya ):
Biaya penyimpanan bahan bakar = item_fee + (byte_fee * bytes)
baca, buat, dan tulis
Akses terhadap item status termasuk dalam salah satu dari tiga jenis berikut: baca, buat, atau tulis. Akses dikenakan biaya berdasarkan biaya item dan biaya byte, seperti yang ditunjukkan dalam persamaan di atas.
Operasi baca adalah operasi yang paling umum, yang hanya dibatasi oleh kelangkaan sumber daya sesaat. Oleh karena itu, biaya baca dikalibrasi berdasarkan IOPS disk ( biaya proyek ) dan kapasitas bandwidth dari spesifikasi perangkat keras referensi.
create adalah menambahkan item baru ke dalam penyimpanan status. Oleh karena itu, create menambah struktur data autentikasi, membuat segalanya menjadi lebih mahal, sehingga biayanya paling tinggi. Biaya pembuatan dikalibrasi berdasarkan ruang disk referensi yang dimiliki jaringan. Oleh karena itu, mengisi disk dengan item (item_fee) dan byte (byte_fee) membutuhkan biaya bahan bakar yang besar.
Operasi tulis memperbarui item yang ada dalam penyimpanan status. Oleh karena itu, operasi tulis tidak menghasilkan biaya tambahan dalam struktur data otentikasi. Namun, dengan memodifikasi entri yang ada menjadi byte yang lebih besar, disk masih dapat rusak. Oleh karena itu, kami mengenakan biaya yang sama untuk byte dalam item yang diperbarui seperti saat dibuat.
Perlu dicatat bahwa biaya yang terkait dengan penyimpanan dievaluasi berdasarkan setiap transaksi: bahkan jika membaca/menulis sumber yang sama beberapa kali, hanya satu biaya yang perlu dibayar.
Berdasarkan pertimbangan di atas, kami mendefinisikan 6 parameter biaya bahan bakar, yang membentuk komponen total biaya bahan bakar. Lihat di bawah:
per_item_read:disesuaikan berdasarkan IOPs per_byte_read: kalibrasi berdasarkan bandwidth aktual per_item_create:kalibrasi berdasarkan total proyek yang ditargetkan per_byte_create: Mengkalibrasi berdasarkan total ukuran target - setiap item mencakup 1KB pertama per_item_write: sama dengan per_item_read per_byte_write: sama dengan per_byte_create
biaya unit bahan bakar yang stabil
Terlepas dari nilai pasar untuk melakukan operasi yang dihitung dengan APT atau mata uang fiat, setiap operasi dan transaksi itu sendiri memerlukan biaya unit tetap yang relatif terhadap biaya penyimpanan dan eksekusi. Biaya unit bahan bakar yang tetap membantu menjaga rencana biaya bahan bakar tetap tidak berubah dan terputus dari nilai pasar bebas APT. Selain itu, pemilihan jumlah desimal yang tepat untuk biaya unit bahan bakar membantu menjaga rencana biaya bahan bakar tetap tidak berubah. Dengan mempertimbangkan hal ini, tim mewakili biaya unit bahan bakar dengan akurasi sekitar 3 digit. Oleh karena itu, biaya transaksi transfer adalah sekitar 700 unit biaya bahan bakar.
partisipasi komunitas
Meskipun telah menghabiskan banyak energi untuk rencana biaya bahan bakar, namun masih jauh dari sempurna. Sebagai proyek komunitas, anggota komunitas dapat memilih:
Bagaimana cara menyesuaikan biaya bahan bakar?
Rencana biaya bahan bakar disimpan sebagai konfigurasi on-chain, tetapi dapat diubah melalui proposal tata kelola, dan instruksi baru atau fitur asli dapat ditambahkan tanpa hambatan.
Rencana biaya bahan bakar dirancang untuk dapat diskalakan, memungkinkan peningkatan melalui proposal tata kelola. Seiring dengan perbaikan berkelanjutan MOVE VM dan memasukkan umpan balik pengguna, parameter biaya bahan bakar dapat disesuaikan seiring berjalannya waktu.
Terkadang, rumus biaya bahan bakar mungkin memerlukan perubahan kompleks yang melampaui konfigurasi on-chain. Rumus biaya bahan bakar ini biasanya dikodekan dengan Rust dan dibedakan melalui tanda fitur biaya bahan bakar on-chain. Untuk meningkatkan rumus ini, perangkat lunak node harus diperbarui dengan rumus baru, dan dibedakan dengan tanda fitur biaya bahan bakar yang berbeda. Kemudian perangkat lunak node harus dirilis dan diadopsi secara luas oleh operator node, akhirnya, proposal tata kelola harus dirilis dan disetujui agar versi biaya bahan bakar yang baru dapat digunakan.
Pekerjaan di masa depan
Ini adalah kerangka biaya bahan bakar pertama yang layak untuk MOVE. Ini memerlukan banyak modifikasi pada MOVE VM dan Core. Kami berharap pekerjaan ini akan membuka jalan untuk pekerjaan di masa depan:
1) Mengurangi biaya eksekusi, memiliki model biaya bahan bakar yang nyata menunjukkan di mana kompiler dan mesin virtual efisien, tim dapat meningkatkan sebagian besar di dalamnya untuk mengurangi biaya eksekusi.
2) Perhitungan Biaya Bahan Bakar Multidimensi, memungkinkan pengguna untuk menetapkan anggaran terpisah untuk eksekusi dan penyimpanan. Dengan cara ini, pengguna tidak perlu membayar harga biaya bahan bakar yang tinggi karena waktu eksekusi yang terlalu lama akibat aplikasi yang ditulis dengan buruk. Ini juga akan memungkinkan definisi harga biaya bahan bakar maksimum untuk transaksi di sisi blockchain dengan lebih rinci.
3) Mengurangi keadaan yang berlebihan, saat ini tidak ada cara sederhana untuk mengecilkan kumpulan keadaan, selain kontrak ( atau pengguna ) secara eksplisit menghapus objek. Pengguna yang membayar untuk menghapus data mungkin menciptakan peluang arbitrase, di mana pengguna membuat penyimpanan saat murah dan menghapusnya saat mahal. Menunda penyelesaian tantangan ini mungkin akan mengurangi motivasi pengembang untuk menghapus data on-chain. Tim sedang mengeksplorasi konsep TTL untuk setiap proyek, yang akan menghapus item keadaan yang tidak diakses saat TTL kedaluwarsa.