#substrate #validation #pallet #dapp #frame #hub #polkadot

无std pallet-plasm-validator

FRAME 插件用于管理等离子体网络的验证器

1 个稳定版本

1.3.0 2020年8月2日

#29#dapp

Apache-2.0

75KB
1.5K SLoC

astar-cover

Integration Action GitHub tag (latest by date) Substrate version License
Twitter URL Twitter URL YouTube Docker Discord Telegram Medium

Astar 网络是基于 Substrate 框架的可互操作区块链,也是 Polkadot 生态系统内 dApp 的中心。通过 Astar 网络和 Shiden 网络,人们可以将代币质押到智能合约中,以奖励为网络提供价值的项目。

关于对本项目的贡献,请阅读我们的 贡献指南

从源代码构建

本节假设开发者正在运行 macOS 或 Debian 变种操作系统。对于 Windows,尽管有运行它的方法,但我们建议使用 WSL 或虚拟机以获得稳定性。

从您的终端执行以下命令以设置开发环境和构建节点运行时。

# install Substrate development environment via the automatic script
$ curl https://getsubstrate.io -sSf | bash -s -- --fast

# clone the Git repository
$ git clone --recurse-submodules https://github.com/AstarNetwork/Astar.git

# change current working directory
$ cd Astar

# compile the node
# note: you may encounter some errors if `wasm32-unknown-unknown` is not installed, or if the toolchain channel is outdated
$ cargo build --release

# show list of available commands
$ ./target/release/astar-collator --help

使用 Nix 构建

# install Nix package manager:
$ curl https://nixos.org/nix/install | sh

# run from root of the project folder (`Astar/` folder)
$ nix-shell -I nixpkgs=channel:nixos-21.05 third-party/nix/shell.nix --run "cargo build --release"

运行收集者节点

要设置收集者节点,您必须有一个完全同步的节点以及正确的参数,可以使用以下命令完成。

# start the Shiden collator node with
$ ./target/release/astar-collator \
  --base-path <path to save blocks> \
  --name <node display name> \
  --port 30333 \
  --rpc-port 9944 \
  --telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' \
  --rpc-cors all \
  --collator

现在,您可以通过发送以下 RPC 有效负载来获取节点的会话密钥。

# send `rotate_keys` request
$ curl -H 'Content-Type: application/json' --data '{ "jsonrpc":"2.0", "method":"author_rotateKeys", "id":1 }' localhost:9933

# should return a long string of hex, which is your session key
{"jsonrpc":"2.0","result":"<session key in hex>","id":1}

在此步骤之后,您应该有一个具有会话密钥的在线验证器节点。有关密钥管理和验证器奖励,请参阅我们的 在线验证器指南

运行 RPC 测试

可以运行任何版本的 RPC 测试套件。要运行测试,请转到 https://github.com/AstarNetwork/Astar/actions/workflows/rpcTest.yml。单击运行工作流程,在下拉输入框中输入您想要运行测试套件的版本标签。然后单击绿色运行工作流程按钮以启动测试套件。

Screenshot from 2022-07-07 15-28-46

工作区依赖处理

所有依赖项应列在工作区根目录的 Cargo.toml 文件中。这允许我们通过修改单处位置来轻松更改整个仓库使用的 crate 版本。

目前,如果需要 non_std,必须在根目录的 Cargo.toml 文件中设置 default-features = false(与这个 问题 相关)。否则,将没有效果,导致您的编译失败。此外,package 导入没有从根传播到子 crate,因此应避免定义这些。

在根Cargo.toml中定义特性与具体crate的Cargo.toml中定义的特性相加。

添加依赖

  1. 检查依赖是否已在根Cargo.toml中定义
    1. 如果,则无需操作,只需记录启用的特性
    2. 如果,则添加它(确保在no_std上下文中使用时,使用default-features = false
  2. new_dependecy = { workspace = true }添加到所需的crate中
  3. 如果依赖已使用default-features = false定义,但您需要在std上下文中使用它,请将features = ["std"]添加到所需的crate中。

进一步阅读

依赖项

~10MB
~187K SLoC