Files
pezkuwi-subxt/substrate/bin/node/runtime/Cargo.toml
T
Robert Habermeier 4598e13015 safe multi-era slashing for NPoS (#3846)
* define slashing spans

* tests and pruning for slashing-spans record

* validators get slashed before nominators

* apply slash to nominators as well

* chill and end slashing spans

* actually perform slashes

* integration (tests failing)

* prune metadata

* fix compilation

* some tests for slashing and metadata garbage collection

* correctly pass session index to slash handler

* test span-max property for nominators and validators

* test that slashes are summed correctly

* reward value computation

* implement rewarding

* add comment about rewards

* do not adjust slash fraction in offences module

* fix offences tests

* remove unused new_offenders field

* update runtime version

* fix up some docs

* fix some CI failures

* remove no-std incompatible vec! invocation

* try to fix span-max rounding error

* Update srml/staking/src/slashing.rs

Fix type: winow -> window

Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* slashes from prior spans don't kick validator again

* more information for nominators, suppression

* ensure ledger is consistent with itself post-slash

* implement slash out of unlocking funds also

* slashing: create records to be applied after-the-fact

* queue slashes for a few eras later

* method for canceling deferred slashes

* attempt to fix test in CI

* storage migration for `Nominators`

* update node-runtime to use SlashDeferDuration

* adjust migration entry-points somewhat

* fix migration compilation

* add manual Vec import to migration

* enable migrations feature in node-runtime

* bump runtime version

* update to latest master crate renames

* update to use ensure-origin

* Apply suggestions from code review

use `ensure!`

Co-Authored-By: Gavin Wood <gavin@parity.io>

* fix multi-slash removal

* initialize storage version to current in genesis

* add test for version initialization
2019-11-27 19:06:32 +00:00

123 lines
6.8 KiB
TOML

[package]
name = "node-runtime"
version = "2.0.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
build = "build.rs"
[dependencies]
# third-party dependencies
codec = { package = "parity-scale-codec", version = "1.0.6", default-features = false, features = ["derive"] }
integer-sqrt = { version = "0.1.2" }
safe-mix = { version = "1.0", default-features = false }
rustc-hex = { version = "2.0", optional = true }
serde = { version = "1.0.102", optional = true }
# primitives
authority-discovery-primitives = { package = "substrate-authority-discovery-primitives", path = "../../../primitives/authority-discovery", default-features = false }
babe-primitives = { package = "substrate-consensus-babe-primitives", path = "../../../primitives/consensus/babe", default-features = false }
block-builder-api = { package = "substrate-block-builder-runtime-api", path = "../../../primitives/block-builder/runtime-api", default-features = false}
inherents = { package = "substrate-inherents", path = "../../../primitives/inherents", default-features = false }
node-primitives = { path = "../primitives", default-features = false }
offchain-primitives = { package = "substrate-offchain-primitives", path = "../../../primitives/offchain", default-features = false }
primitives = { package = "substrate-primitives", path = "../../../primitives/core", default-features = false }
rstd = { package = "sr-std", path = "../../../primitives/sr-std", default-features = false }
sr-api = { path = "../../../primitives/sr-api", default-features = false }
sr-primitives = { path = "../../../primitives/sr-primitives", default-features = false }
sr-staking-primitives = { path = "../../../primitives/sr-staking-primitives", default-features = false }
substrate-keyring = { path = "../../../primitives/keyring", optional = true }
substrate-session = { path = "../../../primitives/session", default-features = false }
tx-pool-api = { package = "substrate-transaction-pool-runtime-api", path = "../../../primitives/transaction-pool/runtime-api", default-features = false }
version = { package = "sr-version", path = "../../../primitives/sr-version", default-features = false }
# frame dependencies
authority-discovery = { package = "pallet-authority-discovery", path = "../../../frame/authority-discovery", default-features = false }
authorship = { package = "pallet-authorship", path = "../../../frame/authorship", default-features = false }
babe = { package = "pallet-babe", path = "../../../frame/babe", default-features = false }
balances = { package = "pallet-balances", path = "../../../frame/balances", default-features = false }
collective = { package = "pallet-collective", path = "../../../frame/collective", default-features = false }
contracts = { package = "pallet-contracts", path = "../../../frame/contracts", default-features = false }
contracts-rpc-runtime-api = { package = "pallet-contracts-rpc-runtime-api", path = "../../../frame/contracts/rpc/runtime-api/", default-features = false }
democracy = { package = "pallet-democracy", path = "../../../frame/democracy", default-features = false }
elections-phragmen = { package = "pallet-elections-phragmen", path = "../../../frame/elections-phragmen", default-features = false }
executive = { package = "frame-executive", path = "../../../frame/executive", default-features = false }
finality-tracker = { package = "pallet-finality-tracker", path = "../../../frame/finality-tracker", default-features = false }
grandpa = { package = "pallet-grandpa", path = "../../../frame/grandpa", default-features = false }
im-online = { package = "pallet-im-online", path = "../../../frame/im-online", default-features = false }
indices = { package = "pallet-indices", path = "../../../frame/indices", default-features = false }
membership = { package = "pallet-membership", path = "../../../frame/membership", default-features = false }
nicks = { package = "pallet-nicks", path = "../../../frame/nicks", default-features = false }
offences = { package = "pallet-offences", path = "../../../frame/offences", default-features = false }
randomness-collective-flip = { package = "pallet-randomness-collective-flip", path = "../../../frame/randomness-collective-flip", default-features = false }
session = { package = "pallet-session", path = "../../../frame/session", default-features = false, features = ["historical"] }
staking = { package = "pallet-staking", path = "../../../frame/staking", default-features = false, features = ["migrate"] }
pallet-staking-reward-curve = { path = "../../../frame/staking/reward-curve"}
sudo = { package = "pallet-sudo", path = "../../../frame/sudo", default-features = false }
support = { package = "frame-support", path = "../../../frame/support", default-features = false }
system = { package = "frame-system", path = "../../../frame/system", default-features = false }
system-rpc-runtime-api = { package = "frame-system-rpc-runtime-api", path = "../../../frame/system/rpc/runtime-api/", default-features = false }
timestamp = { package = "pallet-timestamp", path = "../../../frame/timestamp", default-features = false }
treasury = { package = "pallet-treasury", path = "../../../frame/treasury", default-features = false }
utility = { package = "frame-utility", path = "../../../frame/utility", default-features = false }
transaction-payment = { package = "pallet-transaction-payment", path = "../../../frame/transaction-payment", default-features = false }
transaction-payment-rpc-runtime-api = { package = "pallet-transaction-payment-rpc-runtime-api", path = "../../../frame/transaction-payment/rpc/runtime-api/", default-features = false }
[build-dependencies]
wasm-builder-runner = { package = "substrate-wasm-builder-runner", path = "../../../client/utils/wasm-builder-runner", version = "1.0.4" }
[dev-dependencies]
runtime_io = { package = "sr-io", path = "../../../primitives/sr-io" }
[features]
default = ["std"]
std = [
"authority-discovery-primitives/std",
"authority-discovery/std",
"authorship/std",
"babe-primitives/std",
"babe/std",
"balances/std",
"block-builder-api/std",
"codec/std",
"collective/std",
"contracts-rpc-runtime-api/std",
"contracts/std",
"democracy/std",
"elections-phragmen/std",
"executive/std",
"finality-tracker/std",
"grandpa/std",
"im-online/std",
"indices/std",
"inherents/std",
"membership/std",
"nicks/std",
"node-primitives/std",
"offchain-primitives/std",
"offences/std",
"primitives/std",
"randomness-collective-flip/std",
"rstd/std",
"rustc-hex",
"safe-mix/std",
"serde",
"session/std",
"sr-api/std",
"sr-primitives/std",
"sr-staking-primitives/std",
"staking/std",
"substrate-keyring",
"substrate-session/std",
"sudo/std",
"support/std",
"system-rpc-runtime-api/std",
"system/std",
"timestamp/std",
"transaction-payment-rpc-runtime-api/std",
"transaction-payment/std",
"treasury/std",
"tx-pool-api/std",
"utility/std",
"version/std",
]