创建第一个 Substrate 区块链

article/2025/8/26 8:14:34

创建第一个 Substrate 区块链

区块链软件使单个计算机(称为节点)能够相互通信以形成分散的点对点 (P2P) 网络。为保证链上数据的安全和链上的持续进展,节点通过某种形式的共识,就每个数据块中的数据状态以及块的处理顺序达成一致。

安装所需的软件包

OSInstallation commands
Ubuntu or Debiansudo apt update && sudo apt install -y git clang curl libssl-dev llvm libudev-dev
Arch Linuxpacman -Syu --needed --noconfirm curl git clang
Fedorasudo dnf update sudo dnf install clang curl git openssl-devel
OpenSUSEsudo zypper install clang curl git openssl-devel llvm-devel libudev-devel
macOSbrew update && brew install openssl
WindowsRefer to this installation guide.

如果您使用的是 macOS 并且没有安装 Homebrew,请运行以下命令来安装 Homebrew:

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

安装 Homebrew 后,运行brew install openssl

安装 Rust 和 Rust 工具链

手动安装和配置 Rust:

  1. rustup通过运行以下命令进行安装:

    curl https://sh.rustup.rs -sSf | sh
    
  2. bin通过运行以下命令,配置当前 shell 以重新加载 PATH 环境变量,使其包含 Cargo目录:

    source ~/.cargo/env
    
  3. stable通过运行以下命令将 Rust 工具链配置为默认为最新版本:

    rustup default stable
    rustup update
    
  4. 通过运行以下命令添加nightly版本和nightlyWebAssembly ( ) 目标:wasm

    rustup update nightly
    rustup target add wasm32-unknown-unknown --toolchain nightly
    
  5. 通过运行以下命令来验证您的安装:

    rustc --version
    rustup show
    

    前面的步骤将引导您完成 Rust 和 Rust 工具链的安装和配置,以便您自己看到完整的过程。

启动区块链节点并探索

节点编译后,您就可以开始使用前端模板探索它的功能了。

启动本地 Substrate 节点

启动本地 Substrate 节点:

  1. 打开终端外壳。

  2. 切换到编译 Substrate 节点模板的根目录。

  3. 通过运行以下命令以开发模式启动节点:

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

    node-template命令行选项指定您希望正在运行的节点如何操作。在这种情况下,该--dev选项指定节点使用预定义的development链规范在开发者模式下运行。默认情况下,当您按 Control-c 停止节点时,此选项还会删除所有活动数据,例如密钥、区块链数据库和网络信息。使用该--dev选项可确保您在任何时候停止和重新启动节点时都处于干净的工作状态。

  4. 通过查看终端中显示的输出来验证您的节点是否已启动并成功运行。

    终端应显示类似于此的输出:

2021-11-24 15:36:35 Running in --dev mode, RPC CORS has been disabled.
2021-11-24 15:36:35 Substrate Node
2021-11-24 15:36:35 ✌️  version 4.0.0-dev-82b7c2c-aarch64-macos
2021-11-24 15:36:35 ❤️  by Substrate DevHub <https://github.com/substrate-developer-hub>, 2017-2021
2021-11-24 15:36:35 📋 Chain specification: Development
2021-11-24 15:36:35 🏷 Node name: six-wash-9274
2021-11-24 15:36:35 👤 Role: AUTHORITY
2021-11-24 15:36:35 💾 Database: RocksDb at /tmp/substrateP1jD7H/chains/dev/db
2021-11-24 15:36:35 ⛓  Native runtime: node-template-100 (node-template-1.tx1.au1)
2021-11-24 15:36:35 🔨 Initializing Genesis block/state (state: 0xa59b…5331, header-hash: 0xc5d2…37f3)
2021-11-24 15:36:35 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.
2021-11-24 15:36:35 ⏱  Loaded block-time = 6s from block 0xc5d2fdad35e14684753f087c1a20f022274e154d39add4f7efe34e95476a37f3
2021-11-24 15:36:35 Using default protocol ID "sup" because none is configured in the chain specs
2021-11-24 15:36:35 🏷 Local node identity is: 12D3KooWG5niQF5bjsFao3D8DZRpUUB6uWZC2pK8hCDZ94zsr8Sc
2021-11-24 15:36:35 📦 Highest known block at #0
...
...
...
2021-11-24 15:36:40 💤 Idle (0 peers), best: #1 (0xd2b5…d03f), finalized #0 (0xc5d2…37f3), ⬇ 0 ⬆ 0

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

我们将在后面的教程中查看日志输出中报告的详细信息。目前,只需要知道您的节点正在运行并生成块即可。

  1. 保持显示节点输出的终端打开以继续。

启动前端模板

Substrate 前端模板由用户界面组件组成,使您能够与 Substrate 节点交互并执行一些常见任务。

要使用前端模板:

  1. 在您的计算机上打开一个新的终端 shell,切换到安装前端模板的根目录。
  2. 通过运行以下命令启动前端模板:
yarn start

3.在浏览器中打开http://localhost:8000查看前端模板。

顶部有一个账户选择列表,用于在您想要执行链上操作时选择要使用的账户。模板的顶部还显示有关您连接到的链的信息。

前端模板顶部

