# MOVE语言首个GAS机制设计:链上GAS消耗计算详解10月14日,一项重要的区块链技术突破被公布。这是MOVE语言首次设计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. 执行成本 3. 读取成本4. 写入成本最终交易费用 = 消耗的GAS总量 * GAS单价例如,一笔交易消耗670个GAS单位,用户指定的GAS单价为100 Octa/单位,则最终费用为670 * 100 = 67000 Octa = 0.00067 APT。如果交易执行耗尽GAS,发送方将按最大GAS数量收费,且交易所有更改将被撤销。## GAS计划表构建### 1. 基本配置GAS计划包含一些与单个操作无关的组成部分,如交易大小和最大GAS单位。### 2. 交易规模大多数交易规模在千字节级别,但发布MOVE模块可达数千字节。目前交易规模上限设为64KB,在规模和可访问性间取得平衡。### 3. 最大GAS单位 定义单笔交易可执行的最大操作量,设为1,000,000。即使最大框架升级也仅使用不到90%。### 4. 执行成本评估通过基准框架和Valgrind分析工具,估算所有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计划稳定。团队以约3位数精度表示GAS单位,如转账交易成本约700个GAS单位。## 社区参与作为社区项目,成员可以:1. 指出GAS计划不合理之处2. 参与社区讨论3. 就相关治理提案投票## GAS成本调整GAS计划作为链上配置存储,可通过治理提案更改。设计为可扩展,允许升级。复杂变更需更新节点软件并获大量采用,最后通过治理提案批准。## 未来工作作为MOVE首个可行GAS框架,未来工作包括:1. 降低执行成本2. 实现多维GAS计算3. 缓解状态膨胀问题团队正探索每个项目TTL概念,在TTL到期时删除未访问的状态项目。
MOVE语言首创GAS机制:链上资源消耗计算详解
MOVE语言首个GAS机制设计:链上GAS消耗计算详解
10月14日,一项重要的区块链技术突破被公布。这是MOVE语言首次设计GAS机制,被官方称为"一场冒险"。该机制定义了执行和存储链上交易所需的计算和存储资源量的抽象计算方法,用于计算执行交易期间的GAS消耗。
设计流程
为了有效执行,设计团队遵循了以下流程:
设计原则
主要原则包括:
GAS计算方法
用户提交交易时需指定两个数量:
交易执行过程中将收取:
最终交易费用 = 消耗的GAS总量 * GAS单价
例如,一笔交易消耗670个GAS单位,用户指定的GAS单价为100 Octa/单位,则最终费用为670 * 100 = 67000 Octa = 0.00067 APT。
如果交易执行耗尽GAS,发送方将按最大GAS数量收费,且交易所有更改将被撤销。
GAS计划表构建
1. 基本配置
GAS计划包含一些与单个操作无关的组成部分,如交易大小和最大GAS单位。
2. 交易规模
大多数交易规模在千字节级别,但发布MOVE模块可达数千字节。目前交易规模上限设为64KB,在规模和可访问性间取得平衡。
3. 最大GAS单位
定义单笔交易可执行的最大操作量,设为1,000,000。即使最大框架升级也仅使用不到90%。
4. 执行成本评估
通过基准框架和Valgrind分析工具,估算所有MOVE指令和原生函数的相对成本。考虑系统稳健性和安全性,得出最终执行指令数。
5. 存储成本
考虑存储设备带宽、IOPS容量和永久占用成本,设计存储GAS计划。基本公式为:
存储GAS费 = 项目费 + (字节费 * 字节数)
读取、创建和写入操作
定义了6个GAS参数构成总费用:
稳定的GAS单位成本
固定GAS单位成本有助于保持GAS计划稳定。团队以约3位数精度表示GAS单位,如转账交易成本约700个GAS单位。
社区参与
作为社区项目,成员可以:
GAS成本调整
GAS计划作为链上配置存储,可通过治理提案更改。设计为可扩展,允许升级。复杂变更需更新节点软件并获大量采用,最后通过治理提案批准。
未来工作
作为MOVE首个可行GAS框架,未来工作包括:
团队正探索每个项目TTL概念,在TTL到期时删除未访问的状态项目。