# MOVE语言首个GAS设计:Aptos链上GAS费用计算详解MOVE语言最初并未为GAS计划做好准备,因此Aptos为其建立的GAS计划被视为一次创新尝试。Aptos的GAS计划阐明了制定GAS的原则、流程、计算方法以及后期调整机制,同时也欢迎社区提供建议。GAS计量是Aptos和许多区块链的基本概念,用于抽象计算执行和存储链上交易所需的计算和存储资源量。GAS计划确定了链上所有执行的成本,用于计算交易执行期间的GAS花费。### 实施流程Aptos链上的实施流程包括:1. 定义原则2. 准备评估框架,确定每个执行的价格3. 为Move建立GAS计量系统和安全GAS代数4. 将上游GAS框架导入Aptos5. 使GAS框架具有存储意识6. 进一步细化GAS计划### 核心原则1. 操作成本应与网络可用资源直接相关,技术改进后GAS成本应随之降低。2. GAS应由链上治理设置,可无缝配置。3. GAS可防止对网络固定资源的DoS攻击,需要根据网络情况快速调整。4. Aptos的GAS价格反映了基金会加速增长和保持区块链普及性的愿景。5. 鼓励在设计中做出明智选择,如优先考虑安全性、模块化等。### GAS计算方法用户提交交易时需指定两个数量:1. 最大GAS数量:用户愿意为执行交易花费的最大GAS单位数。2. 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. 交易规模:目前设置为64KB,平衡了大规模交易的需求和网络性能。3. 最大GAS单位:定义单个交易可执行的最大操作量,目前设置为1,000,000。4. 执行成本:通过基准框架和Valgrind分析工具评估Move指令和本机函数的相对成本。5. 存储成本:考虑数据访问和永久存储成本,设计存储GAS计划。存储GAS费 = 项目费 + (字节费 × 字节数)### 读取、创建和写入操作- 读取:最常见操作,费用基于磁盘IOPS和带宽容量校准。- 创建:在状态存储中添加新项,成本最高,基于网络磁盘空间校准。- 写入:更新现有项,字节费用与创建相同。### 稳定的GAS单位成本固定的GAS单位成本有助于保持GAS计划稳定,与APT市场价值脱钩。Aptos团队以约3位数精度表示GAS单位,例如转账交易成本约为700个GAS单位。### 社区参与Aptos鼓励社区成员:1. 指出GAS计划中不合理之处2. 参与社区讨论,表达对GAS计划的担忧3. 对Aptos上与GAS相关的治理提案进行投票### GAS成本调整机制GAS计划作为链上配置存储,可通过Aptos治理提案进行更改。设计为可扩展,允许通过治理提案升级。复杂的GAS公式更改需要更新节点软件并获得大量采用,最后通过治理提案批准。### 未来展望作为Move的首个可行GAS框架,Aptos团队计划:1. 降低执行成本2. 实现多维GAS计算,允许用户为执行和存储指定单独预算3. 缓解臃肿状态问题,探索每个项目TTL概念,在TTL到期时删除未访问的状态项目
Aptos链GAS费用计算机制解析:MOVE语言首创设计
MOVE语言首个GAS设计:Aptos链上GAS费用计算详解
MOVE语言最初并未为GAS计划做好准备,因此Aptos为其建立的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单位。
交易规模:目前设置为64KB,平衡了大规模交易的需求和网络性能。
最大GAS单位:定义单个交易可执行的最大操作量,目前设置为1,000,000。
执行成本:通过基准框架和Valgrind分析工具评估Move指令和本机函数的相对成本。
存储成本:考虑数据访问和永久存储成本,设计存储GAS计划。存储GAS费 = 项目费 + (字节费 × 字节数)
读取、创建和写入操作
稳定的GAS单位成本
固定的GAS单位成本有助于保持GAS计划稳定,与APT市场价值脱钩。Aptos团队以约3位数精度表示GAS单位,例如转账交易成本约为700个GAS单位。
社区参与
Aptos鼓励社区成员:
GAS成本调整机制
GAS计划作为链上配置存储,可通过Aptos治理提案进行更改。设计为可扩展,允许通过治理提案升级。复杂的GAS公式更改需要更新节点软件并获得大量采用,最后通过治理提案批准。
未来展望
作为Move的首个可行GAS框架,Aptos团队计划: