MOVE語言首創GAS機制:鏈上費用計算全解析

robot
摘要生成中

MOVE語言首個GAS設計:鏈上GAS費用計算方法解析

MOVE語言的上一個版本原本計劃在無GAS的前提下運行,因此並未爲GAS機制做好準備。近期,一個區塊鏈項目爲其MOVE語言鏈推出了首個GAS設計方案,這被官方稱爲"一場冒險"。

該項目的GAS計劃闡明了制定GAS的原則、流程、計算方法、後期調整機制,以及接納社區建議的態度。GAS計量是這個區塊鏈和許多其他區塊鏈的基本概念,它定義了執行和存儲鏈上交易所需的計算和存儲資源量的抽象計算。GAS計劃將確定鏈上所有執行所消耗的成本,用於計算執行交易期間使用的GAS花費。

流程

爲了有效執行,該項目在鏈上的流程是:

  1. 定義原則
  2. 準備評估框架,確定每個執行的價格
  3. 爲Move建立GAS計量系統和安全GAS代數
  4. 將上遊GAS框架導入
  5. 使GAS框架具有存儲意識
  6. 進一步細化GAS計劃

原則

該項目定義的原則包括:

  1. 操作成本應與網路可用資源直接相關,如CPU、內存、網路、存儲I/O和空間使用等。隨着技術和流程改進,GAS所需成本應隨之降低。
  2. GAS應由鏈上治理設置,並可無縫配置。
  3. GAS可防止對網路固定資源的DoS攻擊,可能需要根據網路情況通過治理建議迅速調整。
  4. GAS價格反映了加速增長和保持區塊鏈普及性的願景。
  5. 鼓勵在設計中做出優質選擇,如優先考慮安全性、模塊化、斷言等。

計算GAS

用戶提交交易時,需在交易中指定兩個數量:

  1. 最大GAS數量:以GAS單位計量,表示用戶願意爲執行交易花費的最大GAS單位數。
  2. GAS單價:以每單位GAS的八進制計算,1八進制=0.00000001本地代幣。

執行過程中,交易將被收取:

  1. 固定成本:固定基數加上大額交易的額外費用。
  2. 執行成本:用於執行Move指令。
  3. 讀取成本:用於從持久存儲讀取數據。
  4. 寫入成本:用於將數據寫入持久存儲。

最終交易費用計算方法爲:消耗的GAS總量乘以GAS單價。例如,一筆交易消耗670個GAS單位,用戶指定的GAS單價爲每單位100 Octa,則最終交易費用爲670 * 100 = 67000 Octa = 0.00067本地代幣。

如果交易執行過程中耗盡GAS,發送方將根據最大GAS量收費,該交易所做的所有更改都將被恢復。

建立GAS計劃表

1. 基本配置

GAS計劃包含幾個與單個操作細節無關的組成部分,如交易大小和最大GAS單位。

2. 交易規模

大多數交易規模在千字節量級。Move模塊發布可能達到幾千字節,而框架約爲100 KB。用戶模塊大小通常在4KB到40KB之間。最初交易規模設置爲32KB,後根據社區需求調整爲64KB,以簡化應用程序開發。

大規模交易會增加網路帶寬成本並可能影響性能。爲平衡最大規模交易的大小和可訪問性,內存池可能會忽略規模更大的交易。

3. 最大GAS單位

GAS計劃中的最大GAS單位定義了單個交易可執行的最大操作量。設置過高可能對區塊鏈性能產生負面影響。即使進行最大的框架升級,仍不到GAS計劃最大GAS單位(設定爲1,000,000)的90%。

4. 執行

評估執行成本時,構建了基準框架並使用分析工具分析Move VM。通過分析得出所有Move指令和本機函數的相對成本估計。考慮增強系統穩健性和安全性的編碼範例後,確定了最終執行的機器指令數量,並與存儲和最大GAS單位進行權衡,得出GAS計劃中的當前值。

5. 存儲

訪問存儲在持久存儲中的帳本狀態項或數據時,節點會向存儲設備發出讀取或寫入。每秒數據訪問總數取決於存儲設備的帶寬和IOPS容量。存儲GAS計劃設計考慮了這些成本。

訪問和存儲任何狀態項都會產生與驗證整個區塊鏈狀態的數據結構相關的成本。此成本與不同狀態項的基數有關。還有一個成本與每個項目的大小成正比。

存儲GAS費 = item_fee + (byte_fee * bytes)

讀、創建和寫

狀態項訪問分爲讀、創建或寫三種類型。讀操作最常見,僅受瞬時資源稀缺限制。創建操作在狀態存儲中添加新項,成本最高。寫操作更新狀態存儲中的現有項。

基於上述考慮,定義了6個GAS參數:

  • per_item_read:根據IOPs校正
  • per_byte_read:根據實際帶寬校準
  • per_item_create:根據目標總項目校準
  • per_byte_create:根據目標總大小校準
  • per_item_write:與per_item_read相同
  • per_byte_write:與per_byte_create相同

穩定的GAS單位成本

每個操作和交易本身需要相對於存儲和執行成本的固定單位成本。固定GAS單位成本有助於保持GAS計劃不變,並與本地代幣的市場價值脫鉤。GAS單位以約3位數的精度表示,轉帳交易成本約爲700個GAS單位。

社區參與

社區成員可以:

  1. 找出GAS計劃不合理之處
  2. 表達對GAS計劃的擔憂,參與社區討論
  3. 就與GAS相關的治理提案進行投票

GAS成本調整

GAS計劃作爲鏈上配置存儲,可通過治理提案更改,並可無縫添加新指令或原生功能。GAS計劃設計可擴展,允許通過治理提案升級。隨着不斷改進和納入用戶反饋,GAS參數可隨時間調整。

復雜的GAS公式更改需更新節點軟件,並爲節點運營商大量採用。最後,必須發布並批準治理提案才能使用新的GAS版本。

未來工作

作爲Move的首個可行GAS框架,該項目爲今後工作鋪平道路:

  1. 降低執行成本:改進編譯器和虛擬機效率
  2. 多維GAS計算:允許用戶爲執行和存儲指定單獨預算
  3. 緩解臃腫狀態:探索每個項目TTL概念,在TTL到期時刪除未訪問的狀態項目
MOVE-0.57%
GAS-0.75%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
ShibaMillionairen'tvip
· 07-24 00:05
啥费用不费用 就是韭菜交钱呗
回復0
Satoshi继承人vip
· 07-21 20:58
哼,MOVE的设计方案显然抄袭了以太坊黄皮书第127页
回復0
GasWastervip
· 07-21 01:29
又一天,又一次gas优化……现在就让我去死吧
查看原文回復0
瓦斯烧烤大师vip
· 07-21 01:26
移动支付都来了,还玩这个?
回復0
无常损失心理医生vip
· 07-21 01:12
又创新又烧钱
回復0
币圈鸡汤哥vip
· 07-21 01:09
又在谈费用问题 慌啥呢
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)