风险提示:理性看待区块链,提高风险意识!
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如何打造数字资产跨链枢纽?
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
比特币
61025.05 USDT
¥443,340.89
-1.5%
Solana
137.42 USDT
¥998.34
-0.75%
Filecoin
4.3458 USDT
¥31.57
-2.12%
Curve
0.2957 USDT
¥2.15
-6.81%
柚子
0.5733 USDT
¥4.16
-0.16%
Terra Classic
8.17E-5 USDT
¥0.00
-1.38%
Shiba Inu
1.721E-5 USDT
¥0.00
-3.8%
Conflux
0.1558 USDT
¥1.13
-1.52%
狗狗币
0.1222 USDT
¥0.89
-3.86%
dYdX
1.3769 USDT
¥10.00
-1.17%
Arweave
25.922 USDT
¥188.32
-9.75%
以太坊
3383 USDT
¥24,577.16
-0.39%
最新快讯
更多
币界网午报|6月27日午间重要动态一览
2024-06-27 12:00:26
已有超89%的BLAST空投被领取,领取地址超25万
2024-06-27 11:54:22
新SwellrswETH池已上线Penpie
2024-06-27 11:34:46
Custodia要求上诉法院指示地区法院撤销对Custodia主账户的拒绝
2024-06-27 11:26:52
Custodia寻求法官撤回授权美联储拒绝其主账户申请的决定
2024-06-27 11:26:52
XT即将上线新一期鲨鱼鳍理财
2024-06-27 11:26:33
WEEX唯客将于7月1日开启第二期Launchpool,投入WXT瓜分37,000ZK
2024-06-27 11:25:57
下载币界网APP