Substrate之旅2:Substrate开发环境搭建

article/2025/8/26 8:06:32

我们将基于Ubuntu 18.04来安装Substrate的开发环境。

我这边Ubuntu是安装在VMWorkstation虚拟机上的。

安装依赖

安装参考:https://docs.substrate.io/tutorials/v3/create-your-first-substrate-chain/#install-rust-and-the-rust-toolchain

但具体的操作步骤,不妨根据这篇文档来做。因为下面的步骤是我亲身验证有效的。

安装所需要的包

执行以下的包,安装预编译好的包:

sudo apt update && sudo apt install -y git clang curl libssl-dev llvm libudev-dev

这里有的包之前也许搭建其它的开发环境已安装,不用太关心。

如果安装过程中出错,建议采用折半的方式,把出错安装包找出来,最终确认上述所有的依赖包都安装成功。

安装rust与rust 工具链

  1. 安装rustup
curl https://sh.rustup.rs -sSf | sh
  1. 配置PATH,以便可以找到rust的包管理工具Cargo
source ~/.cargo/env

可以通过以下命令来验证上述安装与配置是否成功:

cargo --version
  1. 配置rust工具链使用最新的稳定版本
rustup default stable
rustup update
  1. 更新rust工具链到nightly发布版本,并将wasm的nightly编译目标加到工具链
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

完成上述的更新与配置好,可以执行以下命令,来验证rust及相应的工具链已安装成功:

rustc --version
rustup show

成功的输出类似如下:
在这里插入图片描述
在这里插入图片描述

注1:上述的命令也可以通过一个脚本整合起来,以便一次性把SUbstrate开发环境所需要的依赖安装好。具体请参考: https://getsubstrate.io/。这个我就没有试了,有兴趣的同学可以自己试试。

注2:上述依赖包的安装,由于网络等原因,不妨多试几次。

设置开发环境

这里主要是下载节点服务器包,以及节点访问Web页面。下载的是都是源码,需要我们自己编译与部署。

之所以下载源码,主要是方便我们后续的学习、改造等。

Substrate node template下载与编译

  1. 克隆node模板仓库
git clone https://github.com/substrate-developer-hub/substrate-node-template
  1. 切换节点模板源码目录,并取出latest标签
cd substrate-node-template
# We want to use the `latest` tag throughout all of this tutorial
git checkout latest

目前源代码仓库的情形如下:
在这里插入图片描述

  1. 编译该节点模板

编译前不妨记录目录,以便与编译后对比,以便查找编译输出
在这里插入图片描述

cargo build --release

这个初次编译的时间会有些长,请耐心等待。编译好的目录如下:
在这里插入图片描述
编译输出的可执行文件等,就在target目录中。

front-end template下载与编译

  1. 先确认下node的版本,因为node版本要不小于v14
node --version

在这里插入图片描述

显然,我Ubuntu的node版本缺省太低。请切换到高版本:

nvm ls
nvm use 16.14.0
node --version
  1. 安装yarn,并确认该工具已安装成功
yarn --version
npm install -g yarn

在这里插入图片描述

  1. 克隆front-end template git仓库
git clone https://github.com/substrate-developer-hub/substrate-front-end-template
  1. 更新该前端模板仓库至latest标签
cd substrate-front-end-template
# We want to use the `latest` tag throughout all of this tutorial
git checkout latest
  1. 安装该前端工程的依赖包
yarn install

启动模板节点并简单探索

在本地启动一个Substrate节点

启动Substrate节点:

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

其中选项--dev,表示以开发模式启动该节点,那每次启动,该节点启动的就一个全新的链,从创世区块开始。

节点启动成功后,应该类似下图:
在这里插入图片描述
上图显示已有2个区块产生,只是还没有得到最终确认而矣。

启动前端模板

启动前端模板工程:

yarn start

这个启动会缺省打开Ubuntu中的浏览器,速度会比较慢,请耐心等待。

通过模板前端查看本地启动的Substrate区块链

在这里插入图片描述

碰到的问题与分析

通过宿主机的浏览器打开模板前端报错

在这里插入图片描述

这是由于跨域保护导致的报错。


http://chatgpt.dhexx.cn/article/qO8Qh11l.shtml

相关文章

认识substrate

了解substrate 前言从互联网发展看区块链未来--跨链跨链是未来 公链和联盟链可交互的联盟链polkadot组件substrate介绍区块链的构造组件substrate开发的特性 polkadot :substrate 之上建立如何通过substrate构造自己的链一键链上升级--永不分叉为什么需要链上升级 substrate与企…

CydiaSubstrate框架

往期推荐 Frida Native层HOOK Frida hook Java层 frida环境安装 Xposed框架安装、使用及插件开发 需要相关资料的朋友,可以【[加入此处即可打包获取]】 Cydia Substrate是一个基于Hook的代码修改框架,可以在Android、iOS平台使用,并实现…

创建Substrate 私有网络

创建Substrate 私有网络 所有区块链都要求网络中的节点就消息集及其顺序达成一致,以成功创建区块并从一个区块推进到下一个区块。每个块代表特定时间点的数据状态,节点对状态的一致称为共识。有几种不同的算法用于达成共识,包括:…

Build the Substrate Kitties Chain(中文翻译)

欢迎来到Substrate Kitties课程。 本课程将向您介绍如何构建一个可以创建并持有非同质化代币(NFT,这个NFT名称为Substrate Kitties)的区块链。课程分为部2部分: Part I 描述如何构建Kitties pallet,以及这个pallet怎样…

