📢 股票资产上链,全球首发尽在 Gate!
Gate 携手 @xStocksFi 与 @BackedFi,正式上线全球首个股票衍生品市场,开启链上股票交易新纪元!
支持$TSLA, $NVDA, $CRCL, $AAPL 等热门股票:
💥 可加杠杆、做多做空
💰 全USDT计价,轻松管理风险收益
🔒 实物资产 100% 抵押
🔁 多链流转自由无阻
🌐 RWA × Web3,全新交互方式
CeFi 与 TradFi 的边界,已经彻底打破。
了解详情:https://www.gate.com/announcements/article/45926
#xStocksOnGate#
MOVE语言首创GAS设计 区块链项目探索新型资源计量模式
MOVE语言首创GAS设计:探讨区块链上的GAS消耗计算方法
近期,一个区块链项目公布了其GAS计划。由于MOVE语言之前版本并未考虑GAS机制,这是MOVE语言首次引入GAS设计,被称为"一次冒险"。
该项目的GAS计划阐明了制定GAS的原则、流程、计算方法、后期调整以及社区参与等方面。
GAS计量是许多区块链的基本概念,用于抽象计算执行和存储交易所需的计算和存储资源量。GAS计划确定了链上所有执行的成本,用于计算交易执行期间的GAS消耗。
实施流程
为有效执行,该区块链项目采取以下步骤:
核心原则
项目团队定义了以下原则:
操作成本应与网络可用资源直接相关,如CPU、内存、网络、存储I/O和空间使用等。技术和流程改进后,GAS成本应相应降低。
GAS应由链上治理设置,可灵活配置。
GAS可防止对网络固定资源的DoS攻击,并可根据网络情况通过治理建议快速调整。
GAS价格反映了加速增长和保持区块链普及性的愿景。
鼓励在设计中做出优良选择,如优先考虑安全性、模块化、断言等。
GAS计算方法
用户提交交易时需指定两个数量:
最大GAS数量:以GAS单位计量,表示用户愿意为执行交易花费的最大GAS单位数。
GAS单价:以每单位GAS的八进制计算,1八进制=0.00000001 APT。
交易执行过程中将收取:
最终交易费用 = 消耗的GAS总量 × GAS单价
例如,交易消耗670个GAS单位,用户指定GAS单价为100 Octa/单位,则最终费用为670 × 100 = 67000 Octa = 0.00067 APT。
若交易执行中耗尽GAS,发送方将按最大GAS量收费,且交易所做更改将被撤销。
GAS计划表的构建
GAS计划包含与单个操作细节无关的组成部分,如交易大小和最大GAS单位。
大多数交易规模在千字节级别。Move模块发布可达几千字节,框架约100 KB。用户模块通常在4KB到40KB之间。初始交易规模设为32KB,后根据社区反馈调整为64KB。
大规模交易可能提高网络带宽成本并影响性能。项目在最大规模交易大小和可访问性间寻求平衡。
GAS计划中的最大GAS单位定义了交易可执行的最大操作量。设置过高可能导致负面性能影响。经验表明,即使进行最大框架升级,也不到设定最大值(1,000,000)的90%。
团队构建基准框架并使用Valgrind分析Move VM,估算所有Move指令和本机函数的相对成本。考虑系统稳健性和安全性后,得出最终执行的机器指令数量。
存储GAS计划考虑了数据访问的瞬时稀缺性和永久磁盘占用成本。访问和存储状态项产生与验证区块链状态数据结构相关的成本。
存储GAS费 = 项目费 + (字节费 × 字节数)
读取、创建和写入操作
状态项访问分为读取、创建或写入三种类型:
每笔交易只需为同一资源的多次读/写支付一次费用。
稳定的GAS单位成本
固定的GAS单位成本有助于保持GAS计划不变,并与代币市场价值脱钩。项目以约3位数精度表示GAS单位,使转账交易成本约为700个GAS单位。
社区参与
作为社区项目,成员可以:
GAS成本调整
GAS计划作为链上配置存储,可通过治理提案更改。设计具有可扩展性,允许通过治理提案升级。随时间推移,GAS参数可根据用户反馈调整。
复杂的GAS公式更改需更新节点软件,大规模采用后通过治理提案批准使用新版本。
未来展望
作为Move首个可行的GAS框架,该项目为未来工作奠定基础:
降低执行成本:通过改进编译器和虚拟机效率。
多维GAS计算:允许用户为执行和存储指定单独预算,实现更细粒度的最大GAS价格定义。
缓解状态膨胀:探索每个项目TTL概念,在TTL到期时删除未访问的状态项目。
这一创新性GAS设计为MOVE语言生态系统开辟了新的可能性,未来有望进一步优化和完善。