【substrate框架及稳定的substrate节点版本安装】
前提
在window安装的wsl的ubuntu环境下开发
1.设置本地环境
curl https://getsubstrate.io -sSf | bash -s -- --fast
这个脚本将会下载并安装 Rust 开发环境,git 等等。
2.可工作的 Substrate 节点版本和兼容的 Substrate UI(运行一个)
现在你已经在计算机上成功安装了 Substrate 框架,我们可以使用预先配置的模板快速启动自定义 Substrate 节点。
2.1
Substrate 是个快速发展的项目,这意味着可能会不时地引入 breaking changes 。为了改善本教程的开发体验,我们创建了一个稳定的,可工作的 Substrate 节点版本和兼容的 Substrate UI,你将在本教程中使用它们。
git clone --branch v1.0 https://github.com/substrate-developer-hub/substrate-package
substrate-package
仓库包含两个文件夹:
substrate-node-template
substrate-ui
暂时不会涉及到 substrate-ui
,但从名字我们就能知道,该文件夹主要包含一份预构建的,由 React 编写的 UI,并且可以被自定义地扩展。
我们将主要在 substrate-node-template
文件夹中工作,该文件夹包含一个最小、可运行的 Substrate 节点程序,我们将开始修改它。
2.2
进入substrate-package目录下,
使用 substrate-package-rename.sh
脚本重命名我们的项目和项目文件夹:
我们可以看到substrate-node-template
文件夹被修改成了appletrace
2.3 构建我们的预配置节点
进入刚刚重命名的 appletrace文件夹并构建我们的预配置节点:这个过程可能会花费一段时间
cd appletrace ./scripts/init.sh ./scripts/build.sh cargo build --release
见下图
上面的配置无误后,就可以启动节点:
./target/release/appletrace --dev
还可以看到块的产生
3. 使用 Polkadot-JS Apps UI,一个适应你自定义节点的通用用户界面。
git clone https://github.com/polkadot-js/apps/ git checkout 38eebe yarn && yarn start
进入substrate-package文件夹中,拉下polkadot项目
文件目录如下:
运行该项目
访问项目界面 http://localhost:3000/
要将 UI 指向 local node,你需要调整 设置,只需从下拉列表中选择 'Local Node (127.0.0.1:9944)':
Settings > remote node/endpoint to connect to > Local Node (127.0.0.1:9944)
点击 Save and Reload 后,你应该注意到 Polkadot-JS Apps UI 刷新成功。请注意,你应该在浏览 Polkadot UI 前输入 ./target/substratekitties --dev
,启动并运行你的链。
请注意,稍后我们将在 Section 1 > Viewing a Structure 的 "Registering a Custom Struct" 一节中导入带有其它类型定义的 JSON 文件。
让我们进入 Transfer 页面并进行交易。名为 "Alice" 的默认帐户预先存储了大量的 Units。
通过发送交易与 "Bob" 分享一些。你应该会在交易完成时看到确认信息,并且 Bob 的余额也会更新
到这里,你已经看到了我们创建、运行并且与我们自己的本地 Substrate 链进行交互的整个过程是有多么快速。
4.常见模式
Rust编译器
使用强类型编程语言(如 Rust)的众多优点之一是,编译器十分有用并且会对代码中出现的错误提供修复建议。通过这篇文章来学习更多内容,关于Rust编译器如何帮助你。当然你还需要学习Rust,参考Rust 官方书籍。
更新Runtime
开始创建自定义Substrate runtime之前,可以帮助你迭代和运行代码的模式。
Substrate runtime代码被编译为两个版本
- WebAssembly(Wasm) image
- 标准可执行文件
Wasm文件被用来编译二进制文件的一部分,因此在构建可执行文件之前需要先编译Wasm image。
./scripts/build.sh // 构建 Wasm cargo build --release // 构建 binary
此外,当你对节点进行更改时,之前旧版本节点生成的块仍然存在。你可能会注意到,当重启节点时,块只会从中断处继续生成。
但是,如果你对 runtime 的改动内容很多,那么可能需要使用以下命令清除链上先前所有的块:
完成所有这些后,你将能够再次启动带有最近更改的节点:
./target/release/substratekitties --dev
基于 Substrate 开发时,你应该总是使用最新的 Rust stable 和 nightly 版本。
我们在 build.sh
所在的目录中提供了另一个脚本,你应该在每次启动一个新项目时运行它:
./scripts/init.sh
此脚本只是简单更新 Rust 版本和相关工具。确保你没有奇怪的编译错误。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!