oracle substrate,Substrate 2.0 带来了哪些改变?

Substrate 已到了 2.0 版本的主要里程碑处。该区块链框架现在包含链下工作机(off-chain workers)和 70 多个可组合模块,并为构建优化的、与 Polkadot 兼容的、可投入生产的区块链奠定了坚实的基础。数十个实时区块链已经在运行 Substrate 2.0,包括Polkad…

Substrate 基础教程(Tutorials) -- 授权特定节点

五、授权特定节点 在添加可信节点中,您看到了如何使用一组已知的验证器节点构建一个简单的网络。该教程演示了一个简化版的许可网络(permissioned network)。在一个被许可的网络中,只有被授权的节点(authorized nodes…

Substrate常见问题

目录标题 1. Rust nightly not installed, please install it!2. Rust WASM toolchain not installed, please install it!3. use pallet::*出错4. failed to load manifest for workspace member5. error: failed to run custom build command for node-template-runtime v4.0…

什么是 Substrate

如果你关注了 Polkadot 项目,可能会多次看到「Substrate」这个词。 它是 Polkadot 项目的重要组成部分,但有关它的信息非常少。 白皮书或黄皮书里找不到, 至少没有专门的介绍「Substrate」。 从较高的层面来看,Substrate 是一个可…

Substrate之旅3:Substrate是什么

Substrate 是从Polkadot 孵化出来的项目。它是一个用来搭建区块链的通用框架,具有以下特点: 可扩展。模块化。开源。 Substrate的框架与组件 框架 其中: P2P: libp2p网络协议,Substrate基于该协议实现了一个不带任何假设的&…

Substrate 基础 -- 教程(Tutorials)

官网 github DOC 面向未来的区块链框架 Substrate 使开发人员能够快速、轻松地构建适合任何用例的未来 证明区块链(future proof blockchains)。 Substrate 文档包括区块链构建器(blockchain builders)和parachain 项目团队的概念、过程和参考信息。…

【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )

文章目录 一、substrate 简介二、substrate 相关文档资料 一、substrate 简介 substrate 官网 : http://www.cydiasubstrate.com substrate 框架 是 Cydia 下的逆向工具 , 该框架是开源的 ; substrate 配合对应的 so 动态库 和 头文件 , 可以在 Android / iOS 平台中独立运行 …

ios tableView那些事(三)给tableView添加些图片

感觉光有数据的tableView很丑&#xff0c;那么我们就来美化下吧&#xff0c;加一些图片 #import <UIKit/UIKit.h> /*tableview 一定要用到这两个delegate UITableViewDataSource,UITableViewDelegate */ interface ViewController :UIViewController <UITableViewDa…

QT的TableView实现多级表头

QT的TableView实现多级表头 最近项目需要支持多级表头&#xff0c;QT本身不支持。可重写QHeaderView表头实现。 demo如下&#xff1a; FSItemDelegate.h #pragma once/* 自定义委托类 */ #include <QItemDelegate> #include <QSpinBox> #include <QDoubleSpin…

QML类型:TableView

一、描述 TableView 显示从内置 QML 类型&#xff08;如 ListModel 和 XmlListModel&#xff09;创建的模型中的数据&#xff0c;这些模型仅填充 TableView 中的第一列。要创建具有多列的模型&#xff0c;请使用 TableModel 或继承 QAbstractItemModel 的 C 模型。 TableView…

QML TableView表格使用示例

前言 QML中实现表格可以使用多种方式&#xff0c;比如直接使用ListView&#xff0c;定义每一行delegate&#xff0c;或者自定义Rectangle&#xff0c;放到Flipable中组合使用。Qt Quick Control1中 从5.1版本开始就提供了表格控件&#xff0c;但是感觉不怎么好用&#xff0c;在…

Qt TableView的简单使用

软件环境&#xff1a; ubuntu -------------------------------------------------------------------------------------------------------- 最终效果图&#xff1a; --------------------------------------------------------------------------------------------------…

PyQt5 TableView组件

一、话不多说&#xff0c;先看图 本次要实现的是主窗口内添加widget组件&#xff0c;widget内设置成垂直盒布局&#xff0c;然后在布局中添加tableView、PushButton组件 二、看main函数 if __name__ __main__:app QApplication(sys.argv)# 现在这创建 主窗口 &#xff08;不然…

优雅的开发TableView

前言 UITableView&#xff08;UITableViewController&#xff09;是iOS开发使用频率最高的一个组件。 不管是使用UITableView还是还是UITableViewController&#xff0c;在开发的时候&#xff0c;我们都需要实现两个协议&#xff1a; UITableViewControllerDataSourceUITabl…

JavaFX控件——TableView

在JavaFX 应用中对创建表格最重要的是TableView, TableColumn和TableCell这三个类。 你可以通过实现数据模型&#xff08;data model&#xff09; 和 实现 单元格工厂(cell factory) 来填充表格。 表格类提供了表格列嵌入式的排序能力和必要时调整列宽度的功能。 下面开始学…

ios开发:多个Section的TableView

开发多个Section的tableView。 首先应该考虑到数据源该如何得到 我们这里可以通过两种方式:第一种是读取plist文件。第二种是通过代码进行数据存储以及读取。 多个Section需要的数据源是一个字典&#xff0c;字典里的内容是一个数组。在plist文件中可以这样去创建 在.h文件中…