#substrate #dapp #reward #pallet #blockchain #hub #polkadot

no-std pallet-plasm-rewards

FRAME 框架用于管理 plasm 网络的奖励

1 个稳定版本

1.3.0 2020 年 7 月 31 日

#22#dapp


2 个 crate 使用

Apache-2.0

52KB
983

astar-cover

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

Astar 网络是一个基于 Substrate 框架和 Polkadot 生态系统内 dApps 聚合点的互操作区块链。借助 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 文件中。这允许我们通过修改单个位置中的版本轻松更改整个 repo 使用的 crate 的版本。

目前,如果需要 非标准模式,必须在根目录下的 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 上下文中使用它,请向所需的 crate 添加 features = ["std"]

进一步阅读

依赖项

~9–20MB
~272K SLoC