template文件夹可以删_Substarte节点模版介绍(substrate-node-template)

本文介绍了substrate-node-template,它是Substrate的简化版,专为开发者设计,方便快速搭建区块链应用。文中详细阐述了其项目结构,包括node、pallets、runtime和target目录的功能,并提供了安装和运行教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cdb414430130e82994650be97d74f40c.png

本来我是打算介绍Substrate项目结构的,猛地一看,Substrate整个项目结构实在有点复杂,不适合我们初学者。我们还是从substrate-node-template开始介绍吧。

有朋友要说了,我们凭本事学substrate,还看个山寨版代码,看substrate项目源代码它不香吗?香香香……香菜要在这里澄清一个事情,substrate-node-template它不是山寨代码,而是substrate的亲儿子,波卡polkadot的亲孙子呀。从代码复杂程度看,Polkadot > Substrate > substrate-node-template。Substrate是将核心框架从Polkadot里边抽出来,让通用功能打包出来独立运行。而substrate-node-template则是将Subtrate的底层实现细节剥离出来,让开发者可以集中精力关注自己开发的应用程序及相关的配置。

听不懂?更简单地说,substrate-node-template只留下了开发者开发需要用到的文件,其它的,都通过依赖清单和调用一笔带过了。举个例子,Substrate源代码项目里有很多实现好的功能,比如资产管理、智能合约等,如果你用substarte-node-template编写自己的应用程序时要用到的话,只需轻松地在cargo.toml里引入依赖,在runtime运行配置清单里告诉下大家你要使用它,然后就可以调用这些功能了。项目结构精简了很多,目的也很明确:开发者只管知道怎么用就行了,其它不需要操心。就好比用电脑的人,不需要关心操作系统底层是怎么运行的,他只需要知道我做什么事情用什么软件就可以了。

看到这里,你是不是在想,这个substrate-node-template使用体验设计得这么好,肯定简单好用,忍不住摩拳擦掌想要用用看呢?安排!

我们先来看看如何安装substrate-node-template。

在命令行终端里输入下面语句,这是安装substrate-node-template及其运行环境所需依赖的命令。大约需要30分钟左右,一键搞定不用烦。

curl https://getsubstrate.io -sSf | bash -s -- --fast

如果你已经在substrate-node-template模版基础上编写好了自己的应用程序,或者压根就没改动过代码,只想空跑一下这条链看看。那么,就按照下面程序,先编译,再运行。

编辑命令如下:

cargo build –release

启动区块链节点。编译好之后,输入下面语句,执行二进制可执行文件,以开发者模式配置清单来启动节点:

./target/release/node-template --dev

完成上面两步之后,你就可以成功地看到终端开始显示区块链开始出块的信息了!是不是很激动!香菜第一次看到这个画面的时候,真的是特别地激动,这是人生发布的第一条区块链,具有非凡的意义!

632984fa8e61e950c994bb85b7f1b2bc.png

直观地看完区块链出块后,我们来认识一下substrate-node-template的项目结构吧。对了,先在命令行终端里ctrl+c终止掉运行的程序先,不然它会一直不停地空跑着哦。


首先打开下载了substrate-node-template的文件夹(如果还没下载的朋友,请参见本文前面的安装substrate-node-template部分)。香菜用的是vscode编辑器,目录结构看起来如下图:

b978f360b84d5456daa5558bac1306a9.png

当中我用红色方框把比较重要的文件夹圈了起来。下面对这几个文件夹做一下简单说明,想要了解细节的话,可以往下看思维导图。

每一套substrate-node-template包含下面几大块,我会同时以面包店作为比喻,以便大家理解。

  • node——提供基本节点功能,里边包含底层网络怎么通信、共识怎么达成的细节。Node好比面包店,在区块链上启动了很多不同的节点,可以看作是开了很多面包连锁店。只有面包实体店开了起来,才能在店里提供服务。相类似,只有node跑了起来,才能在此基础上运行应用程序,提供不同的服务。
  • pallets——各种应用服务。开发人员自己开发的应用,就是放在这个文件夹里。我们先来了解下什么叫pallet。Pallet是substrate自己叫的一个名字,就相当于我们平常说的模块包(package)。一个pallet(也即一个package),定义了一组功能代码。比如资产管理功能、智能合约功能。开发人员编好的源代码就放在这个文件夹下,需要使用时,就在runtime里边配置调用即可。当然,我们前面也说过,Substrate官方提供的一些pallets,它的源代码没有放在substrate-node-template下面的pallets文件夹里,但如果我们区块链项目想要用,可以直接在runtime里配置使用就可以了。pallet可以类比成面包店里的面包、蛋糕、咖啡、奶茶等,面包店可以提供的服务。
  • runtime——运行时的配置清单。它是连接pallet服务和node节点的中间人及协调人,使区块链能正常运作关键部分。runtime可以比作面包店店员,他不仅了解面包店里可以提供什么服务,还对每种服务什么价格,面包、咖啡放在哪里非常清楚,有了他,面包店才有可能正常运作。
  • target——编译好的可执行文件存放目录

下面,我用一个思维导图来给大家解释substrate-node-template整个目录结构里每一个文件的用处。

d4a6b098ac65250be696e0fadbdc1c01.png
香菜呕心之作:substrate-node-template项目结构思维导图

简单了解了substrate-node-template目录结构之后,下一篇开始,香菜要带你开始深入了解Substrate的组成部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值