教程|创建你的第一条 Substrate 区块链
导语
在本教程中,你将学习编译和启动预先写好的 Substrate 链,将该链用作加密货币,并使用通用的 Substrate 用户界面与之交互。
本教程针对的是以前从未接触过 Substrate 的人,希望对 Substrate 的所有内容有一个基本而快速的了解。我们不会深入探讨在 Substrate 上开发的复杂性,但希望能满足你的好奇心,让你继续这段旅程。
本教程大约需要 1 小时才能完成。我们将编译 Rust 代码,但你不需要成为 Rust 程序员来完成本指南。我们为你提供工作代码并解释如何使用它。
我们只希望你:
熟悉软件开发和使用终端 熟悉区块链和智能合约平台 愿意学习区块链开发的前沿技术
如果你在本教程中遇到问题,我们会提供帮助!你可以创建一个新的 issue [1]或在 Riot [2]中联系我们。
你将做什么
在开始之前,我们先列出在本教程中需要做的事情:
设置你的电脑使之能在 Substrate 上开发 使用模板立即开始运行 Substrate 使用通用的用户界面与我们的区块链进行交互 在用户帐户之间进行转账
听起来很有道理吧?很好,那我们开始吧!
通常我们会教你更多关于 Substrate 区块链开发框架的知识,但是,为 Substrate 开发设置计算机可能需要一段时间。
为了节省时间,你可以先进行安装。在下一节中,所有东西都编译好之后,你将了解更多有关 Substrate 和我们正在构建的东西。
设置好你的计算机
先决条件
要在 Substrate 上开发,你的计算机需要一些先决条件来建立开发环境。
“设置你的计算机可能是本教程中最困难的部分,所以不要因此而气馁。
Substrate 开发
如果你使用的是基于 Unix 的计算机(Linux、MacOS),我们创建了一个简单的一行代码来为你安装所有这些先决条件:
curl https://getsubstrate.io -sSf | bash -s -- --fast
“如果在运行此脚本之前未安装 Rust,请确保在继续之前添加 restart 终端(脚本输出的最后一行中给出的命令)。
如果你想了解这个脚本的具体功能,请访问:https://getsubstrate.io
该脚本会自动安装:
CMake[3] pkg-config[4] OpenSSL[5] Git[6] Rust[7]
如果你使用的是 Windows,而没有 Linux 的 Windows 子系统[8],那么这个过程有点困难,不过这里[9]有个很好的文档供你参考。
编译 Substrate
先决条件安装完成后,你需要为我们的项目设置框架。Substrate 节点模板(Substrate Node Template)是在 Substrate 上开始构建的一个很好的起点。
复制 Substrate 节点模板(版本 v2.0.0-alpha.5
)
git clone -b v2.0.0-alpha.5 --depth 1 https://github.com/substrate-developer-hub/substrate-node-template
初始化 WebAssembly 开发环境
# Load settings into the current shell script if you can't use rustup command
source ~/.cargo/env
# Update Rust
rustup update nightly
rustup update stable
# Add Wasm target
rustup target add wasm32-unknown-unknown --toolchain nightly
为你的工作创建一个分支并编译你的 Substrate 节点
cd substrate-node-template/
git checkout -b my-first-substrate-chain
cargo build --release
根据硬件的不同,最终编译可能最多需要 25 分钟。在这段时间里,请继续阅读下面的内容,以了解更多有关 Substrate 的信息。
背景信息
在这部分内容中,我们将向你介绍 Substrate 区块链开发框架。你当前正在开发的节点模板是基于此框架构建的。
区块链的背景
区块链开发很难。
区块链网络由在点对点网络(P2P)上连接在一起的各个节点组成。节点是网络上运行区块链软件的个人计算机,它可以使一切正常工作。
要发挥作用,区块链节点需要:
数据库 P2P 网络 共识引擎 交易处理 状态转换函数 还有更多...
这些技术跨越了计算机科学的广阔领域,因此通常需要专家团队来开发。所以,大多数区块链项目都不是从头开始开发的。相反,这些项目是从已经存在的区块链存储库中分叉出来的。例如:
比特币存储库被分叉创建了:Litecoin、ZCash、Namecoin、Bitcoin Cash 等
以太坊储存库被分分创建了:Quorem、POA 网络、KodakCoin、MusicCoin 等
以这种方式构建区块链具有严重的局限性,因为这些现有平台的设计并没有考虑到修改问题。
Substrate
Substrate 是一个开源、模块化和可扩展的框架,用于构建区块链。
Substrate 从一开始就进行了设计,为创新者设计和构建下一个区块链网络提供了一个灵活的框架。它提供了构建自定义区块链节点所需的所有核心组件。
Substrate 节点模板
我们以节点模板的形式提供了一个开箱即用的基于 Substrate 的节点,在你阅读时,这个模板应该正在进行编译。不做任何更改,你和你的朋友就可以共享此节点模板,并创建一个有加密货币的区块链网络和有关的一切!
我们将教你如何在 “开发” 模式下使用此节点,它允许你使用单个节点运行网络,并拥有一些有资金的预配置用户帐户。
与节点交互
现在,你的节点已经完成编译,现在开始展示所有内容是如何开箱即用的。
启动你的节点
运行以下命令启动节点:
# Purge chain cleans up any old data from running a `dev` node in the past
# You will be prompted to type `y`
./target/release/node-template purge-chain --dev
# Run your actual node in "development" mode
./target/release/node-template --dev
如果节点运行成功,你应该看到这样的内容:
$ ./target/release/node-template --dev
2020-03-11 07:42:55 Running in --dev mode, RPC CORS has been disabled.
2020-03-11 07:42:55 Substrate Node
2020-03-11 07:42:55 version 2.0.0-alpha.5-da88e4a-x86_64-linux-gnu
2020-03-11 07:42:55 by Anonymous, 2017-2020
2020-03-11 07:42:55 Chain specification: Development
2020-03-11 07:42:55 Node name: deranged-faucet-4432
2020-03-11 07:42:55 Roles: AUTHORITY
2020-03-11 07:42:55 Initializing Genesis block/state (state: 0x3e8a…1c6b, header-hash: 0x1990…e24d)
...
2020-03-11 07:43:00 Imported #1 (0x857f…9b4e)
2020-03-11 07:43:00 Idle (0 peers), best: #1 (0x857f…9b4e), finalized #0 (0x1990…e24d), ⬇ 0 ⬆ 0
2020-03-11 07:43:05 Idle (0 peers), best: #1 (0x857f…9b4e), finalized #0 (0x1990…e24d), ⬇ 0 ⬆ 0
2020-03-11 07:43:06 Starting consensus session on top of parent 0x857f7b9091f37926a67c403ef0a19fdb31b31491dbc1d2a5e70c000f23c99b4e
2020-03-11 07:43:06 Prepared block for proposing at 2 [hash: 0xf2b6f619c42824690c39c022af815fd59e7497b7ca321cf866bd9a16aed75ae7; parent_hash: 0x857f…9b4e; extrinsics (1): [0x5283…d9f3]]
2020-03-11 07:43:06 Pre-sealed block for proposal at 2. Hash now 0x4db38cd7afa731a88cd0cf963de1bf728d8cee96ea5db1718b7c32121aa286a6, previously 0xf2b6f619c42824690c39c022af815fd59e7497b7ca321cf866bd9a16aed75ae7.
2020-03-11 07:43:06 Imported #2 (0x4db3…86a6)
如果 best:
之后的数字在增加,那说明你的区块链正在生成新的区块!
启动前端
为了与本地节点交互,我们将使用 Polkadot js Apps 用户界面,通常简称为“Apps”。尽管名称如此,但 Apps 将与任何基于 Substrate 的区块链(包括我们的区块链)一起工作,而不仅仅是波卡。
在 web 浏览器中,导航到 https://polkadot.js.org/apps。
在Settings
选项卡上,确保已连接到 Local Node
或 ws://127.0.0.1:9944
。
“一些浏览器,特别是 Firefox,不会从 https 网站连接到本地节点。一个简单的解决方法是尝试另一个浏览器,比如 Chromium。另一个选项是在本地接入此接口。https://github.com/polkadot-js/apps#development
交互
选择 Accounts 选项卡,你将看到你有权访问的测试帐户。有些,像 Alice 和 Bob,已经有了资金!
你可以试着通过点击“发送”按钮将一些资金从 Alice 转到 Charlie 。
如果一切顺利,你会看到一些弹出的通知,显示“ Extrinsic Success ”,然后 Charlie 的账户余额将增加。
创建你的账户
你可以通过选择 + Add Account
按钮创建自己的帐户。它还没有任何代币,但你可以从 Alice 或任何其他已经有资金的帐户发送一些代币。只有你(和你的浏览器)知道你自己帐户的私钥,这意味着除了你之外,没有人可以转账这些代币。
下一步
这就是你创建第一个 Substrate 区块链旅程的结尾啦。
你已经启动了一个基于 Substrate 的区块链,在该链上附加了一个用户界面,并在用户之间进行了代币的转账。我们希望你能继续学习 Substrate。
下一步可能是:
在 “启动专用网络”[10] 教程中,使用更多节点去中心化你的网络。 在 Build a dApp[11] 教程中添加自定义功能。
如果你在本教程中遇到任何问题或希望提供反馈,请随时开启 GitHub issue 或联系我们的 Riot 频道。
GitHub issue :https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/issues/new
Riot:https://riot.im/app/#/room/!HzySYSaIhtyWrwiwEV:matrix.org
中文视频:搭建 Substrate 开发环境
参考链接
issue : https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/issues/new
[2]Riot : https://riot.im/app/#/room/!HzySYSaIhtyWrwiwEV:matrix.org
[3]CMake: https://cmake.org/install/
[4]pkg-config: https://www.freedesktop.org/wiki/Software/pkg-config/
[5]OpenSSL: https://www.openssl.org/
[6]Git: https://git-scm.com/downloads
[7]Rust: https://www.rust-lang.org/tools/install
[8]Linux 的 Windows 子系统: https://docs.microsoft.com/en-us/windows/wsl/install-win10
[9]这里: https://substrate.dev/docs/en/overview/getting-started
[10]“启动专用网络”: https://substrate.dev/docs/en/tutorials/start-a-private-network/
[11]Build a dApp: https://substrate.dev/docs/en/tutorials/build-a-dapp/
[12]https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/: https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/
原文:https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/[12]
编译:PolkaWorld 社区
欢迎学习 Substrate:
https://substrate.dev/
关注 Substrate 进展:
https://github.com/paritytech/substrate
关注 Polkadot 进展:
https://github.com/paritytech/polkadot
申请 Bootcamp:
https://bootcamp.web3.foundation/
更多内容:
Substrate 概览|Substrate 的三种使用方式
Substrate VS Smart Contracts 1
Substrate 入门 - Runtime 的 Wasm 与 native(九)
Web3 基金会「开放资助计划」来了!全程公开透明,最高 3 万美金
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!