本期我们分享来自本体技术团队的一篇文章的第一部分,关于Substrate的合约机制分析。
01
概要
Substrate把整个程序逻辑分为Host和Runtime部分,Host功能是固定的,偏向于底层,是采用原生执行的方式,而Runtime部分是动态的,偏上层业务,编译成Wasm字节码,这样可以随时升级,其执行在Wasm虚拟机中。合约功能作为上层业务,放置在runtime中,由contractpallet模块负责。通过分析本文主要要搞清楚两个问题:
1.合约设计的经济模型:交易执行收费和存储租金机制;
FIL突破9美元:金色财经报道,行情显示,FIL突破9美元,现报9.02美元,日内涨幅达到20.91%,行情波动较大,请做好风险控制。[2023/2/19 12:16:13]
2.合约的执行机制:本身跑在Wasm虚拟机里的runtime里是怎么跑用户Wasm合约的。
Runtime的contractpallet扩展了Currencytrait的账户系统,因此可以和其他基于Currency实现账户系统的模块一起使用。扩展的合约账户具有实例化合约和调用其他合约和非合约账户的功能。
为了合约代码的复用,将合约代码的上传部署和合约账户的实例化分成两部分,多个合约账户可以从同一份上传的code进行实例化。
DeFIL2.0 FILST标准算力通证质押挖矿现已开启:据悉,Filecoin去中心化金融服务平台DeFIL2.0 FILST质押挖坑已于今日开启,用户现可通过Uniswap或者FILST首发交易所安银购买FILST后质押到DeFIL.ORG中进行挖矿。截止2021.8.25 16:00 UTC+8,矿池总质押量超115000 FILST,收益增强指数为10.15x。当前全网质押率为5.9%(<60%),挖矿收益的60%全部分配给质押用户,30%用于销毁平台治理通证DFL(将于今晚第一次销毁)。[2021/8/25 22:36:38]
02
Filecoin网络目前FIL流通量约为1.37亿FIL:据IPFS100报道,Filfox浏览器数据显示,Filecoin网络当前区块高度为865074,全网有效算力为6.613EiB,总质押量约为8431万枚FIL,活跃矿工数为2501个,每区块奖励为25.1967FIL,近24小时产出量为356909FIL,24小时平均挖矿收益为0.0517FIL/TiB,目前FIL流通量为137124949FIL。目前有效算力排名前三的分别为:f0127595(时空云)以118.07PiB暂居第一,f0135467(RRM-雅典娜)以106.34PiB位居第二,f0123261(LDPool)以104.58PiB位居第三。[2021/6/21 23:53:02]
合约的经济模型
为了避免垃圾交易和恶意合约占用计算和存储资源,合约的设计考虑了交易执行收费和合约存储收费逻辑。当合约账户的余额不够支付存储租金时,合约的存储会被清理并进入tombstone状态。
合约的生命周期
alive状态的合约信息
当合约处于正常工作状态,其主要有以下信息:
tombstone状态的合约信息
当合约进入tombstone状态后,合约的所有存储都会被清理,合约信息里只有一个对storage_root+code_hash进行hash的值。
合约的复活
合约进入tombstone状态后,技术上是可以进行恢复的。首先需要准备一本新临时合约T,往T合约的存储中插入原合约中的key-value对,使storageroot和原合约完全一致,然后调用restore_to合约接口,这个接口会检查当前合约的storageroot是否和要恢复的tombstone一致,如果满足要求那么就使原合约复活,并且将当前的临时合约的资产转移到复活合约,并销毁当前临时合约。
执行合约的Gas收费
交易的sender必须在每个call中指定gaslimit,未使用完的gas会在调用结束后返还。当到达了指定的gaslimit后,那么所有的call和相关的状态变更只会在当前调用的合约层进行回滚,比如,合约A调用B,并且B执行时gas不够,那么所有B的调用将被回滚。如果A能对错误进行正确处理,那么A的其他调用和状态变更依然可以进行持久存储。初看起来这样做是一个极大的限制,但其实是底层增加了灵活性,因为并不是所有的调用都是灾难性的,因此给了调用方可以进行合理的判断和处理的机会;如果想要其他链那种出错就完全回滚的方式,那么可以在调用B出错后A也直接报错回滚A的变更。
对于Wasm的每一个指令和host函数都设置了对应的InstructionWeight。
runtime会准备一个gas(amount:u32)的计费函数,在Wasm合约上传后,立刻会对Wasm中的每一个函数进行计费函数的插入生成新的code。后续合约的执行都以新的code为准。
下一期我们将继续围绕Substrate的合约存储的收租机制、Wasm合约限制、合约对外部交易的接口等方面展开。
如有任何疑问,可通过research@ont.io联络我们。
来源:金色财经
???行情不在于大小,抓住即可,利润不在于多少,积累便是。别总奢望暴风雨,没有准备好的追求有时候就是灾难,有多少人是每天有计划的交易,有多少人是每回有反省的成长,太多扛单的英雄事迹,太多锁仓的光.
昨天行情还是先向下试探行情为主,夜间最低探底至18900美元,但随后便快速反弹,再次回到19000美元上方,至目前的19200附近,可以看出空头试图发起进攻,但力量终究还是有限.
Filecoin主网上线之后,大家最关心的可能就是收益问题了,但是持续关注Filecoin的投资者可能会发觉,随着全网算力的增加,每天的单T收益正在变得越来越少.
行情分析: 比特币高位盘整许久,19500一直站不上去,很多人已经预测回调的到来,持有廉价筹码的人太多,机构和矿工就是昨日行情跳水最大的两拨卖压.
前面发了很多关于以太坊2.0的文章,却一直没有讲它的共识机制——PoS,为了帮助大家更好地了解它的运作模型,今天关于共识机制文章为大家简单地讲解目前主要的证明机制模型.
「琬点聊」是Blocklike推出的线上直播系列栏目,我们会不定期邀请近期最「搞事情」的交易所、热搜币种、能聊热点话题的大V进群分享讨论.