MOVE'nin GAS tasarımı: on-chain kaynak tüketim hesaplama yöntemi analizi

robot
Abstract generation in progress

MOVE dilindeki ilk GAS tasarımı: on-chain GAS harcama hesaplama yöntemi

MOVE dilinin bir önceki versiyonu, GAS olmadan çalışmayı planlıyordu, bu nedenle GAS planına hazırlıklı değildi. Son zamanlarda belirli bir kamu blockchain'i için oluşturulan GAS planı, MOVE dilinin ilk GAS tasarımıdır ve "bir macera" olarak adlandırılmaktadır.

Bu GAS planı, GAS oluşturma ilkelerini, süreçlerini, hesaplama yöntemlerini, sonraki ayarlamaları ve topluluk önerilerini kabul etme gibi konuları açıklamaktadır.

GAS ölçümü, birçok blok zincirinin temel bir kavramıdır; bu, zincir üstündeki işlemleri yürütmek ve depolamak için gereken hesaplama ve depolama kaynaklarının soyut hesaplamasını tanımlar. GAS planı, zincir üstünde gerçekleştirilen tüm işlemlerin maliyetini belirler ve işlem gerçekleştirme sırasında kullanılan GAS harcamasını hesaplamak için kullanılır.

süreç

Etkili bir şekilde uygulamak için, on-chain süreç aşağıdaki gibidir:

  1. Tanım İlkesi
  2. Değerlendirme çerçevesini hazırlayın, her bir yürütme için fiyatı belirleyin
  3. MOVE için bir GAS ölçüm sistemi ve güvenli GAS cebirinin oluşturulması
  4. Yukarı akış GAS çerçevesini içe aktar
  5. GAS çerçevesini depolama bilincine sahip hale getirin
  6. GAS planını daha da ayrıntılandırmak

Prensip

Tanımlanan ilkeler şunlardır:

  1. İşlem maliyetleri, ağın mevcut kaynaklarıyla doğrudan ilişkili olmalı ve teknolojik ilerlemelerle birlikte azalmalıdır.
  2. GAS, on-chain yönetişim tarafından ayarlanmalıdır, kesintisiz yapılandırılabilir.
  3. GAS, DoS saldırılarını önleyebilir ve ağ durumuna göre hızlı bir şekilde ayarlanabilir.
  4. GAS fiyatı, hızlanan büyüme ve blok zincirine erişilebilirliği koruma vizyonunu yansıtmalıdır.
  5. Tasarımda iyi seçimler yapmayı teşvik edin, güvenlik, modülerlik gibi unsurları önceliklendirin.

GAS hesaplama

Kullanıcı işlemi gönderirken belirtmelidir:

  • Maksimum GAS miktarı: Kullanıcının bir işlemi gerçekleştirmek için harcamak istediği maksimum GAS birimi sayısı
  • GAS birim fiyatı: her birim GAS için sekizli sistemde hesaplanır, 1 sekizli sistem = 0.00000001 APT

İşlem gerçekleştirilirken alınacak:

  1. Sabit maliyet
  2. MOVE komutunu yürütmenin maliyeti
  3. Kalıcı depolamadan veri okuma maliyeti
  4. Kalıcı depolamaya veri yazmanın maliyeti

Son işlem ücreti = Harcanan GAS toplamı × GAS birim fiyatı

Örneğin, eğer işlem 670 GAS birimi tüketiyorsa, kullanıcının belirlediği GAS birim fiyatı 100 Octa/birim ise, nihai ücret 670 × 100 = 67000 Octa = 0.00067 APT.

Eğer işlem yürütme sürecinde GAS tükenirse, gönderen maksimum GAS miktarı üzerinden ücretlendirilecektir, bu işlemde yapılan değişiklikler geri alınacaktır.

GAS planı oluşturma

  1. Temel Ayarlar

GAS planı, işlem boyutu ve maksimum GAS birimi gibi tekil işlemlerle ilgili olmayan bileşenleri içerir.

  1. İşlem ölçeği

