Auto-Update node-template from polkadot-v0.9.27 (#366)
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> Co-authored-by: Dan Shields <35669742+NukeManDan@users.noreply.github.com>main
parent
8407ca1c0a
commit
69ee6aa646
File diff suppressed because it is too large
Load Diff
|
@ -193,7 +193,7 @@ The runtime in this project is constructed using many FRAME pallets that ship wi
|
||||||
[core Substrate repository](https://github.com/paritytech/substrate/tree/master/frame) and a
|
[core Substrate repository](https://github.com/paritytech/substrate/tree/master/frame) and a
|
||||||
template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs) directory.
|
template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs) directory.
|
||||||
|
|
||||||
A FRAME pallet is comprised of a number of blockchain primitives:
|
A FRAME pallet is compromised of a number of blockchain primitives:
|
||||||
|
|
||||||
- Storage: FRAME defines a rich set of powerful
|
- Storage: FRAME defines a rich set of powerful
|
||||||
[storage abstractions](https://docs.substrate.io/v3/runtime/storage) that makes
|
[storage abstractions](https://docs.substrate.io/v3/runtime/storage) that makes
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
title: Installation
|
title: Installation
|
||||||
---
|
---
|
||||||
|
|
||||||
|
This guide is for reference only, please check the latest information on getting starting with Substrate
|
||||||
|
[here](https://docs.substrate.io/v3/getting-started/installation/).
|
||||||
|
|
||||||
This page will guide you through the **2 steps** needed to prepare a computer for **Substrate** development.
|
This page will guide you through the **2 steps** needed to prepare a computer for **Substrate** development.
|
||||||
Since Substrate is built with [the Rust programming language](https://www.rust-lang.org/), the first
|
Since Substrate is built with [the Rust programming language](https://www.rust-lang.org/), the first
|
||||||
thing you will need to do is prepare the computer for Rust development - these steps will vary based
|
thing you will need to do is prepare the computer for Rust development - these steps will vary based
|
||||||
|
@ -9,11 +12,11 @@ on the computer's operating system. Once Rust is configured, you will use its to
|
||||||
with Rust projects; the commands for Rust's toolchains will be the same for all supported,
|
with Rust projects; the commands for Rust's toolchains will be the same for all supported,
|
||||||
Unix-based operating systems.
|
Unix-based operating systems.
|
||||||
|
|
||||||
## 1. Build dependencies
|
## Build dependencies
|
||||||
|
|
||||||
Substrate development is easiest on Unix-based operating systems like macOS or Linux. The examples
|
Substrate development is easiest on Unix-based operating systems like macOS or Linux. The examples
|
||||||
in the Substrate [Tutorials](/tutorials) and [How-to Guides](/how-to-guides)
|
in the [Substrate Docs](https://docs.substrate.io) use Unix-style terminals to demonstrate how to
|
||||||
use Unix-style terminals to demonstrate how to interact with Substrate from the command line.
|
interact with Substrate from the command line.
|
||||||
|
|
||||||
### Ubuntu/Debian
|
### Ubuntu/Debian
|
||||||
|
|
||||||
|
@ -22,7 +25,7 @@ Use a terminal shell to execute the following commands:
|
||||||
```bash
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
# May prompt for location information
|
# May prompt for location information
|
||||||
sudo apt install -y git clang curl libssl-dev llvm libudev-dev pkg-config make
|
sudo apt install -y git clang curl libssl-dev llvm libudev-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
### Arch Linux
|
### Arch Linux
|
||||||
|
@ -30,7 +33,7 @@ sudo apt install -y git clang curl libssl-dev llvm libudev-dev pkg-config make
|
||||||
Run these commands from a terminal:
|
Run these commands from a terminal:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pacman -Syu --needed --noconfirm curl git clang make
|
pacman -Syu --needed --noconfirm curl git clang
|
||||||
```
|
```
|
||||||
|
|
||||||
### Fedora
|
### Fedora
|
||||||
|
@ -39,7 +42,7 @@ Run these commands from a terminal:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dnf update
|
sudo dnf update
|
||||||
sudo dnf install clang curl git openssl-devel make
|
sudo dnf install clang curl git openssl-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
### OpenSUSE
|
### OpenSUSE
|
||||||
|
@ -47,12 +50,15 @@ sudo dnf install clang curl git openssl-devel make
|
||||||
Run these commands from a terminal:
|
Run these commands from a terminal:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo zypper install clang curl git openssl-devel llvm-devel libudev-devel make
|
sudo zypper install clang curl git openssl-devel llvm-devel libudev-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
> If you have an Apple M1 ARM system on a chip, make sure that you have Apple Rosetta 2 installed through \`softwareupdate --install-rosetta\`. This is only needed to run the \`protoc\` tool during the build. The build itself and the target binaries would remain native."
|
> **Apple M1 ARM**
|
||||||
|
> If you have an Apple M1 ARM system on a chip, make sure that you have Apple Rosetta 2
|
||||||
|
> installed through `softwareupdate --install-rosetta`. This is only needed to run the
|
||||||
|
> `protoc` tool during the build. The build itself and the target binaries would remain native.
|
||||||
|
|
||||||
Open the Terminal application and execute the following commands:
|
Open the Terminal application and execute the following commands:
|
||||||
|
|
||||||
|
@ -67,12 +73,13 @@ brew install openssl
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
> Native development of Substrate is _not_ very well supported!
|
**_PLEASE NOTE:_** Native development of Substrate is _not_ very well supported! It is _highly_
|
||||||
> It is _highly_ recommend to
|
recommend to use [Windows Subsystem Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
|
||||||
use [Windows Subsystem Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (WSL)
|
(WSL) and follow the instructions for [Ubuntu/Debian](#ubuntudebian).
|
||||||
and follow the instructions for [Ubuntu/Debian](#ubuntudebian).
|
Please refer to the separate
|
||||||
|
[guide for native Windows development](https://docs.substrate.io/v3/getting-started/windows-users/).
|
||||||
|
|
||||||
## 2. Rust developer environment
|
## Rust developer environment
|
||||||
|
|
||||||
This guide uses <https://rustup.rs> installer and the `rustup` tool to manage the Rust toolchain.
|
This guide uses <https://rustup.rs> installer and the `rustup` tool to manage the Rust toolchain.
|
||||||
First install and configure `rustup`:
|
First install and configure `rustup`:
|
||||||
|
@ -96,13 +103,11 @@ rustup target add wasm32-unknown-unknown --toolchain nightly
|
||||||
## Test your set-up
|
## Test your set-up
|
||||||
|
|
||||||
Now the best way to ensure that you have successfully prepared a computer for Substrate
|
Now the best way to ensure that you have successfully prepared a computer for Substrate
|
||||||
development is to follow the steps in [our first tutorial](https://docs.substrate.io/tutorials/v3/create-your-first-substrate-chain/).
|
development is to follow the steps in [our first Substrate tutorial](https://docs.substrate.io/tutorials/v3/create-your-first-substrate-chain/).
|
||||||
|
|
||||||
> For more details on _why_ these dependencies are used, and for _troubleshooting_ errors building the template, read on.
|
|
||||||
|
|
||||||
## Troubleshooting Substrate builds
|
## Troubleshooting Substrate builds
|
||||||
|
|
||||||
Sometimes you can't get the [Substrate node template](https://github.com/substrate-developer-hub/substrate-node-template)
|
Sometimes you can't get the Substrate node template
|
||||||
to compile out of the box. Here are some tips to help you work through that.
|
to compile out of the box. Here are some tips to help you work through that.
|
||||||
|
|
||||||
### Rust configuration check
|
### Rust configuration check
|
||||||
|
@ -151,10 +156,8 @@ runtimes. You will need to configure your Rust compiler to use
|
||||||
[`nightly` builds](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html) to allow you to
|
[`nightly` builds](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html) to allow you to
|
||||||
compile Substrate runtime code to the Wasm target.
|
compile Substrate runtime code to the Wasm target.
|
||||||
|
|
||||||
> There are upstream issues in Rust that need to be resolved before all of Substrate can use
|
> There are upstream issues in Rust that need to be resolved before all of Substrate can use the stable Rust toolchain.
|
||||||
the stable Rust toolchain.
|
> [This is our tracking issue](https://github.com/paritytech/substrate/issues/1252) if you're curious as to why and how this will be resolved.
|
||||||
> [This is our tracking issue](https://github.com/paritytech/substrate/issues/1252)
|
|
||||||
if you're curious as to why and how this will be resolved.
|
|
||||||
|
|
||||||
#### Latest nightly for Substrate `master`
|
#### Latest nightly for Substrate `master`
|
||||||
|
|
||||||
|
@ -169,17 +172,12 @@ rustup update nightly
|
||||||
rustup target add wasm32-unknown-unknown --toolchain nightly
|
rustup target add wasm32-unknown-unknown --toolchain nightly
|
||||||
```
|
```
|
||||||
|
|
||||||
<br />
|
> NOTE: It may be necessary to occasionally rerun `rustup update` if a change in the upstream Substrate
|
||||||
<Message
|
> codebase depends on a new feature of the Rust compiler. When you do this, both your nightly
|
||||||
type={`gray`}
|
> and stable toolchains will be pulled to the most recent release, and for nightly, it is
|
||||||
title={`Note`}
|
> generally _not_ expected to compile WASM without error (although it very often does).
|
||||||
text={`It may be necessary to occasionally rerun \`rustup update\` if a change in the upstream Substrate
|
> Be sure to [specify your nightly version](#specifying-nightly-version) if you get WASM build errors
|
||||||
codebase depends on a new feature of the Rust compiler. When you do this, both your nightly
|
> from `rustup` and [downgrade nightly as needed](#downgrading-rust-nightly).
|
||||||
and stable toolchains will be pulled to the most recent release, and for nightly, it is
|
|
||||||
generally _not_ expected to compile WASM without error (although it very often does).
|
|
||||||
Be sure to [specify your nightly version](#specifying-nightly-version) if you get WASM build errors
|
|
||||||
from \`rustup\` and [downgrade nightly as needed](#downgrading-rust-nightly).`}
|
|
||||||
/>
|
|
||||||
|
|
||||||
#### Rust nightly toolchain
|
#### Rust nightly toolchain
|
||||||
|
|
||||||
|
@ -212,16 +210,15 @@ project should use for Wasm compilation:
|
||||||
WASM_BUILD_TOOLCHAIN=nightly-<yyyy-MM-dd> cargo build --release
|
WASM_BUILD_TOOLCHAIN=nightly-<yyyy-MM-dd> cargo build --release
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note that this only builds _the runtime_ with the specified nightly.
|
> Note that this only builds _the runtime_ with the specified nightly. The rest of project will be
|
||||||
> The rest of project will be compiled with **your default toolchain**, i.e. the latest installed stable toolchain.
|
> compiled with **your default toolchain**, i.e. the latest installed stable toolchain.
|
||||||
|
|
||||||
|
|
||||||
### Downgrading Rust nightly
|
### Downgrading Rust nightly
|
||||||
|
|
||||||
If your computer is configured to use the latest Rust nightly and you would like to downgrade to a
|
If your computer is configured to use the latest Rust nightly and you would like to downgrade to a
|
||||||
specific nightly version, follow these steps:
|
specific nightly version, follow these steps:
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
rustup uninstall nightly
|
rustup uninstall nightly
|
||||||
rustup install nightly-<yyyy-MM-dd>
|
rustup install nightly-<yyyy-MM-dd>
|
||||||
rustup target add wasm32-unknown-unknown --toolchain nightly-<yyyy-MM-dd>
|
rustup target add wasm32-unknown-unknown --toolchain nightly-<yyyy-MM-dd>
|
||||||
|
|
|
@ -19,51 +19,51 @@ name = "node-template"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "3.1.18", features = ["derive"] }
|
clap = { version = "3.1.18", features = ["derive"] }
|
||||||
|
|
||||||
sc-cli = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", features = ["wasmtime"] }
|
sc-cli = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", features = ["wasmtime"] , branch = "polkadot-v0.9.27" }
|
||||||
sp-core = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-core = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-executor = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", features = ["wasmtime"] }
|
sc-executor = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", features = ["wasmtime"] , branch = "polkadot-v0.9.27" }
|
||||||
sc-service = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", features = ["wasmtime"] }
|
sc-service = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", features = ["wasmtime"] , branch = "polkadot-v0.9.27" }
|
||||||
sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-keystore = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-keystore = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-finality-grandpa = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-finality-grandpa = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-finality-grandpa = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-finality-grandpa = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-runtime = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-runtime = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-inherents = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-inherents = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-keyring = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-keyring = { version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
# These dependencies are used for the node template's RPCs
|
# These dependencies are used for the node template's RPCs
|
||||||
jsonrpsee = { version = "0.14.0", features = ["server"] }
|
jsonrpsee = { version = "0.14.0", features = ["server"] }
|
||||||
sc-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
# These dependencies are used for runtime benchmarking
|
# These dependencies are used for runtime benchmarking
|
||||||
frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
# Local Dependencies
|
# Local Dependencies
|
||||||
node-template-runtime = { version = "4.0.0-dev", path = "../runtime" }
|
node-template-runtime = { version = "4.0.0-dev", path = "../runtime" }
|
||||||
|
|
||||||
# CLI-specific dependencies
|
# CLI-specific dependencies
|
||||||
try-runtime-cli = { version = "0.10.0-dev", optional = true, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
try-runtime-cli = { version = "0.10.0-dev", optional = true, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
|
|
|
@ -0,0 +1,183 @@
|
||||||
|
// This file is part of Substrate.
|
||||||
|
|
||||||
|
// Copyright (C) 2022 Parity Technologies (UK) Ltd.
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
|
||||||
|
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! Setup code for [`super::command`] which would otherwise bloat that module.
|
||||||
|
//!
|
||||||
|
//! Should only be used for benchmarking as it may break in other contexts.
|
||||||
|
|
||||||
|
use crate::service::FullClient;
|
||||||
|
|
||||||
|
use node_template_runtime as runtime;
|
||||||
|
use runtime::{AccountId, Balance, BalancesCall, SystemCall};
|
||||||
|
use sc_cli::Result;
|
||||||
|
use sc_client_api::BlockBackend;
|
||||||
|
use sp_core::{Encode, Pair};
|
||||||
|
use sp_inherents::{InherentData, InherentDataProvider};
|
||||||
|
use sp_keyring::Sr25519Keyring;
|
||||||
|
use sp_runtime::{OpaqueExtrinsic, SaturatedConversion};
|
||||||
|
|
||||||
|
use std::{sync::Arc, time::Duration};
|
||||||
|
|
||||||
|
/// Generates extrinsics for the `benchmark overhead` command.
|
||||||
|
///
|
||||||
|
/// Note: Should only be used for benchmarking.
|
||||||
|
pub struct RemarkBuilder {
|
||||||
|
client: Arc<FullClient>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RemarkBuilder {
|
||||||
|
/// Creates a new [`Self`] from the given client.
|
||||||
|
pub fn new(client: Arc<FullClient>) -> Self {
|
||||||
|
Self { client }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder {
|
||||||
|
fn pallet(&self) -> &str {
|
||||||
|
"system"
|
||||||
|
}
|
||||||
|
|
||||||
|
fn extrinsic(&self) -> &str {
|
||||||
|
"remark"
|
||||||
|
}
|
||||||
|
|
||||||
|
fn build(&self, nonce: u32) -> std::result::Result<OpaqueExtrinsic, &'static str> {
|
||||||
|
let acc = Sr25519Keyring::Bob.pair();
|
||||||
|
let extrinsic: OpaqueExtrinsic = create_benchmark_extrinsic(
|
||||||
|
self.client.as_ref(),
|
||||||
|
acc,
|
||||||
|
SystemCall::remark { remark: vec![] }.into(),
|
||||||
|
nonce,
|
||||||
|
)
|
||||||
|
.into();
|
||||||
|
|
||||||
|
Ok(extrinsic)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Generates `Balances::TransferKeepAlive` extrinsics for the benchmarks.
|
||||||
|
///
|
||||||
|
/// Note: Should only be used for benchmarking.
|
||||||
|
pub struct TransferKeepAliveBuilder {
|
||||||
|
client: Arc<FullClient>,
|
||||||
|
dest: AccountId,
|
||||||
|
value: Balance,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TransferKeepAliveBuilder {
|
||||||
|
/// Creates a new [`Self`] from the given client.
|
||||||
|
pub fn new(client: Arc<FullClient>, dest: AccountId, value: Balance) -> Self {
|
||||||
|
Self { client, dest, value }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder {
|
||||||
|
fn pallet(&self) -> &str {
|
||||||
|
"balances"
|
||||||
|
}
|
||||||
|
|
||||||
|
fn extrinsic(&self) -> &str {
|
||||||
|
"transfer_keep_alive"
|
||||||
|
}
|
||||||
|
|
||||||
|
fn build(&self, nonce: u32) -> std::result::Result<OpaqueExtrinsic, &'static str> {
|
||||||
|
let acc = Sr25519Keyring::Bob.pair();
|
||||||
|
let extrinsic: OpaqueExtrinsic = create_benchmark_extrinsic(
|
||||||
|
self.client.as_ref(),
|
||||||
|
acc,
|
||||||
|
BalancesCall::transfer_keep_alive {
|
||||||
|
dest: self.dest.clone().into(),
|
||||||
|
value: self.value.into(),
|
||||||
|
}
|
||||||
|
.into(),
|
||||||
|
nonce,
|
||||||
|
)
|
||||||
|
.into();
|
||||||
|
|
||||||
|
Ok(extrinsic)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create a transaction using the given `call`.
|
||||||
|
///
|
||||||
|
/// Note: Should only be used for benchmarking.
|
||||||
|
pub fn create_benchmark_extrinsic(
|
||||||
|
client: &FullClient,
|
||||||
|
sender: sp_core::sr25519::Pair,
|
||||||
|
call: runtime::Call,
|
||||||
|
nonce: u32,
|
||||||
|
) -> runtime::UncheckedExtrinsic {
|
||||||
|
let genesis_hash = client.block_hash(0).ok().flatten().expect("Genesis block exists; qed");
|
||||||
|
let best_hash = client.chain_info().best_hash;
|
||||||
|
let best_block = client.chain_info().best_number;
|
||||||
|
|
||||||
|
let period = runtime::BlockHashCount::get()
|
||||||
|
.checked_next_power_of_two()
|
||||||
|
.map(|c| c / 2)
|
||||||
|
.unwrap_or(2) as u64;
|
||||||
|
let extra: runtime::SignedExtra = (
|
||||||
|
frame_system::CheckNonZeroSender::<runtime::Runtime>::new(),
|
||||||
|
frame_system::CheckSpecVersion::<runtime::Runtime>::new(),
|
||||||
|
frame_system::CheckTxVersion::<runtime::Runtime>::new(),
|
||||||
|
frame_system::CheckGenesis::<runtime::Runtime>::new(),
|
||||||
|
frame_system::CheckEra::<runtime::Runtime>::from(sp_runtime::generic::Era::mortal(
|
||||||
|
period,
|
||||||
|
best_block.saturated_into(),
|
||||||
|
)),
|
||||||
|
frame_system::CheckNonce::<runtime::Runtime>::from(nonce),
|
||||||
|
frame_system::CheckWeight::<runtime::Runtime>::new(),
|
||||||
|
pallet_transaction_payment::ChargeTransactionPayment::<runtime::Runtime>::from(0),
|
||||||
|
);
|
||||||
|
|
||||||
|
let raw_payload = runtime::SignedPayload::from_raw(
|
||||||
|
call.clone(),
|
||||||
|
extra.clone(),
|
||||||
|
(
|
||||||
|
(),
|
||||||
|
runtime::VERSION.spec_version,
|
||||||
|
runtime::VERSION.transaction_version,
|
||||||
|
genesis_hash,
|
||||||
|
best_hash,
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
let signature = raw_payload.using_encoded(|e| sender.sign(e));
|
||||||
|
|
||||||
|
runtime::UncheckedExtrinsic::new_signed(
|
||||||
|
call.clone(),
|
||||||
|
sp_runtime::AccountId32::from(sender.public()).into(),
|
||||||
|
runtime::Signature::Sr25519(signature.clone()),
|
||||||
|
extra.clone(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Generates inherent data for the `benchmark overhead` command.
|
||||||
|
///
|
||||||
|
/// Note: Should only be used for benchmarking.
|
||||||
|
pub fn inherent_benchmark_data() -> Result<InherentData> {
|
||||||
|
let mut inherent_data = InherentData::new();
|
||||||
|
let d = Duration::from_millis(0);
|
||||||
|
let timestamp = sp_timestamp::InherentDataProvider::new(d.into());
|
||||||
|
|
||||||
|
timestamp
|
||||||
|
.provide_inherent_data(&mut inherent_data)
|
||||||
|
.map_err(|e| format!("creating inherent data: {:?}", e))?;
|
||||||
|
Ok(inherent_data)
|
||||||
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
|
benchmarking::{inherent_benchmark_data, RemarkBuilder, TransferKeepAliveBuilder},
|
||||||
chain_spec,
|
chain_spec,
|
||||||
cli::{Cli, Subcommand},
|
cli::{Cli, Subcommand},
|
||||||
command_helper::{inherent_benchmark_data, BenchmarkExtrinsicBuilder},
|
|
||||||
service,
|
service,
|
||||||
};
|
};
|
||||||
use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE};
|
use frame_benchmarking_cli::{BenchmarkCmd, ExtrinsicFactory, SUBSTRATE_REFERENCE_HARDWARE};
|
||||||
use node_template_runtime::Block;
|
use node_template_runtime::{Block, EXISTENTIAL_DEPOSIT};
|
||||||
use sc_cli::{ChainSpec, RuntimeVersion, SubstrateCli};
|
use sc_cli::{ChainSpec, RuntimeVersion, SubstrateCli};
|
||||||
use sc_service::PartialComponents;
|
use sc_service::PartialComponents;
|
||||||
use std::sync::Arc;
|
use sp_keyring::Sr25519Keyring;
|
||||||
|
|
||||||
impl SubstrateCli for Cli {
|
impl SubstrateCli for Cli {
|
||||||
fn impl_name() -> String {
|
fn impl_name() -> String {
|
||||||
|
@ -137,9 +137,23 @@ pub fn run() -> sc_cli::Result<()> {
|
||||||
},
|
},
|
||||||
BenchmarkCmd::Overhead(cmd) => {
|
BenchmarkCmd::Overhead(cmd) => {
|
||||||
let PartialComponents { client, .. } = service::new_partial(&config)?;
|
let PartialComponents { client, .. } = service::new_partial(&config)?;
|
||||||
let ext_builder = BenchmarkExtrinsicBuilder::new(client.clone());
|
let ext_builder = RemarkBuilder::new(client.clone());
|
||||||
|
|
||||||
cmd.run(config, client, inherent_benchmark_data()?, Arc::new(ext_builder))
|
cmd.run(config, client, inherent_benchmark_data()?, &ext_builder)
|
||||||
|
},
|
||||||
|
BenchmarkCmd::Extrinsic(cmd) => {
|
||||||
|
let PartialComponents { client, .. } = service::new_partial(&config)?;
|
||||||
|
// Register the *Remark* and *TKA* builders.
|
||||||
|
let ext_factory = ExtrinsicFactory(vec![
|
||||||
|
Box::new(RemarkBuilder::new(client.clone())),
|
||||||
|
Box::new(TransferKeepAliveBuilder::new(
|
||||||
|
client.clone(),
|
||||||
|
Sr25519Keyring::Alice.to_account_id(),
|
||||||
|
EXISTENTIAL_DEPOSIT,
|
||||||
|
)),
|
||||||
|
]);
|
||||||
|
|
||||||
|
cmd.run(client, inherent_benchmark_data()?, &ext_factory)
|
||||||
},
|
},
|
||||||
BenchmarkCmd::Machine(cmd) =>
|
BenchmarkCmd::Machine(cmd) =>
|
||||||
cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()),
|
cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()),
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
mod chain_spec;
|
mod chain_spec;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
mod service;
|
mod service;
|
||||||
|
mod benchmarking;
|
||||||
mod cli;
|
mod cli;
|
||||||
mod command;
|
mod command;
|
||||||
mod command_helper;
|
|
||||||
mod rpc;
|
mod rpc;
|
||||||
|
|
||||||
fn main() -> sc_cli::Result<()> {
|
fn main() -> sc_cli::Result<()> {
|
||||||
|
|
|
@ -296,24 +296,24 @@ pub fn new_full(mut config: Configuration) -> Result<TaskManager, ServiceError>
|
||||||
.spawn_blocking("aura", Some("block-authoring"), aura);
|
.spawn_blocking("aura", Some("block-authoring"), aura);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the node isn't actively participating in consensus then it doesn't
|
|
||||||
// need a keystore, regardless of which protocol we use below.
|
|
||||||
let keystore =
|
|
||||||
if role.is_authority() { Some(keystore_container.sync_keystore()) } else { None };
|
|
||||||
|
|
||||||
let grandpa_config = sc_finality_grandpa::Config {
|
|
||||||
// FIXME #1578 make this available through chainspec
|
|
||||||
gossip_duration: Duration::from_millis(333),
|
|
||||||
justification_period: 512,
|
|
||||||
name: Some(name),
|
|
||||||
observer_enabled: false,
|
|
||||||
keystore,
|
|
||||||
local_role: role,
|
|
||||||
telemetry: telemetry.as_ref().map(|x| x.handle()),
|
|
||||||
protocol_name: grandpa_protocol_name,
|
|
||||||
};
|
|
||||||
|
|
||||||
if enable_grandpa {
|
if enable_grandpa {
|
||||||
|
// if the node isn't actively participating in consensus then it doesn't
|
||||||
|
// need a keystore, regardless of which protocol we use below.
|
||||||
|
let keystore =
|
||||||
|
if role.is_authority() { Some(keystore_container.sync_keystore()) } else { None };
|
||||||
|
|
||||||
|
let grandpa_config = sc_finality_grandpa::Config {
|
||||||
|
// FIXME #1578 make this available through chainspec
|
||||||
|
gossip_duration: Duration::from_millis(333),
|
||||||
|
justification_period: 512,
|
||||||
|
name: Some(name),
|
||||||
|
observer_enabled: false,
|
||||||
|
keystore,
|
||||||
|
local_role: role,
|
||||||
|
telemetry: telemetry.as_ref().map(|x| x.handle()),
|
||||||
|
protocol_name: grandpa_protocol_name,
|
||||||
|
};
|
||||||
|
|
||||||
// start the full GRANDPA voter
|
// start the full GRANDPA voter
|
||||||
// NOTE: non-authorities could run the GRANDPA observer protocol, but at
|
// NOTE: non-authorities could run the GRANDPA observer protocol, but at
|
||||||
// this point the full voter should provide better guarantees of block
|
// this point the full voter should provide better guarantees of block
|
||||||
|
|
|
@ -3,7 +3,7 @@ name = "pallet-template"
|
||||||
version = "4.0.0-dev"
|
version = "4.0.0-dev"
|
||||||
description = "FRAME pallet template for defining custom runtime logic."
|
description = "FRAME pallet template for defining custom runtime logic."
|
||||||
authors = ["Substrate DevHub <https://github.com/substrate-developer-hub>"]
|
authors = ["Substrate DevHub <https://github.com/substrate-developer-hub>"]
|
||||||
homepage = "https://substrate.io/"
|
homepage = "https://substrate.io"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "Unlicense"
|
license = "Unlicense"
|
||||||
publish = false
|
publish = false
|
||||||
|
@ -17,24 +17,23 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features =
|
||||||
"derive",
|
"derive",
|
||||||
] }
|
] }
|
||||||
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
|
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
|
||||||
frame-support = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26"}
|
frame-benchmarking = { version = "4.0.0-dev", default-features = false, optional = true, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-system = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-support = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-benchmarking = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", optional = true }
|
frame-system = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
sp-core = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-core = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-io = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-io = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-runtime = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-runtime = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
std = [
|
std = [
|
||||||
"codec/std",
|
"codec/std",
|
||||||
"scale-info/std",
|
"frame-benchmarking/std",
|
||||||
"frame-support/std",
|
"frame-support/std",
|
||||||
"frame-system/std",
|
"frame-system/std",
|
||||||
"frame-benchmarking/std",
|
"scale-info/std",
|
||||||
]
|
]
|
||||||
|
|
||||||
runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"]
|
runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"]
|
||||||
try-runtime = ["frame-support/try-runtime"]
|
try-runtime = ["frame-support/try-runtime"]
|
||||||
|
|
|
@ -19,10 +19,6 @@ pub mod pallet {
|
||||||
use frame_support::pallet_prelude::*;
|
use frame_support::pallet_prelude::*;
|
||||||
use frame_system::pallet_prelude::*;
|
use frame_system::pallet_prelude::*;
|
||||||
|
|
||||||
#[pallet::pallet]
|
|
||||||
#[pallet::generate_store(pub(super) trait Store)]
|
|
||||||
pub struct Pallet<T>(_);
|
|
||||||
|
|
||||||
/// Configure the pallet by specifying the parameters and types on which it depends.
|
/// Configure the pallet by specifying the parameters and types on which it depends.
|
||||||
#[pallet::config]
|
#[pallet::config]
|
||||||
pub trait Config: frame_system::Config {
|
pub trait Config: frame_system::Config {
|
||||||
|
@ -30,6 +26,10 @@ pub mod pallet {
|
||||||
type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
|
type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[pallet::pallet]
|
||||||
|
#[pallet::generate_store(pub(super) trait Store)]
|
||||||
|
pub struct Pallet<T>(_);
|
||||||
|
|
||||||
// The pallet's runtime storage items.
|
// The pallet's runtime storage items.
|
||||||
// https://docs.substrate.io/main-docs/build/runtime-storage/
|
// https://docs.substrate.io/main-docs/build/runtime-storage/
|
||||||
#[pallet::storage]
|
#[pallet::storage]
|
||||||
|
|
|
@ -16,43 +16,43 @@ targets = ["x86_64-unknown-linux-gnu"]
|
||||||
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
|
codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
|
||||||
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
|
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
|
||||||
|
|
||||||
pallet-aura = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-aura = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-balances = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-balances = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-support = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-support = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-grandpa = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-grandpa = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-randomness-collective-flip = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-randomness-collective-flip = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-sudo = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-sudo = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-system = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-system = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-try-runtime = { version = "0.10.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", optional = true }
|
frame-try-runtime = { version = "0.10.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", optional = true , branch = "polkadot-v0.9.27" }
|
||||||
pallet-timestamp = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-timestamp = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
frame-executive = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-executive = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-block-builder = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26"}
|
sp-block-builder = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-consensus-aura = { version = "0.10.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-consensus-aura = { version = "0.10.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-core = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-core = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-inherents = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26"}
|
sp-inherents = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-offchain = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-offchain = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-runtime = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-runtime = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-session = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-session = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-std = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-std = { version = "4.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-transaction-pool = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-transaction-pool = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
sp-version = { version = "5.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
sp-version = { version = "5.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
# Used for the node template's RPCs
|
# Used for the node template's RPCs
|
||||||
frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
frame-system-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
# Used for runtime benchmarking
|
# Used for runtime benchmarking
|
||||||
frame-benchmarking = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", optional = true }
|
frame-benchmarking = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", optional = true , branch = "polkadot-v0.9.27" }
|
||||||
frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26", optional = true }
|
frame-system-benchmarking = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", optional = true , branch = "polkadot-v0.9.27" }
|
||||||
hex-literal = { version = "0.3.4", optional = true }
|
hex-literal = { version = "0.3.4", optional = true }
|
||||||
|
|
||||||
# Local Dependencies
|
# Local Dependencies
|
||||||
pallet-template = { version = "4.0.0-dev", default-features = false, path = "../pallets/template" }
|
pallet-template = { version = "4.0.0-dev", default-features = false, path = "../pallets/template" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
substrate-wasm-builder = { version = "5.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.26" }
|
substrate-wasm-builder = { version = "5.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
|
|
|
@ -234,6 +234,9 @@ impl pallet_timestamp::Config for Runtime {
|
||||||
type WeightInfo = ();
|
type WeightInfo = ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Existential deposit.
|
||||||
|
pub const EXISTENTIAL_DEPOSIT: u128 = 500;
|
||||||
|
|
||||||
impl pallet_balances::Config for Runtime {
|
impl pallet_balances::Config for Runtime {
|
||||||
type MaxLocks = ConstU32<50>;
|
type MaxLocks = ConstU32<50>;
|
||||||
type MaxReserves = ();
|
type MaxReserves = ();
|
||||||
|
@ -243,7 +246,7 @@ impl pallet_balances::Config for Runtime {
|
||||||
/// The ubiquitous event type.
|
/// The ubiquitous event type.
|
||||||
type Event = Event;
|
type Event = Event;
|
||||||
type DustRemoval = ();
|
type DustRemoval = ();
|
||||||
type ExistentialDeposit = ConstU128<500>;
|
type ExistentialDeposit = ConstU128<EXISTENTIAL_DEPOSIT>;
|
||||||
type AccountStore = System;
|
type AccountStore = System;
|
||||||
type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
|
type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue