substrate轻松学系列4:substrate快速了解

有以下三种方式来使用substrate开发区块链:

  • 直接使用substrate node

上一节中快速体验substrate创建一条链就是使用的这种方式,这种方式基本上不修改代码,配置一下chain_spec即可(也可以用默认的)。如果玩过bitcoin或者ethereum开发的小伙伴,想想一下修改genesis block的配置起一个类似的节点直接山寨一条链,基本就和这种使用方式类似。

  • 使用substrate frame构建运行时

这种方式就是substrate提供的大的框架下,定义自己的运行时(也就是链的一些具体逻辑),然后形成一条新的链。这个理解起来可能有些费解,举个例子,我们在前面的章节给大家介绍过以太坊的架构,也是常见的区块链的架构,在这个架构中,有一个组件是共识,不同的链可能使用不同的共识。如果我们要实现有着不同共识的链,我们就可以用这种方式来开发,将里面对应的共识模块弄成我们想要的即可。在这种方式中,主要开发的就是这些模块,substrate中叫做pallet。subtrate自身提供了一些lib和pallet,我们也可以自己开发一些pallet。

这种方式也是这份教程教大家的方式。

在这里,还要补充一点,对于大多数使用substrate开发的链来说,可能像网络、共识、密码库等等这些模块都不想动,他们只想在某些基础上添加一些自己业务相关的逻辑快速的完成开发,就像我们上一节快速的搭建一条链那样。基于这种情况,substrate提供了一条链的基本配置的模板node-template(也可以把它理解为使用substrate开发一条链的示例)。所以,对于大多数使用substrate开发链的情况就变成了基于node-template,然后使用substrate开发自己业务逻辑的pallet,加到node-template上,就完成了整条链的开发。

  • 使用substrate core

这种方式是最灵活的方式,但是也是难度最大的方式。这种方式可以忽略substrate中提供的frame,支持完全自定义的开发。这种方式后续在本教程中不加讨论。

2 substrate链的架构

既然我们主要是使用substrate构建运行时的方式开发,那么这样开发出来的链的架构是怎么样的呢?substrate官方文档已经给我们画出来了,如下:

substrate架构图

在这个架构中,已经给我们提供了基本的网络、rpc等这些模块,那么其它的应用逻辑模块就可以使用前面说的第二种方式进行开发,从而实现特定应用的特定的区块链。

3 参考文档

docs.substrate.io/v3/getting-start...

docs.substrate.io/v3/getting-start...

本作品采用《CC 协议》,转载必须注明作者和本文链接
令狐一冲
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
253
粉丝
97
喜欢
300
收藏
128
排名:367
访问:2.4 万
私信
所有博文
社区赞助商