43
社区成员
发帖
与我相关
我的任务
分享
Substrate 环境搭建非常非常非常容易出错,不出意外的话这可能是本教材最难的一步。
本文是作者在 macOS 12.4、Ubuntu 20.04 均测试成功后总结出来
如有环境搭建相关问题,请发邮件到 baidu.eth@gmail.com。如能解决,必竭尽所能。
本节包含知识点:
在搭建之前,默认您已将系统环境配置好
1. 安装所需的系统组件
sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl libz-dev
2. 设置 toolchain 为 stable
rustup default stable
3. 配置 wasm toolchain
ustup update
rustup target add wasm32-unknown-unknown --toolchain stable # 注意这里是 stable,作者尝试过 nightly,发现失败几率非常大,所以改用这个
4. 克隆 substrate 节点模板
git clone -b v2.0.1 --depth 1 https://github.com/substrate-developer-hub/substrate-node-template
cd substrate-node-template
5. 初始化 WebAssembly 构建环境
make init
6. 编译节点模板
make build
7. 启动节点
./target/release/node-template --dev --tmp
控制台输出
Jul 24 17:19:39.469 WARN Running in --dev mode, RPC CORS has been disabled.
Jul 24 17:19:39.481 INFO Substrate Node
Jul 24 17:19:39.481 INFO ✌️ version 2.0.1-571448f-x86_64-macos
Jul 24 17:19:39.481 INFO ❤️ by Substrate DevHub <https://github.com/substrate-developer-hub>, 2017-2022
Jul 24 17:19:39.481 INFO 📋 Chain specification: Development
Jul 24 17:19:39.482 INFO 🏷 Node name: gleaming-competition-2753
Jul 24 17:19:39.482 INFO 👤 Role: AUTHORITY
Jul 24 17:19:39.489 INFO 💾 Database: RocksDb at /var/folders/ps/9_nr7z195dnd07r12nv4h3tm0000gn/T/substrate3MlnOb/chains/dev/db
Jul 24 17:19:39.489 INFO ⛓ Native runtime: node-template-100 (node-template-1.tx1.au1)
Jul 24 17:19:39.665 INFO 🔨 Initializing Genesis block/state (state: 0xdf3b…ab40, header-hash: 0xd7b1…4950)
Jul 24 17:19:39.681 INFO 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.
Jul 24 17:19:39.722 INFO ⏱ Loaded block-time = 6000 milliseconds from genesis on first-launch
Jul 24 17:19:39.725 WARN Using default protocol ID "sup" because none is configured in the chain specs
Jul 24 17:19:39.728 INFO 🏷 Local node identity is: 12D3KooWQ3gFPhfHDF63FQpH9onCpJ2nWb5RXMMqQLdGaefF5PrM (legacy representation: 12D3KooWQ3gFPhfHDF63FQpH9onCpJ2nWb5RXMMqQLdGaefF5PrM)
Jul 24 17:19:40.094 INFO 📦 Highest known block at #0
Jul 24 17:19:40.096 INFO 〽️ Prometheus server started at 127.0.0.1:9615
Jul 24 17:19:40.101 INFO Listening for new connections on 127.0.0.1:9944.
Jul 24 17:19:42.012 INFO 🙌 Starting consensus session on top of parent 0xd7b14bc0a9ca49f05b454901d2f0c22c60189d5c8702b23d89cd5de85b034950
Jul 24 17:19:42.019 INFO 🎁 Prepared block for proposing at 1 [hash: 0xcbf2783864e5384bd0d4e948c51a71ca0ea2277d9d0b9dde1c29617e48ce2d85; parent_hash: 0xd7b1…4950; extrinsics (1): [0xbebf…29c4]]
Jul 24 17:19:42.023 INFO 🔖 Pre-sealed block for proposal at 1. Hash now 0xb1ea5fd73181c8bf8836f3399983e445d15e8510e5c5b6563791f14886473274, previously 0xcbf2783864e5384bd0d4e948c51a71ca0ea2277d9d0b9dde1c29617e48ce2d85.
Jul 24 17:19:42.024 INFO ✨ Imported #1 (0xb1ea…3274)
至此,substrate 节点搭建完成
1. 游览器打开(如果打不开请使用众所周知的工具)
https://polkadot.js.org/apps/#/explorer
2. 点击页面左上角,连接本地节点

3. 连接成功后显示节点信息
