📢 Gate广场 #MBG任务挑战# 发帖赢大奖活动火热开启!
想要瓜分1,000枚MBG?现在就来参与,展示你的洞察与实操,成为MBG推广达人!
💰️ 本期将评选出20位优质发帖用户,每人可轻松获得50枚MBG!
如何参与:
1️⃣ 调研MBG项目
对MBG的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与MBG相关活动(包括CandyDrop、Launchpool或现货交易),并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是现货行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
MBG热门活动(帖文需附下列活动链接):
Gate第287期Launchpool:MBG — 质押ETH、MBG即可免费瓜分112,500 MBG,每小时领取奖励!参与攻略见公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通过首次交易、交易MBG、邀请好友注册交易即可分187,500 MBG!参与攻略见公告:https://www.gate.com/announcements
MOVE语言迎来首个GAS设计:链上资源计费方案全解析
MOVE语言首个GAS设计:链上GAS花费计算方法探析
MOVE语言早期版本并未考虑GAS机制,因此某区块链项目为其设计的GAS计划被称为"一场冒险"。该计划阐述了制定GAS的原则、流程、计算方法、后期调整等内容,并欢迎社区提供建议。
GAS计量是很多区块链的基本概念,用于衡量执行和存储链上交易所需的计算和存储资源。GAS计划确定了链上所有执行的成本,用于计算交易执行期间的GAS花费。
流程
该区块链项目的GAS实施流程包括:
原则
项目定义的原则包括:
计算GAS
用户提交交易时需指定:
交易执行过程中收取:
最终交易费用 = 消耗的GAS总量 × GAS单价
例如,一笔交易消耗670个GAS单位,用户指定GAS单价为100 Octa/单位,则最终费用为670 × 100 = 67000 Octa = 0.00067原生代币。
如果交易执行中GAS耗尽,发送方将根据最大GAS量收取费用,该交易所做的所有更改将被恢复。
建立GAS计划表
1. 基本配置
GAS计划包含与单个操作无关的组成部分,如交易大小和最大GAS单位。
2. 交易规模
大多数交易规模在千字节级别,但发布Move模块可达几千字节。最初将交易规模设为32KB,后根据社区反馈调整为64KB。
过大规模的交易会增加网络带宽成本并可能影响性能。内存池会倾向于忽略规模更大的交易,因此需在最大规模和可访问性间平衡。
3. 最大GAS单位
GAS计划中的最大GAS单位定义了交易可执行的最大操作数。设置过高可能导致负面性能影响,如无限循环。经测试发现,即使进行最大框架升级,也不到设定最大GAS单位(1,000,000)的90%。
4. 执行
团队构建了基准框架并使用分析工具评估执行成本,粗略估算了所有Move指令和本机函数的相对成本。通过考虑增强系统稳健性和安全性的编码范例,得出最终执行的机器指令数量。
5. 存储
访问账本状态项或数据时,节点会向存储设备发出读写请求。数据访问总数受存储设备带宽和IOPS容量限制。团队考虑这些成本设计存储GAS计划。
访问和存储状态项会产生与验证整个区块链状态的数据结构相关的成本。费用计算公式为:
存储GAS费 = 项目费 + (字节费 × 字节数)
读、创建和写
状态项访问分为读、创建和写三种类型:
存储相关成本基于每笔交易评估,多次读写相同资源只收取一次费用。
团队定义了6个GAS参数构成GAS总费用:
稳定的GAS单位成本
每个操作和交易本身需要相对于存储和执行成本的固定单位成本。固定GAS单位成本有助于保持GAS计划不变,并与原生代币市场价值脱钩。
团队以约3位数精度表示GAS单位,如转账交易成本约700个GAS单位。
社区参与
社区成员可以:
如何调整GAS成本?
GAS计划作为链上配置存储,可通过治理提案更改,并可无缝添加新指令或功能。
GAS计划设计可扩展,允许通过治理提案升级。随着项目改进和纳入用户反馈,GAS参数可逐步调整。
复杂的GAS公式更改需更新节点软件,大规模采用后通过治理提案批准使用新版本。
未来工作
作为Move首个可行GAS框架,该项目为未来工作奠定基础: