[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
rustc
编译器、cargo
构建和包管理器以及rustup
工具链管理器。在任何给定的时间点,都可以使用多个版本的 Rust。例如,有稳定版、测试版和夜间版的发布渠道。您可以使用该rustup
程序来管理环境中可用的构建以及用于不同 Rust 构建的工具链程序的版本。
编译rustc
器使您能够为不同的体系结构构建二进制文件,称为目标。目标由一个字符串标识,该字符串指定编译器应生成的输出类型。此功能很重要,因为 Substrate 被编译为原生 Rust 二进制文件和 WebAssembly 目标。
WebAssembly 是一种可移植的二进制格式,可以在任何现代计算机硬件上以及通过任何访问互联网的浏览器执行。WebAssembly (Wasm) 目标使 Substrate 能够生成可移植的区块链运行时。有关如何使用这些二进制文件的更多信息,请参阅构建过程。
clang
一个合适的集成开发环境 (IDE)。
apt
) 来安装build-essential
包:
sudo apt install build-essential
clang curl git make
libssl-dev
比如openssl-devel
.
sudo apt install --assume-yes git clang curl libssl-dev protobuf-compiler
sudo apt install --assume-yes git clang curl libssl-dev llvm libudev-dev make protobuf-compiler
rustup
安装程序并通过运行以下命令使用它来安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustc --version
rustup default stable
rustup update
nightly
:nightly
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup show
rustup +nightly show
# rustup show
active toolchain
----------------
stable-x86_64-unknown-linux-gnu (default)
rustc 1.62.1 (e092d0b6b 2022-07-16)
# rustup +nightly show
active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (overridden by +toolchain on the command line)
rustc 1.65.0-nightly (34a6cae28 2022-08-09)
git clone https://github.com/substrate-developer-hub/substrate-node-template
main
分支以获取最新代码。--branch
但是,如果你想使用与特定 Polkadot 版本兼容的 Substrate 分支,你可以使用命令行选项。点击Tags查看与特定 Polkadot 版本兼容的分支列表。cd substrate-node-template
git switch -c my-wip-branch
cargo build --release
brew install protobuf
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew --version
Homebrew 3.3.1
Homebrew/homebrew-core (git revision c6c488fbc0f; last commit 2021-10-30)
Homebrew/homebrew-cask (git revision 66bab33b26; last commit 2021-10-30)
openssl
.
在 macOS 上安装openssl
Rust 工具链:
brew update
openssl
通过运行以下命令安装包:
brew install openssl
rustup
安装程序并通过运行以下命令使用它来安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustc --version
rustup default stable
rustup update
nightly
:nightly
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup show
rustup +nightly show
# rustup show
active toolchain
----------------
stable-x86_64-apple-darwin (default)
rustc 1.61.0 (fe5b13d68 2022-05-18)
# rustup +nightly show
active toolchain
----------------
nightly-x86_64-apple-darwin (overridden by +toolchain on the command line)
rustc 1.63.0-nightly (e71440575 2022-06-02)
cmake
使用以下命令安装:brew install cmake
git clone https://github.com/substrate-developer-hub/substrate-node-template
main
分支以获取最新代码。--branch
但是,如果你想使用与特定 Polkadot 版本兼容的 Substrate 分支,你可以使用命令行选项。点击Tags查看与特定 Polkadot 版本兼容的分支列表。cd substrate-node-template
git switch -c my-wip-branch
cargo build --release
ls
和)ps
。通过使用适用于 Linux 的 Windows 子系统,您可以避免配置虚拟机映像或双引导操作系统。
要使用适用于 Linux 的 Windows 子系统准备开发环境:
wsl --install
wsl --list --online
apt
通过运行以下命令,使用 Ubuntu 高级打包工具 () 下载 Ubuntu 发行版的最新更新:
sudo apt update
sudo apt install --assume-yes git clang curl libssl-dev llvm libudev-dev make protobuf-compiler
rustup
安装程序并使用它通过运行以下命令为 Ubuntu 发行版安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustc --version
rustup default stable
rustup update
nightly
工具链的版本和nightly
WebAssembly ( ) 目标添加到您的开发环境:wasm
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup show
rustup +nightly show
# rustup show
active toolchain
----------------
stable-x86_64-unknown-linux-gnu (default)
rustc 1.61.0 (fe5b13d68 2022-05-18)
# rustup +nightly show
active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (overridden by +toolchain on the command line)
rustc 1.63.0-nightly (e71440575 2022-06-02)
git clone https://github.com/substrate-developer-hub/substrate-node-template
main
分支以获取最新代码。--branch
但是,如果你想使用与特定 Polkadot 版本兼容的 Substrate 分支,你可以使用命令行选项。点击Tags查看与特定 Polkadot 版本兼容的分支列表。cd substrate-node-template
git switch -c my-wip-branch
cargo build --release
@polkadot/api
包添加到任何 JavaScript 或 TypeScript 工作环境中。API 公开的大多数接口都是通过连接到正在运行的节点动态生成的。因为节点的配置决定了公开哪些接口,所以您可以使用 API 来处理实现不同功能的自定义链。要使用 API,您必须确定要连接的链的 URL。连接到链的节点后,API 会收集有关链状态及其功能的信息,然后根据收集到的有关该特定链的信息使用方法填充 API。subxt-cli
是一个命令行程序,您可以使用它通过连接到正在运行的节点来下载基于 Substrate 的链的完整配置信息(元数据) 。与 Polkadot-JS API 类似,您可以随subxt-cli
程序下载的元数据公开了有关 Substrate 链的信息,使您能够与该链进行交互。您还可以使用该subxt-cli
程序以人类可读的格式公开有关链的信息。rustup show
Default host: x86_64-unknown-linux-gnu
rustup home: /home/user/.rustup
installed toolchains
--------------------
stable-x86_64-unknown-linux-gnu (default)
nightly-2020-10-06-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu
installed targets for active toolchain
--------------------------------------
wasm32-unknown-unknown
x86_64-unknown-linux-gnu
active toolchain
----------------
stable-x86_64-unknown-linux-gnu (default)
rustc 1.50.0 (cb75ad5db 2021-02-10)
stable
在 x86 64 架构上运行的 Linux 的发布通道。示例输出还表明已安装 nightly-x86 64-unknown-linux-gnu 工具链,并且安装了两个目标:
x86_64-unknown-linux-gnu
Linux 的原生 Rust 目标。wasm32-unknown-unknown
WebAssembly 目标。nightly-2020-10-06-x86_64-unknown-linux-gnu
安装了工具链,但仅当明确指定为命令行选项时才使用此工具链。有关将特定工具链指定为命令行选项的示例,请参阅指定夜间版本。
nightly
构建,以允许您将 Substrate 运行时代码编译为 Wasm 目标。
stable
和nightly
构建,因为 Substrate 中的更改通常取决于 Rustnightly
编译器构建中的上游更改。为确保您的 Rust 编译器始终是最新的,您应该运行以下命令:
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup update
更新nightly
和stable
工具链以使用最新版本。如果在更新工具链后无法编译 WebAssembly 目标nightly
,则可以回滚到工具链的早期版本并将该版本指定为命令行选项。有关获取早期版本的nightly
工具链和指定要用作命令行选项的版本的更多信息,请降级工具链。
nightly
工具链,你知道它与你正在使用的 Substrate 版本兼容。您如何识别和传达nightly
用于项目的特定工具链版本可能会有所不同。例如,Polkadot 在其发行说明中发布了此信息。
确定nightly
要使用的特定工具链版本后,您可以通过运行类似于以下的命令将其安装在您的开发环境中:
rustup install nightly-<yyyy-MM-dd>
rustup install nightly-2022-02-16
rustup target add wasm32-unknown-unknown --toolchain nightly-<yyyy-MM-dd>
rustup target add wasm32-unknown-unknown --toolchain nightly-2022-02-16
WASM_BUILD_TOOLCHAIN
版本。例如:nightly
WASM_BUILD_TOOLCHAIN=nightly-<yyyy-MM-dd> cargo build --release
stable
您安装的最新版本的工具链。
nightly
工具链,并且您想降级到特定的夜间版本,则必须先卸载最新的nightly
工具链。例如,您可以删除最新的工具链,然后通过运行类似于以下的命令来nightly
使用特定版本的工具链:nightly
rustup uninstall nightly
rustup install nightly-<yyyy-MM-dd>
rustup target add wasm32-unknown-unknown --toolchain nightly-<yyyy-MM-dd>
command not found: rustup
,请确保您的 PATH 配置正确。
目前,rustup
安装程序默认安装到 bash 配置文件(在 mac 上)。如果您使用的是另一个 shell,请确保将此行添加到您的配置文件中(例如.zshrc
):
source "$HOME/.cargo/env"
error: failed to run custom build command for prost-build v0.10.4
cmake
通过运行以下命令进行安装:brew install cmake
protoc
通过运行以下命令集安装正确的预编译:git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
brew install autoconf
brew install automake
brew install Libtool
autoreconf -i
./autogen.sh
./configure
make
make check
sudo make install
export PATH=/opt/usr/local/bin:$PATH
前往docs.substrate.io并按照安装说明进行操作。然后试用其中一个教程。参考Docker 说明快速运行 Substrate、Substrate Node Template、Subkey,或构建链规范。
[/hidecontent]