MOVE語言首創GAS設計:鏈上資源消耗計算方案解析

robot
摘要生成中

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計算方法

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

  • 最大GAS數量:用戶願意支付的最大GAS單位數
  • 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單位等與單個操作無關的組成部分

  2. 交易規模:最初設爲32KB,後根據社區反饋調整爲64KB

  3. 最大GAS單位:定義單筆交易最多可執行的操作量,設爲1,000,000

  4. 執行成本:通過基準框架和分析工具評估Move指令和原生函數的相對成本

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

存儲GAS費 = 項目費 + (字節費 × 字節數)

讀取、創建和寫入操作

  • 讀取:最常見操作,費用最低
  • 創建:在狀態存儲中添加新項,費用最高
  • 寫入:更新現有項,字節費用與創建相同

每筆交易中,即使多次讀/寫同一資源,也只收取一次費用。

穩定的GAS單位成本

固定的GAS單位成本有助於保持GAS計劃穩定,與代幣市場價值脫鉤。項目團隊以約3位數精度表示GAS單位,如轉帳交易成本約爲700個GAS單位。

社區參與

項目鼓勵社區成員:

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

GAS成本調整

GAS計劃作爲鏈上配置存儲,可通過治理提案進行更改。復雜的GAS公式更新需要更新節點軟件並獲得廣泛採用,最後通過治理提案批準。

未來工作方向

  1. 降低執行成本:通過改進編譯器和虛擬機
  2. 多維GAS計算:允許用戶爲執行和存儲指定單獨預算
  3. 緩解狀態臃腫:探索每個項目TTL概念,在TTL到期時刪除未訪問的狀態項目

作爲Move語言的首個GAS設計,該項目爲未來的工作奠定了基礎,期待通過持續改進和社區參與,進一步優化區塊鏈的GAS機制。

MOVE-2.52%
GAS-1.45%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 4
  • 分享
留言
0/400
MetaMuskRatvip
· 07-19 08:44
这gas又要割韭菜了吧
回復0
DegenWhisperervip
· 07-18 17:00
move 真tm贵
回復0
RumbleValidatorvip
· 07-16 20:07
验证效率上限优化第一人 存储优化数据绝对碾压
回復0
PrivateKeyParanoiavip
· 07-16 20:03
这gas收得也太离谱了吧?
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)