学习Substrate 开发的第一步就是环境搭建,本文的目标是把Substrate编译出来,用 substrate 启动一个## 背景 先简单介绍一下[Polkadot](https://learnblockchain.cn/categories/Polkadot) 与[Substrate](https://learnblockchain.cn/tags/Substrate) 。 Polkadot 目标是成为一个连接各

编译 substrate

下载substrate代码

先 git clone substrate 的代码:

git clone https://github.com/paritytech/substrate.git

github.com 在国内也是龟速,因此我在 gitee.com fork 了一份,大家可以用以下命令 clone 代码:

git clone https://gitee.com/lbc-team/substrate.git

编译 substrate

cd substrate cargo build --release

大约半小时,可以去喝个茶, 出现以下提示就成功了;

Finished release [optimized] target(s) in 29m 46s

编译完之后,在 /target/release/会生成 substrate 可执行文件。

运行 substrate 节点网络

现在可以使用 substrate 来启动网络了,substrate用很多个命令(参数),可使用./target/release/substrate --help查看用法。

这里使用 --dev 以开发者模式运行节点网络:

./target/release/substrate --dev

substrate 启动后,会输出如:当前的客户端版本,节点名,数据库目录,节点身份 ID等等:

2020-05-31 19:34:44 Running in --dev mode, RPC CORS has been disabled. 2020-05-31 19:34:44 Substrate Node 2020-05-31 19:34:44 ✌️  version 2.0.0-rc2-12b6c5dbe-x86_64-macos 2020-05-31 19:34:44 ❤️  by Parity Technologies <admin@parity.io>, 2017-2020 2020-05-31 19:34:44 📋 Chain specification: Development 2020-05-31 19:34:44 🏷  Node name: homely-volcano-9283 2020-05-31 19:34:44 👤 Role: AUTHORITY 2020-05-31 19:34:44 💾 Database: RocksDb at /Users/emmett/Library/Application Support/substrate/chains/dev/db 2020-05-31 19:34:44 ⛓  Native runtime: node-251 (substrate-node-1.tx1.au10) 2020-05-31 19:34:44 📦 Highest known block at #173 2020-05-31 19:34:44 Using default protocol ID "sup" because none is configured in the chain specs 2020-05-31 19:34:44 🏷  Local node identity is: 12D3KooWEE4Gd4isn28sPsXQ3YBSPUqfpxmfVvKHzBxjWhEQPxV9 (legacy representation: QmVDyLimoKQjaGttsnvSdjLeJUkdxReUL6eDrF4LB7BL1h) 2020-05-31 19:34:44 〽️ Prometheus server started at 127.0.0.1:9615 2020-05-31 19:34:44 👶 Starting BABE Authorship worker 2020-05-31 19:34:45 🙌 Starting consensus session on top of parent 0x8c3fffd67f59db85fd468dc5a4386ccaf58dc2841ab0370f8d94b6f5413a511f

我们可以通过 https://polkadot.js.org/apps/ 查看当前节点的运行状态(也可以进行简单的交互), 打开 https://polkadot.js.org/apps/ 可以看到如下界面:

Substrate 开发系列 - 环境搭建

默认时浏览器是连接当前的Polkadot CC1 候选主网,不过我们可以让他连接到本地节点,点设置->选择节点及配置地址前缀, 方法如下:

Substrate 开发系列 - 环境搭建

节点依然下拉框拉到最下面,选择 Local Node(Own, 127.0.0.1:9944) , 地址前缀选:Substrate(generic) 如下图:

Substrate 开发系列 - 环境搭建

配置好,别忘了点保存哦,连接好,就可以看到本地网络的块高了,如下图:

Substrate 开发系列 - 环境搭建

我们还可以测试一下转账功能:

Substrate 开发系列 - 环境搭建

运行多节点

在本地启动一个多节点连接的网络也是可以的,可以先以alice的名义启动一个验证人节点:

./target/release/substrate --alice --chain local

--chain local 表示是一个本地的网络模式,之前我们是开发者模式,这个时候不会出块, 需要等待另一个节点加入才能出块。

再(在另一个终端)启动另一个节点, 注意这里需要用 -d 来定义一个数据目录:

./target/release/substrate --bob  --chain local  -d ./bob

现在可以看到浏览器可以开始出块了。

好了, 已经踏入了Substrate开发的第一步。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注