您可能还注意到,前端模板显示了一个带有一些预定义账户的余额表,并且其中一些账户预配置了资金。您可以使用此示例数据来尝试转账等操作。

预定义的账户和余额

将资金从一个帐户转移到另一个帐户

既然您在本地计算机上运行了一个区块链节点,并且您有一个可用于执行链上操作的前端模板,那么您就可以探索与区块链交互的不同方式了。

默认情况下,前端模板包含多个组件,可让您尝试不同的常见任务。对于本教程,您可以执行简单的转账操作,将资金从一个账户转移到另一个账户。

将资金转入账户:

  1. 在余额表中,请注意预定义的帐户(例如 dave)没有与其关联的资金。

找到一个零资金的账户

​ 在 Balances 表下,前端模板还显示一个Transfer组件。您使用此组件将资金从一个帐户转移到另一个帐户。

2.复制并粘贴dave帐户的地址,以指定您将资金转移到的地址。

3.指定至少1000000000000作为转账金额,然后点击提交

将资金转入账户

4.请注意,余额表中的值随转移而更新。

显示更新的余额

5.检查事件组件以查看与您刚刚完成的传输相关的事件。

Substrate 区块链将异步操作的结果报告为事件,因此您可以使用事件组件查看作为传输的一部分执行的每个操作的详细信息。例如:

记录为异步操作结果的事件

当交易完成并包含在区块中时,您会看到类似于以下内容的确认消息:

😉 Finalized. Block hash: 0xda7e9e935abf5a3a2fdb0a27d67cd7a69e628165b5827255af2635ba226411a4

停止本地节点

传输成功后,您可以继续探索前端模板组件或停止本地 Substrate 节点。因为您--dev在启动节点时指定了该选项,所以停止本地节点会停止区块链并清除所有持久块数据,以便您下次启动节点时可以以干净的状态开始。

停止本地 Substrate 节点:

  1. 返回到显示节点输出的终端 shell。
  2. 按 Control-c 终止正在运行的进程。
  3. 验证您的终端返回到substrate-node-template目录中的终端提示符。

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

相关文章

技术干货|通过 Substrate - IBC 实现 Substrate 资产跨链

全长 2760 字&#xff0c;预计阅读 10 分钟 作者&#xff1a;DaviRain 撰文&#xff1a;MiX 微信交流&#xff1a;MixMetaverse 章鱼网络 DaviRain 受邀参加 RUST.CC 中国大会&#xff0c;分享主题为《通过 Substrate - IBC 实现 Substrate 资产跨链》的 Workshop。主要讨论了…

Substrate之旅4:基于Substrate私有链的搭建

参考&#xff1a;https://docs.substrate.io/tutorials/v3/private-network/ 实现目标 这里我们学习&#xff1a; 如何基于Substrate来构成一个两节点的链网络。如何配置使用Aura的共识机制。如何定制账户&#xff0c;并设置其为Aura的Validator。 启动两个节点的链网络 确…

cydia java_Cydia Substrate 使用

前言 我们以前介绍过Xposed&#xff0c;这个只可以Hook java层&#xff0c;如果要hook native层就要使用InlineHook了&#xff0c;以前的文章都有提到。今天介绍一个既可以Hook java层又可以Hook native层的框架&#xff0c;就是Cydia Substrate。 环境 安装Cydia Substrate ap…

10E polkadot substrate : 配置合约托盘

• 介绍 • 添加托盘依赖项 • 实现 Contracts 配置特征 • 公开合约 API • 更新外部节点 • 启动本地 Substrate 节点 • Substrate Tutorials , Substrate 教程 • Contact 联系方式 • 介绍 如果您完成了构建本地区块链教程&#xff0c;那么您已经知道 Substrate节点模板…

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

我们将基于Ubuntu 18.04来安装Substrate的开发环境。 我这边Ubuntu是安装在VMWorkstation虚拟机上的。 安装依赖 安装参考&#xff1a;https://docs.substrate.io/tutorials/v3/create-your-first-substrate-chain/#install-rust-and-the-rust-toolchain 但具体的操作步骤&…

认识substrate

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

CydiaSubstrate框架

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

创建Substrate 私有网络

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

Build the Substrate Kitties Chain(中文翻译)

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

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

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

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

五、授权特定节点 在添加可信节点中&#xff0c;您看到了如何使用一组已知的验证器节点构建一个简单的网络。该教程演示了一个简化版的许可网络&#xff08;permissioned network&#xff09;。在一个被许可的网络中&#xff0c;只有被授权的节点&#xff08;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 项目&#xff0c;可能会多次看到「Substrate」这个词。 它是 Polkadot 项目的重要组成部分&#xff0c;但有关它的信息非常少。 白皮书或黄皮书里找不到&#xff0c; 至少没有专门的介绍「Substrate」。 从较高的层面来看&#xff0c;Substrate 是一个可…

Substrate之旅3:Substrate是什么

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

Substrate 基础 -- 教程(Tutorials)

官网 github DOC 面向未来的区块链框架 Substrate 使开发人员能够快速、轻松地构建适合任何用例的未来 证明区块链(future proof blockchains)。 Substrate 文档包括区块链构建器&#xff08;blockchain builders&#xff09;和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;在…