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

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

  • 最大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方案包含一些與單個操作無關的組成部分,如交易大小和最大GAS單位。

  1. 交易規模

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

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

  1. 最大GAS單位

GAS方案中的最大GAS單位定義了單個交易可執行的最大操作數。這與用戶指定的最大GAS量不同。設置過高可能導致性能問題,如無限循環。目前,即使進行最大規模的框架升級,也僅使用了最大GAS單位(設爲1,000,000)的不到90%。

  1. 執行成本評估

團隊使用基準框架和Valgrind分析工具評估執行成本,得出Move指令和原生函數的相對成本。通過考慮增強系統穩健性和安全性的編碼範例,確定了最終執行的機器指令數量。

  1. 存儲成本

存儲GAS計劃考慮了數據訪問的帶寬、IOPS容量以及永久存儲成本。訪問任何狀態項都涉及與驗證區塊鏈狀態相關的成本。存儲GAS費用計算公式爲:

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

  1. 讀取、創建和寫入操作
  • 讀取:最常見操作,根據磁盤IOPS和帶寬容量校準費用。
  • 創建:在狀態存儲中添加新項,成本最高,根據網路磁盤空間校準。
  • 寫入:更新現有項,字節費用與創建相同。

存儲相關成本基於每筆交易評估,即使多次讀/寫同一資源,也只收取一次費用。

社區參與

作爲社區項目,成員可以:

  1. 指出GAS方案中不合理之處
  2. 提出擔憂並參與討論
  3. 對相關治理提案進行投票

GAS成本調整

GAS方案作爲鏈上配置存儲,可通過治理提案更改。它被設計爲可擴展的,允許通過治理升級。隨着技術進步和用戶反饋,GAS參數可隨時間調整。

復雜的GAS公式更改可能需要更新節點軟件,並通過新的GAS特徵標志區分。這需要節點運營商廣泛採用新版本,並通過治理提案批準使用。

未來工作

作爲MOVE語言的首個GAS框架,該設計爲未來工作奠定了基礎:

  1. 降低執行成本:通過改進編譯器和虛擬機效率。

  2. 多維GAS計算:允許用戶爲執行和存儲指定單獨預算,實現更細粒度的最大GAS價格定義。

  3. 緩解狀態膨脹:探索每個項目TTL概念,在TTL到期時自動刪除未訪問的狀態項目,以鼓勵開發者清理鏈上數據。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 5
  • 分享
留言
0/400
GateUser-3824aa38vip
· 07-06 09:00
节约gas就完事了
回復0
瀑布式抄底vip
· 07-06 08:56
牛啊 终于有人管gas了
回復0
GigaBrainAnonvip
· 07-06 08:54
这gas太狠了 贵到我腿软
回復0
ZkSnarkervip
· 07-06 08:53
严格来说,这个gas模型只是zkvm加上了额外的步骤
查看原文回復0
跑路预警官vip
· 07-06 08:38
又出啥新玩法能跑路
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)