一、入门Substrate之构建你的第一条Substrate chain并与之交互

一、入门Substrate之构建你的第一条Substrate chain并与之交互

1.环境依赖

1).确保brew为最新,并安装openssl

# 安装brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

# 更新brew
brew update
brew install openssl

2).Rust 开发者环境

对于大多数用户,你可以运行脚本来自动执行下面列出的步骤:

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

如果出现任何错误,请按照以下步骤在您的机器上手动配置 Rust

首先安装和配置rustup

# Install
curl https://sh.rustup.rs -sSf | sh
# Configure
source ~/.cargo/env

配置 Rust 工具链默认为最新的稳定版本,添加 nightly 和 nightly wasm 目标:

rustup default stable
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

3).Rust 配置检查

rustup show

这将显示如下输出:

一、入门Substrate之构建你的第一条Substrate chain并与之交互

2.下载、编译模板节点

1).克隆节点模板

git clone -b latest --depth 1 https://github.com/substrate-developer-hub/substrate-node-template

2).编译节点模板

# 进入源码文件夹
cd substrate-node-template
# 编译
cargo build --release

3.运行并查看你的节点

1).运行以下命令以启动您的节点:

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

注意标志:

  • --dev这设置了开发者节点
  • --tmp这会保存节点的所有活动数据(密钥、区块链数据库、网络信息等),并在您正确终止节点(使用ctrl+ c)后立即删除。因此,每次使用此命令开始时,您都会有一个干净的状态可以工作。

使用此命令,如果您的节点运行成功,您应该会看到如下内容:

一、入门Substrate之构建你的第一条Substrate chain并与之交互

如果后面的数字在finalized:增加,则您的区块链正在生成新块并就它们描述的状态达成共识!

4.使用Polkdot浏览器链接你的节点

点击此链接,将看到一下页面,注意不要停掉模板节点的运行

一、入门Substrate之构建你的第一条Substrate chain并与之交互
出现此画面表示节点已经可以和前端进行交互了
点击开发者,点击交易,就可以查看节点中pallet存在的功能
一、入门Substrate之构建你的第一条Substrate chain并与之交互
选择templateModule,在模板中提供了一个名字叫pallet-template的pallet,其中有两个功能,一个是存一个u32类型的数字,一个是触发一个错误
一、入门Substrate之构建你的第一条Substrate chain并与之交互
下面让我调用一下,doSomething,存一个数字88,并点击提交交易
一、入门Substrate之构建你的第一条Substrate chain并与之交互
点击签名并提交
一、入门Substrate之构建你的第一条Substrate chain并与之交互
表示交易成功
一、入门Substrate之构建你的第一条Substrate chain并与之交互
查看我们存入的数字
点击开发者中的链状态
一、入门Substrate之构建你的第一条Substrate chain并与之交互
选择templateModule
一、入门Substrate之构建你的第一条Substrate chain并与之交互
点击最右边的+号
一、入门Substrate之构建你的第一条Substrate chain并与之交互
成功查到自己存入的数字。

5.总结

我们已经成功构建运行了第一个Substrate chain,并使用Polkdot浏览器进行链接和交互。

下一篇文章将会对Substrate-node-template模板中的template pallet进行源码分析。

上一篇:向文件中写东西


下一篇:rust遇到了error[E0554]: `#![feature]` may not be used on the stable release channel