MOVE語言首創GAS設計:解析鏈上交易成本計算方案

robot
摘要生成中

MOVE語言首個GAS設計:鏈上GAS花費計算方案

MOVE語言的上一個版本原本計劃在無GAS的前提下運行,因此並未爲GAS計劃做好準備。某區塊鏈平台最近公布的GAS計劃是MOVE語言的首個GAS設計,被官方稱爲"一場冒險"。

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

流程

爲了有效執行,該鏈上的流程包括:

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

原則

定義的原則包括:

  1. 操作成本應與網路可用資源直接相關,並隨技術進步而降低
  2. Gas應由鏈上治理設置,可無縫配置
  3. Gas可防止DoS攻擊,可根據網路情況快速調整
  4. GAS價格反映了加速增長和保持區塊鏈可及性的願景
  5. 鼓勵在設計中做出優良選擇,如優先考慮安全性、模塊化等

計算GAS

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

  1. 最大gas量:以GAS單位計量,用戶願意爲執行交易花費的最大GAS單位數
  2. Gas單價:以每單位GAS的八進制計算,1八進制=0.00000001 APT

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

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

最終交易費用 = 消耗的GAS總量 × GAS單價。例如,如果交易消耗670個GAS單位,用戶指定的gas單價爲每單位100 Octa,則最終費用爲670 × 100 = 67000 Octa = 0.00067 APT。

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

建立GAS計劃表

  1. 基本配置 GAS計劃包含與單個操作無關的組成部分,如交易大小和最大GAS單位。

  2. 交易規模 大多數交易規模在千字節級別,Move模塊發布可達幾千字節。最初設置爲32KB,後根據社區需求調整爲64KB。

  3. 最大GAS單位 定義交易最多可執行的操作量,設定爲1,000,000,即使最大框架升級也不到90%。

  4. 執行 通過基準框架和Valgrind分析Move VM,估算Move指令和原生函數的相對成本。

  5. 存儲 考慮存儲設備帶寬、IOPS容量和永久磁盤佔用成本設計存儲GAS計劃。

讀、創建和寫

狀態項訪問分爲讀、創建和寫三種類型,各有不同的費用計算方式。

穩定的GAS單位成本

固定的gas單位成本有助於保持gas計劃穩定,與APT市場價值脫鉤。

社區參與

社區成員可以:

  1. 指出GAS計劃不合理之處
  2. 參與社區討論
  3. 對GAS相關治理提案投票

GAS成本調整

GAS計劃可通過治理提案更改,設計爲可擴展,允許隨時間調整參數。

未來工作

  1. 降低執行成本
  2. 實現多維GAS計算
  3. 緩解臃腫狀態問題

這是Move的第一個可行GAS框架,爲未來工作奠定基礎,包括改進編譯器和虛擬機效率、實現更細粒度的GAS定價,以及探索解決鏈上數據刪除動力不足的問題。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 6
  • 分享
留言
0/400
数据酸菜鱼vip
· 07-11 09:02
咋又整这些花里胡哨的
回復0
GateUser-40edb63bvip
· 07-10 14:08
计算方式好丰富啊嘞
回復0
Gas_Optimizervip
· 07-09 07:42
收费真心科学了
回復0
资深链上考古学家vip
· 07-09 07:24
又有新费用结构玩 有点意思
回復0
Rugman_Walkingvip
· 07-09 07:19
谁负责制定gas价格?
回復0
LiquidityHuntervip
· 07-09 07:18
设计够硬核 gas计算精确到byte
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)