MOVE语言GAS计费机制详解:计算方式与未来发展

robot
摘要生成中

MOVE语言首个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 APT

交易执行过程中将收取:

  1. 固定成本
  2. 执行Move指令的成本
  3. 从存储读取数据的成本
  4. 将数据写入存储的成本

最终交易费用 = 消耗的GAS总量 × GAS单价

GAS计划表的建立

  1. 基本配置:包括交易大小和最大GAS单位

  2. 交易规模:目前设为64KB,在规模和可访问性间取平衡

  3. 最大GAS单位:定义单笔交易最多可执行的操作量,设为1,000,000

  4. 执行成本:通过基准测试和分析评估Move指令和原生函数的相对成本

  5. 存储成本:考虑存储设备带宽、IOPS和永久占用成本

存储GAS费 = 项目费 + (字节费 × 字节数)

读、创建和写操作

  • 读操作:最常见,根据磁盘IOPS和带宽容量校准
  • 创建操作:成本最高,根据参考磁盘空间校准
  • 写操作:更新现有项,对更新的字节收取与创建相同的费用

定义了6个GAS参数构成总费用:

  • per_item_read
  • per_byte_read
  • per_item_create
  • per_byte_create
  • per_item_write
  • per_byte_write

稳定的GAS单位成本

保持固定的GAS单位成本,以维持GAS计划稳定性。转账交易成本约为700个GAS单位。

社区参与

社区成员可以:

  1. 指出GAS计划不合理之处
  2. 参与社区讨论
  3. 对相关治理提案投票

GAS成本调整

GAS计划作为链上配置存储,可通过治理提案更改。设计为可扩展的,允许通过提案升级。复杂变更需更新节点软件并获得广泛采用。

未来工作方向

  1. 降低执行成本
  2. 实现多维GAS计算,允许分别指定执行和存储预算
  3. 缓解状态臃肿,探索每个项目TTL的概念

这是Move语言首个可行的GAS框架,为今后工作奠定了基础。团队将继续改进编译器和虚拟机以降低执行成本,探索更细粒度的GAS定价方案,并解决链上数据删除的挑战。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
digital_archaeologistvip
· 07-11 17:04
该链gas也太高了吧
回复0
VCsSuckMyLiquidityvip
· 07-11 06:44
讲得好细 感觉又烧钱了
回复0
链上老中医vip
· 07-11 06:38
这gas贵的我都想退坑了
回复0
Altcoin分析师vip
· 07-11 06:34
从数据看gas消耗陷阱还是太多
回复0
RumbleValidatorvip
· 07-11 06:24
你以为这就是最优gas计量?见多识广的验证节点可不这么想
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)