环境配置

注意

受限于网络情况及机器性能,本小节中部分依赖项的安装过程可能较为耗时,请耐心等待。必要时可能需要配置网络代理。

部署 Rust 编译环境

Liquid 智能合约的构建过程主要依赖 Rust 语言编译器rustc及代码组织管理工具cargo,且均要求版本号大于或等与 1.50.0。如果此前从未安装过rustccargo,可参考下列步骤进行安装:

  • 对于 Mac 或 Linux 用户,请在终端中执行以下命令;

    1. # 此命令将会自动安装 rustup,rustup 会自动安装 rustc 及 cargo
    2. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • 对于 32 位 Windows 用户,请从此处下载安装 32 位版本安装程序。

  • 对于 64 位 Windows 用户,请从此处下载安装 64 位版本安装程序。

如果此前安装过rustccargo,但是未能最低版本要求,则可在终端中执行以下命令进行更新:

  1. rustup update

安装完毕后,分别执行以下命令验证已安装正确版本的 rustccargo

  1. rustc --version
  2. cargo --version

此外需要安装以下工具链组件:

  1. rustup toolchain install nightly
  2. rustup target add wasm32-unknown-unknown --toolchain stable
  3. rustup target add wasm32-unknown-unknown --toolchain nightly
  4. rustup component add rust-src --toolchain stable
  5. rustup component add rust-src --toolchain nightly

注意

由于Liquid使用了少量目前尚不稳定的Rust语言特性,因此在构建时需要依赖nightly版本的 rustc 。但是这些特性目前已经被广泛应用在Rust项目中,因此其可靠性值得信赖。随着Rust语言迭代演进,这些特性终将变为稳定特性。

注意

所有可执行程序都会被安装于 $HOME/cargo/bin 目录下,包括 rustccargorustup 等。为方便使用,需要将 $HOME/cargo/bin 目录加入到操作系统的 PATH 环境变量中。在安装过程中, rustup 会尝试自动配置 PATH 环境变量,但是由于权限等原因,该过程可能会失败。当发现 rustccargo 无法正常执行时,可能需要手动配置该环境变量。

注意

如果当前网络无法访问Rustup官方镜像,请参考 Rustup 镜像安装帮助 更换镜像源。

构建 Liquid 智能合约的过程中需要下载大量第三方依赖,若当前网络无法正常访问 crates.io 官方镜像源,则按照以下步骤为 cargo 更换镜像源:

  1. # 编辑cargo配置文件,若没有则新建
  2. vim $HOME/.cargo/config

并在配置文件中添加以下内容:

  1. [source.crates-io]
  2. registry = "https://github.com/rust-lang/crates.io-index"
  3. replace-with = 'ustc'
  4. [source.ustc]
  5. registry = "git://mirrors.ustc.edu.cn/crates.io-index"

安装 cargo-liquid

cargo-liquid 是用于辅助开发 Liquid 智能合约的命令行工具,在终端中执行以下命令安装:

  1. cargo install --git https://github.com/WeBankBlockchain/cargo-liquid --tag v1.0.0-rc1 --force

注意

若无法正常访问GitHub,则请执行 cargo install --git https://gitee.com/WeBankBlockchain/cargo-liquid --tag v1.0.0-rc1 --force 命令进行安装。

安装 Binaryen(可选)

Binaryen 项目中包含了一系列 Wasm 字节码分析及优化工具,其中如 wasm-opt 等工具会在 Liquid 智能合约的构建过程中使用。目前 Binaryen 仅提供了编译安装的方式,请参考其官方文档,根据所使用的操作系统选择对应的编译安装方式。