区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > LTC > 正文

WAS:本体技术视点 | 一文读懂Substrate的合约机制(一)_IME

作者:

时间:

本期我们分享来自本体技术团队的一篇文章的第一部分,关于Substrate的合约机制分析。

01

概要

Substrate把整个程序逻辑分为Host和Runtime部分,Host功能是固定的,偏向于底层,是采用原生执行的方式,而Runtime部分是动态的,偏上层业务,编译成Wasm字节码,这样可以随时升级,其执行在Wasm虚拟机中。合约功能作为上层业务,放置在runtime中,由contractpallet模块负责。通过分析本文主要要搞清楚两个问题:

1.合约设计的经济模型:交易执行收费和存储租金机制;

中国文物交流中心主任:要向文物本体原型数字复刻品说“不”:金色财经报道,在中国文物交流中心召开党委扩大会暨规范数字化藏品授权专题会上,中国文物交流中心主任谭平指出,要向文物本体原型数字复刻品说“不”,鼓励创作者基于文物内涵,设计并开发具有艺术性、独特性和稀缺性的文博数字藏品,借助新技术讲好中国故事。

中国文物交流中心将对单纯发售文物本体原型发售项目进行坚决清理和整顿,并建立基于国有文物藏品进行创作的审核机制,充分保障相关博物馆在创作和发售过程中的参与权,为文博文创及博物馆馆藏资源授权推广及知识产权服务领域发展提供正向引导,发挥“国家队”站位引领和导向作用。(速途网)[2022/4/13 14:21:53]

2.合约的执行机制:本身跑在Wasm虚拟机里的runtime里是怎么跑用户Wasm合约的。

本体推出区块链领域信用评分体系OScore:调研机构CryptoDiffer发推称,本体(Ontology)推出Oscore,这是去中心化世界的首个信用评分。根据本体发布的文章,本体信用评分体系OScore是基于本体区块链平台数据形成的由用户自我管理的评分体系,能够帮助DeFi等用户跨钱包管理资产的去中心化身份解决方案。OScore能够全方位展示用户在链上的信用情况,还有助于预测用户潜在的信用风险。

OScore基于用户的真实链上数据,为用户生成信用评分。数据来源主要包含数字资产持有情况、数字资产交易记录、KYC(实名认证)状态、违约情况记录、历史信用数据。[2020/10/21]

Runtime的contractpallet扩展了Currencytrait的账户系统,因此可以和其他基于Currency实现账户系统的模块一起使用。扩展的合约账户具有实例化合约和调用其他合约和非合约账户的功能。

本体网络质押ONT已接近1.5亿美元 占总流通量近三分之一:本体官方刚刚发布推文称,本体网络质押的ONT数量以达到200,868,016枚,价值已接近1.5亿美元,所质押的ONT数量几乎达到了ONT流通总量的三分之一。[2020/7/20]

为了合约代码的复用,将合约代码的上传部署和合约账户的实例化分成两部分,多个合约账户可以从同一份上传的code进行实例化。

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联络我们。

来源:金色财经

标签:STOWASIMETIMcrystoWAS币JMTimeFansTime

LTC热门资讯
ELS:陈健勇:12.7黄金探底回升还会跌吗?白银TD最新行情分析_SIU

    上周黄金复盘及今日走势分析:国际黄金隔夜探底拉升,第二日亚欧盘始终围绕1844-1837窄幅整理,欧盘未能延续破高走强,意味着美盘冲高回落概率加大.

MAC:广东迅视资管 “物美+多点”解决零售数字化“痛点”_celsius币用途

近年来,物美集团通过做强数字化技术、融合线上线下业务,努力提升消费体验,打造良好购物环境,巩固了自己作为国内大型连锁超市的地位.

区块链:金妍解币:比特币以太如期下跌 多头困难重重 今日最新行情解析_人工智能

  金妍解币:比特币以太如期下跌多头困难重重今日最新行情解析      不知大家是否有看到我上午写的分析策略,目前行情走势基本在朝着金妍上午的预测一般走.

MES:美国全球顾问公司CEO:对比特币和以太坊而言 2021年将是重要的一年_比特币市值多少亿美元

美国全球顾问公司首席执行官FrankHolmes表示,2021年不仅对黄金,而且对于加密货币来说,都是重要的一年.

MES:德邻资本带你了解:关于Polkadot平行链插槽拍卖你需要知道的几个关键信息_Polkadot

??首先,基于德邻资本对波卡生态的长期研究,我们须明确指出,在平行链正式链接到波卡(Polkadot)或Kusama中继链并实现跨链之前,波卡(Polkadot)并没有实现真正的生态.

Kusama:迅视财经 一次特别的卡车全国巡展_polkadot100

西门子12月8日以“共创智能基础设施新生态”为主题,在上海启动智能基础设施集团卡车巡展。西门子特别为巡展打造了以卡车为载体的创新移动展示平台,全面呈现公司在智能配电、电机智能控制保护和智能楼宇等.