Çoğu işlem boyutu kilobayt seviyesindedir. MOVE modülü birkaç kilobayta kadar yayınlanabilir, bir çerçeve yaklaşık 100 KB'dir. Kullanıcı modülleri genellikle 4-40 KB arasında değişir. İşlem boyutu başlangıçta 32 KB olarak belirlenmiş, sonrasında topluluk geri bildirimine göre 64 KB olarak ayarlanmıştır.

Büyük ölçekli işlemler ağ bant genişliği maliyetlerini artırabilir ve performansı etkileyebilir. Bellek havuzu büyük ölçekli işlemleri göz ardı edebilir, bu nedenle maksimum ölçek ile erişilebilirlik arasında bir denge sağlanmalıdır.

  1. En büyük GAS birimi

GAS planındaki maksimum GAS birimi, bir işlemin gerçekleştirebileceği en fazla işlem sayısını tanımlar. Aşırı yüksek ayarlamak, blok zincirinin performansı üzerinde olumsuz etki yaratabilir. Test edilmiştir ki, en büyük çerçeve yükseltmesi yapılsa bile, maksimum GAS biriminin ( olarak belirlenen 1,000,000)'in %90'ından daha azı kullanılmaktadır.

  1. Uygula

Performans maliyetini değerlendirmek için bir referans çerçevesi oluşturarak ve Move VM'yi Valgrind ile analiz ederek. Çıktı, her bir kod satırının ürettiği makine talimatı sayısını gösteren açıklamalı kaynak kodudur.

Bu, tüm MOVE talimatlarının ve yerel işlevlerin göreceli maliyetlerini kabaca tahmin etmektedir. Inline işlevlerle bazı sorunların olduğunu ve bunların sayıları toplamakla çözülebileceğini belirtmektedir.

Sonuç olarak, sistemin sağlamlığını ve güvenliğini artırmayı amaçlayan kodlama örnekleri göz önünde bulundurularak, gerçekleştirilecek makine talimatlarının sayısı elde edilir. Bu sayı, depolama ve maksimum GAS birimi dengesi ile karşılaştırılarak, GAS planındaki mevcut değer belirlenir.

  1. Depolama

Defter durum öğelerine veya verilere erişilirken, düğüm depolama cihazına okuma/yazma talepleri gönderir. Her saniyedeki toplam veri erişimi, depolama cihazının bant genişliğine ve IOPS kapasitesine bağlıdır. Veri erişimi, kullanıcıların sistem yükü altında ücret pazarında rekabet ettiği anlık kıt bir kaynaktır. Verileri yazan disklerin maliyeti, on-chain olarak kalıcıdır.

Herhangi bir durum öğesine erişim ve depolama, tüm blok zinciri durumunu doğrulamakla ilgili veri yapılarıyla ilişkili maliyetler doğurur. Bu maliyet, farklı durum öğelerinin kardinalitesiyle ilgilidir ($2^{256}$). Ayrıca, her bir öğenin boyutuna orantılı bir maliyet de vardır.

Durum öğesi işlemlerinin ücreti ( aşağıdaki açıklanan istisnai durumlar hariç ) için:

GAS ücreti = item_fee + (byte_fee × bytes)

oku, oluştur ve yaz

Durum öğesi erişimi üç türde sınıflandırılır: okuma, oluşturma veya yazma. Erişim, öğe ücreti ve bayt ücreti ile ücretlendirilir.

Okuma işlemi en yaygınıdır ve yalnızca anlık kaynak kıtlığı ile sınırlıdır. Okuma maliyetleri, disk IOPS ve referans donanım özelliklerinin bant genişliği kapasitesine göre kalibre edilir.

Oluşturma işlemi, durum deposuna yeni bir öğe ekler, kimlik doğrulama veri yapısı maliyetini artırır, bu nedenle en pahalıdır. Oluşturma maliyeti, ağın sahip olduğu referans disk alanına göre ayarlanır.

Yazma işlemi mevcut öğeleri günceller, kimlik doğrulama veri yapısında ek maliyet oluşturmaz. Ancak mevcut girişlerin daha büyük byte sayısına değiştirilmesi disk alanı kaplayabilir, bu nedenle güncellenen öğelerdeki byte'lar için oluşturmayla aynı ücret alınır.

