# MOVE语言首次实现GAS机制设计:Aptos链如何计算GAS消耗Aptos于10月14日公布了其GAS计划。由于MOVE语言此前版本并未考虑GAS机制,这次为Aptos建立的GAS计划是MOVE语言首次实现GAS设计,被称为"一次冒险"。在Aptos的GAS计划中,阐明了制定GAS的原则、流程、计算方法、后期调整以及接受社区建议等内容。GAS计量是Aptos等许多区块链的基本概念,它定义了执行和存储链上交易所需计算和存储资源量的抽象计算。GAS计划确定了链上所有执行消耗的成本,用于计算交易执行期间使用的GAS花费。### 流程为了有效执行,Aptos链上的流程是:1. 定义原则2. 准备评估框架,确定每个执行的价格 3. 为Move建立GAS计量系统和安全GAS代数4. 将上游GAS框架导入Aptos5. 使GAS框架具有存储意识6. 进一步细化GAS计划### 原则定义的原则包括:1. 操作成本应与网络可用资源直接相关,并随技术改进而降低2. GAS由链上治理设置,可无缝配置3. GAS可防止DoS攻击,可根据网络情况快速调整 4. GAS价格反映了加速增长和保持可及性的愿景5. 鼓励在设计中做出安全、模块化等良好选择### 计算GAS用户提交交易时需指定:- 最大GAS数量:愿意为执行交易花费的最大GAS单位数- GAS单价:以每单位GAS的八进制计算,1八进制=0.00000001 APT交易执行过程中收取:1. 固定成本 2. 执行成本3. 读取成本4. 写入成本最终交易费用 = 消耗的GAS总量 * GAS单价例如,交易消耗670个GAS单位,用户指定GAS单价为100 Octa/单位,则最终费用为670 * 100 = 67000 Octa = 0.00067 APT。如果交易执行中耗尽GAS,发送方将按最大GAS量收费,该交易所有更改将被恢复。### 建立GAS计划表1. 基本配置 包括交易大小和最大GAS单位等与单个操作无关的组成部分。2. 交易规模 初始设置为32KB,后调整为64KB,以平衡大规模交易的网络影响和应用开发便利性。3. 最大GAS单位 定义单笔交易最多可执行的操作量,设定为1,000,000。即使最大框架升级也不到90%。4. 执行 通过基准框架和Valgrind分析Move VM,估算Move指令和本机函数的相对成本。5. 存储 考虑存储设备带宽、IOPS容量和永久磁盘占用成本,设计存储GAS计划。存储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计划保持不变并与APT市场价值脱钩。Aptos团队以约3位数精度表示GAS单位,如转账交易成本约700个GAS单位。### 社区参与社区成员可以:1. 指出GAS计划不合理之处2. 参与社区讨论3. 对GAS相关治理提案投票### 如何调整GAS成本GAS计划作为链上配置存储,可通过治理提案更改。设计为可扩展,允许通过提案升级。复杂更改需更新节点软件并获得大规模采用。### 未来工作1. 降低执行成本2. 多维GAS计算,允许为执行和存储指定单独预算3. 缓解臃肿状态,探索每个项目TTL概念作为Move首个可行的GAS框架,这项工作为未来发展铺平了道路。
Aptos链引领MOVE语言GAS机制革新 计算方式全面解析
MOVE语言首次实现GAS机制设计:Aptos链如何计算GAS消耗
Aptos于10月14日公布了其GAS计划。由于MOVE语言此前版本并未考虑GAS机制,这次为Aptos建立的GAS计划是MOVE语言首次实现GAS设计,被称为"一次冒险"。
在Aptos的GAS计划中,阐明了制定GAS的原则、流程、计算方法、后期调整以及接受社区建议等内容。
GAS计量是Aptos等许多区块链的基本概念,它定义了执行和存储链上交易所需计算和存储资源量的抽象计算。GAS计划确定了链上所有执行消耗的成本,用于计算交易执行期间使用的GAS花费。
流程
为了有效执行,Aptos链上的流程是:
原则
定义的原则包括:
计算GAS
用户提交交易时需指定:
交易执行过程中收取:
最终交易费用 = 消耗的GAS总量 * GAS单价
例如,交易消耗670个GAS单位,用户指定GAS单价为100 Octa/单位,则最终费用为670 * 100 = 67000 Octa = 0.00067 APT。
如果交易执行中耗尽GAS,发送方将按最大GAS量收费,该交易所有更改将被恢复。
建立GAS计划表
基本配置 包括交易大小和最大GAS单位等与单个操作无关的组成部分。
交易规模 初始设置为32KB,后调整为64KB,以平衡大规模交易的网络影响和应用开发便利性。
最大GAS单位 定义单笔交易最多可执行的操作量,设定为1,000,000。即使最大框架升级也不到90%。
执行 通过基准框架和Valgrind分析Move VM,估算Move指令和本机函数的相对成本。
存储 考虑存储设备带宽、IOPS容量和永久磁盘占用成本,设计存储GAS计划。
存储GAS费 = 项目费 + (字节费 * 字节数)
读、创建和写
定义了6个GAS参数:per_item_read、per_byte_read、per_item_create、per_byte_create、per_item_write和per_byte_write。
稳定的GAS单位成本
保持固定的GAS单位成本,有助于GAS计划保持不变并与APT市场价值脱钩。Aptos团队以约3位数精度表示GAS单位,如转账交易成本约700个GAS单位。
社区参与
社区成员可以:
如何调整GAS成本
GAS计划作为链上配置存储,可通过治理提案更改。设计为可扩展,允许通过提案升级。复杂更改需更新节点软件并获得大规模采用。
未来工作
作为Move首个可行的GAS框架,这项工作为未来发展铺平了道路。