风险提示:理性看待区块链,提高风险意识!
Substrate高阶概览和在ChainX系统中的应用
首页 > 币界资讯 > 区块链知识 2020-07-23 11:52:45

讲者:金程鑫,ChainX核心开发者,原金链盟FISCO-BCOS核心开发者。

作为以太坊的隐形大脑,Gavin Wood曾经为以太坊模型构建做出了巨大贡献,以太坊的许多模型体系实际上是由Gavin Wood提出。在substrate中,Gavin Wood延续了以太坊中的很多设计。对于整个发张体系,可以总结为: 以太坊的“账户状态区块链”到substrate的“状态区块链”,而使用substrate开发的区块链比如ChainX,称为“功能区块链”。

对于以太坊这样在区块链体系上提出图灵完备的运行体系,运行DApp,我们将其称呼为具备逻辑功能的区块链。 将这类区块链与计算机程序相比,可以总结为: 计算机程序由 指令和数据 组成,程序运行于操作系统当中,接受输入并产生输出 而这类区块链与计算机程序的结构相对应,由 链上代码和链上存储 组成,运行于区块链的平台上,一般使用虚拟机作为运行环境,接受交易的调用作为输入,由于是异步的,用户可以查询执行后的数据作为输出 区块链节点下层则封装好分布式系统需要的组件,连接其所有的区块链节点。

因此将上页提出的结构与实际使用的区块链进行对应,以太坊的链上代码就是智能合约,链上存储就是世界状态,substrate在此基础上进一步抽象,其链上代码就是substrate的runtime,链上存储就是substrate维护的数据状态。而Runtime和数据状态共同构成了使用substrate开发的链的功能。

以太坊作为账户状态区块链,其存储状态的结构称为“世界状态”,由于以太坊中账户与合约都是账户,所以世界状态分为上层的账户数与合约内部存储的存储树,如图所示在从区块1000到1001的过程中,其中合约1下的存储的kv有变化,账户2的状态如以太坊数量等有变化。

在以太坊一笔交易的执行过程中,首先要区分其是账户或是合约,然后分别执行相应功能。

在substrate中对其做了抽象,移除了账户的概念,只保留了状态树。而状态树就是用来存储 k-v的数据,换句话说,可以把substrate的状态存储看做一个 k-v数据库 从区块链1000到1001的过程中, key1 和 key3产生了变化,因此在1001块的时候存储了新的key1和key3对应的值。

在交易执行中,不再区分账户合约的概念,直接使用交易(extrinsic) 调用了 Runtime的接口。

总结以上概念,可以看出在 链上存储部分, substrate与以太坊相比移除了账户的概念,直接抽象成为了 k-v 存储的概念,方便开发人员开发。 对于链上代码而言,substrate将其放在了核心的地位,而不是像以太坊一样只有合约才具备链上功能。 因此substrate比以太坊的抽象层次更高 那么substrate提出的Runtime就是一个实现链上功能的概念,甚至连原来以太坊智能合约的概念也可以纳为Runtime中的一个组件。

而ChainX就是在Runtime中开发了自己的功能。例如ChainX中由图中的这些模块组成。

这里择几个简单的例子介绍。 如在资产模块中,可以看到我们使用 AssetBalance 这个 map 的k-v管理的用户的资产数据 对外的接口提供了 register_asset注册资产,transfer转账等等。

比特币轻节点中,存储了比特币的区块头与相关的交易对外提供了一些相应的接口。

而在substrate中一些模型不符合我们的需求,我们对其进行了适配,比如我们将手续费单独成为一个模块进行处理,并且在交易中添加了类似gasprice的“手续费加速”的概念。

substrate的rpc提供可访问的部分比较底层,因此我们对其进行了改造,使ChainX能够提供我们这条链独有的rpc接口。

由于许多第三方如区块链,钱包等需要保留一份链外的全局状态数据,因此我们修改了一些substrate的源码,使其能在运行过程中将转台数据导出来如存储到redis当中。

此外还有许多改造,篇幅受限,只展示了部分。

上一篇: 波卡Polkadot跨链共识的创新之路
下一篇: ChainX如何打造数字资产跨链枢纽?
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥265,355.45
37,179.73 USDT
+0.28%
ETH以太坊
¥14,454.12
2,025.21 USDT
0%
USDT泰达币
¥7.20
1.01 USDT
-0.01%
BNB币安币
¥1,632.04
228.67 USDT
+1.39%
XRP瑞波币
¥4.32
0.60460 USDT
+0.32%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥400.19
56.07 USDT
+1.22%
OKBOK币
¥399.79
56.02 USDT
-0.38%
ADA艾达币
¥2.69
0.37630 USDT
-1.08%
DOGE狗狗币
¥0.55520
0.07780 USDT
-1.3%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.596E-5 USDT
-17.98%
Gala
¥0.18
0.025764 USDT
-6.2%
dYdX
¥22.73
3.2131 USDT
-0.69%
比特股
¥0.05
0.006581 USDT
+0.23%
PancakeSwap
¥15.71
2.221 USDT
-1.71%
Filecoin
¥31.66
4.4751 USDT
-0.49%
FTX Token
¥29.64
4.1896 USDT
+13.24%
Conflux
¥1.09
0.154 USDT
-2.28%
Yield Guild Games
¥2.57
0.363 USDT
-0.33%
Shiba Inu
¥0.00
8.18E-6 USDT
-2.04%
比特币
¥263,089.54
37191.32 USDT
+0.27%
比原链
¥0.07
0.009976 USDT
-4.95%
最新快讯
更多
CFTC向Coinbase用户发出传票要求提供交易活动的信息
2023-11-28 19:47:05
汇款公司Kalyssi旗下钱包已集成AlchemyPay法币出入金解决方案
2023-11-28 19:26:47
PlanB:比特币可能不会再低于3.5万美元
2023-11-28 19:23:01
摩根大通和Apollo计划推出代币化“企业主网”
2023-11-28 19:14:28
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
OKX上线MATIC链上赚币产品
2023-11-28 19:06:21
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
下载币界网APP