MOVE語言首創GAS設計:創新鏈上資源計算方式

robot
摘要生成中

MOVE語言首個GAS設計:一種創新的鏈上資源計算方式

MOVE語言的最新版本原本設計爲無GAS運行,因此並未爲GAS計劃做好充分準備。爲適應區塊鏈生態系統的需求,某知名公鏈平台於近期公布了其獨特的GAS計劃,這是MOVE語言首個GAS設計,被視爲一次大膽的嘗試。

該GAS計劃闡明了制定原則、流程、計算方法以及未來調整機制。平台方表示將積極採納社區建議,共同完善這一創新機制。

GAS計量是許多區塊鏈的基本概念,它定義了執行和存儲鏈上交易所需計算和存儲資源的抽象量。GAS計劃確定了鏈上所有執行的成本,用於計算交易執行期間的資源消耗。

設計流程

爲實現有效執行,該平台採取了以下步驟:

  1. 明確設計原則
  2. 制定評估框架,確定各項執行的價格
  3. 爲MOVE建立GAS計量系統和安全GAS代數
  4. 將上遊GAS框架整合到平台
  5. 增強GAS框架的存儲感知能力
  6. 持續優化GAS計劃

核心原則

該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單價

如果交易執行中耗盡GAS,發送方將按最大GAS量收費,所有更改將被撤銷。

GAS計劃表構建

  1. 基本配置

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

  1. 交易規模

大多數交易規模在KB級別,但發布MOVE模塊可達數KB至數十KB。平台初始將交易規模設爲32KB,後根據社區反饋調整爲64KB,以便於應用開發。

  1. 最大GAS單位

GAS計劃中的最大GAS單位定義了單個交易可執行的最大操作量,目前設定爲1,000,000。即使進行最大規模的框架升級,通常也不超過此限制的90%。

  1. 執行成本評估

通過構建基準框架並使用分析工具,團隊估算了所有MOVE指令和本地函數的相對成本。考慮到系統穩健性和安全性,最終確定了執行所需的機器指令數量。

  1. 存儲成本

存儲GAS費用考慮了數據訪問的帶寬、IOPS容量以及永久存儲成本。訪問任何狀態項都會產生與驗證整個區塊鏈狀態相關的成本。

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

讀取、創建和寫入操作

  • 讀取:最常見操作,基於磁盤IOPS和帶寬容量校準
  • 創建:在狀態存儲中添加新項,成本最高
  • 寫入:更新現有項,字節費用與創建相同

穩定的GAS單位成本

每個操作和交易本身都有相對固定的單位成本,有助於保持GAS計劃穩定,並與代幣市場價值脫鉤。

社區參與

平台鼓勵社區成員:

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

GAS成本調整機制

GAS計劃作爲鏈上配置存儲,可通過治理提案進行更改。它被設計爲可擴展的,允許通過治理提案進行升級。

未來展望

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

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

團隊正在探索每個項目TTL的概念,以在TTL到期時自動刪除未訪問的狀態項目,從而優化鏈上數據管理。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 4
  • 分享
留言
0/400
喝茶看盘侠vip
· 15小時前
代码终要花钱用
回復0
睡觉错过空投哥vip
· 15小時前
设计很合我胃口
回復0
假如我在链上vip
· 15小時前
燃料费看涨啊
回復0
治理投票假装者vip
· 15小時前
值得关注的设计
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)