Depolama ile ilgili maliyetler her işlem için değerlendirilir: aynı kaynağı defalarca okuma/yazma durumunda bile yalnızca bir kez ücret alınır.

Yukarıda belirtilen hususlara dayanarak, toplam maliyeti oluşturan 6 GAS parametresi tanımlanmıştır:

  • per_item_read: IOPlarına göre kalibre etme
  • per_byte_read: Gerçek bant genişliğine göre kalibre
  • per_item_create: Hedef toplam projeye göre kalibre et
  • per_byte_create: Hedef toplam boyuta göre ayarlama ( her proje için ilk 1KB )
  • per_item_write: per_item_read ile aynı
  • per_byte_write: per_byte_create ile aynı

stabil GAS birim maliyeti

Her işlem ve işlem için depolama ve yürütme maliyetlerine göre sabit bir birim maliyeti gereklidir, APT veya yasal para birimlerinin piyasa değeri ne olursa olsun. Sabit GAS birim maliyeti, GAS programının değişmeden kalmasına yardımcı olur ve APT serbest piyasa değerinden kopar. GAS birimlerinin doğru hassasiyetle seçilmesi, GAS programının istikrarlı kalmasına yardımcı olur. Bu durumu göz önünde bulundurarak, GAS birimleri yaklaşık 3 basamak hassasiyetle gösterilmektedir. Bu nedenle, transfer işlem maliyeti yaklaşık 700 GAS birimidir.

topluluk katılımı

Topluluk üyeleri şunları yapabilir:

  1. GAS planının mantıksız yönlerini belirleyin
  2. Endişeleri dile getirin ve tartışmalara katılın
  3. GAS ile ilgili yönetim önerileri için oylama yapın

GAS maliyet ayarlaması

GAS planı, on-chain yapılandırma depolaması olarak, yönetim önerileri ile değiştirilebilir ve yeni komutlar veya yerel işlevler sorunsuz bir şekilde eklenebilir.

GAS planı tasarımı ölçeklenebilir, yönetim önerileri aracılığıyla yükseltmelere izin verir. Sürekli iyileştirme ve kullanıcı geri bildirimlerinin dahil edilmesiyle, GAS parametreleri zamanla ayarlanabilir.

Bazen GAS formüllerinin karmaşık değişiklikler gerektirmesi mümkündür. Bu formüller genellikle Rust ile kodlanır ve on-chain GAS özellik bayrağı ile ayırt edilir. Bu formüllerin yükseltilmesi, düğüm yazılımının güncellenmesini, yaygın kullanımını ve yeni GAS sürümünün kullanımını onaylamak için yönetişim önerisi ile yapılmasını gerektirir.

Gelecek İş

MOVE'un ilk uygulanabilir GAS çerçevesi olarak, gelecekteki çalışma yönleri şunları içermektedir:

  1. İcra maliyetlerini düşürmek: Gerçek GAS modelini kullanarak derleyici ve sanal makine verimliliğini göstermek, icra maliyetlerini düşürmek için iyileştirmeler yapmak.

  2. Çok Boyutlu GAS Hesaplama: Kullanıcıların yürütme ve depolama için ayrı bütçeler belirlemesine izin vererek, kod kalitesi sorunları nedeniyle yüksek GAS fiyatları ödemekten kaçınmalarını sağlar.

  3. Şişkin durumu hafifletmek: Her projenin TTL kavramını keşfedin, TTL süresi dolduğunda ziyaret edilmeyen durum projelerini silin.

View Original
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.
  • Reward
  • 5
  • Share
Comment
0/400
rugged_againvip
· 9h ago
Bunları söylemektense doğrudan gas'ın ne kadar düşeceğini söylemek daha iyi değil mi?
View OriginalReply0
MetaverseMigrantvip
· 9h ago
Zeh, bu gas daha karmaşık olamaz mı?
View OriginalReply0
NewDAOdreamervip
· 9h ago
Para almak da bir coder'ın ömrü boyunca acısıdır.
View OriginalReply0
¯\_(ツ)_/¯vip
· 9h ago
move gerçekten boğa mı? Karmaşık mı oldu?
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)