From 3da7e43abf7fba017b57ae9eaab55af4c1668840 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 25 Mar 2021 14:25:23 +0000 Subject: [PATCH 01/50] Implement PVF validation host --- Cargo.lock | 492 +++++---- Cargo.toml | 1 + cli/Cargo.toml | 7 +- cli/src/cli.rs | 15 +- cli/src/command.rs | 38 +- node/core/candidate-validation/Cargo.toml | 7 +- node/core/candidate-validation/src/lib.rs | 338 +++--- node/core/pvf/Cargo.toml | 56 + node/core/pvf/bin/puppet_worker.rs | 42 + node/core/pvf/src/artifacts.rs | 288 +++++ node/core/pvf/src/error.rs | 56 + node/core/pvf/src/execute/mod.rs | 21 + node/core/pvf/src/execute/queue.rs | 329 ++++++ node/core/pvf/src/execute/worker.rs | 219 ++++ node/core/pvf/src/executor_intf.rs | 236 +++++ node/core/pvf/src/host.rs | 996 ++++++++++++++++++ node/core/pvf/src/lib.rs | 100 ++ node/core/pvf/src/prepare/mod.rs | 23 + node/core/pvf/src/prepare/pool.rs | 329 ++++++ node/core/pvf/src/prepare/queue.rs | 840 +++++++++++++++ node/core/pvf/src/prepare/worker.rs | 185 ++++ node/core/pvf/src/priority.rs | 46 + node/core/pvf/src/pvf.rs | 56 + node/core/pvf/src/testing.rs | 40 + node/core/pvf/src/worker_common.rs | 273 +++++ node/core/pvf/tests/it/adder.rs | 131 +++ node/core/pvf/tests/it/main.rs | 149 +++ .../core/pvf/tests/it/worker_common.rs | 25 +- node/service/Cargo.toml | 1 + node/service/src/lib.rs | 39 +- node/test/service/src/lib.rs | 1 - parachain/Cargo.toml | 26 - parachain/src/lib.rs | 4 +- parachain/src/wasm_executor/mod.rs | 401 ------- .../src/wasm_executor/validation_host.rs | 357 ------- .../validation_host/workspace.rs | 614 ----------- .../test-parachains/adder/collator/Cargo.toml | 1 + .../test-parachains/adder/collator/src/lib.rs | 13 +- parachain/test-parachains/tests/adder/mod.rs | 153 --- .../tests/wasm_executor/mod.rs | 94 -- 40 files changed, 4959 insertions(+), 2083 deletions(-) create mode 100644 node/core/pvf/Cargo.toml create mode 100644 node/core/pvf/bin/puppet_worker.rs create mode 100644 node/core/pvf/src/artifacts.rs create mode 100644 node/core/pvf/src/error.rs create mode 100644 node/core/pvf/src/execute/mod.rs create mode 100644 node/core/pvf/src/execute/queue.rs create mode 100644 node/core/pvf/src/execute/worker.rs create mode 100644 node/core/pvf/src/executor_intf.rs create mode 100644 node/core/pvf/src/host.rs create mode 100644 node/core/pvf/src/lib.rs create mode 100644 node/core/pvf/src/prepare/mod.rs create mode 100644 node/core/pvf/src/prepare/pool.rs create mode 100644 node/core/pvf/src/prepare/queue.rs create mode 100644 node/core/pvf/src/prepare/worker.rs create mode 100644 node/core/pvf/src/priority.rs create mode 100644 node/core/pvf/src/pvf.rs create mode 100644 node/core/pvf/src/testing.rs create mode 100644 node/core/pvf/src/worker_common.rs create mode 100644 node/core/pvf/tests/it/adder.rs create mode 100644 node/core/pvf/tests/it/main.rs rename parachain/test-parachains/tests/lib.rs => node/core/pvf/tests/it/worker_common.rs (54%) delete mode 100644 parachain/src/wasm_executor/mod.rs delete mode 100644 parachain/src/wasm_executor/validation_host.rs delete mode 100644 parachain/src/wasm_executor/validation_host/workspace.rs delete mode 100644 parachain/test-parachains/tests/adder/mod.rs delete mode 100644 parachain/test-parachains/tests/wasm_executor/mod.rs diff --git a/Cargo.lock b/Cargo.lock index b0440ecb4168..40482e51f1cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -122,9 +122,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.34" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" +checksum = "81cddc5f91628367664cc7c69714ff08deee8a3efc54623011c772544d7b2767" [[package]] name = "approx" @@ -200,6 +200,16 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "async-channel" version = "1.5.1" @@ -289,6 +299,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f9f84f1280a2b436a2c77c2582602732b6c2f4321d5494d6e799e6c367859a8" dependencies = [ + "async-attributes", "async-channel", "async-global-executor", "async-io", @@ -1660,7 +1671,6 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", ] @@ -1678,7 +1688,6 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -1697,7 +1706,6 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "Inflector", "chrono", @@ -1720,7 +1728,6 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -1733,7 +1740,6 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -1749,7 +1755,6 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "serde", @@ -1760,7 +1765,6 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "bitflags", "frame-metadata", @@ -1786,7 +1790,6 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1798,7 +1801,6 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -1810,7 +1812,6 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro2", "quote", @@ -1820,7 +1821,6 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-metadata", "frame-support", @@ -1841,7 +1841,6 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1858,7 +1857,6 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -1872,7 +1870,6 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -1881,7 +1878,6 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "parity-scale-codec", @@ -1898,9 +1894,9 @@ checksum = "bcd1163ae48bda72a20ae26d66a04d3094135cadab911cff418ae5e33f253431" [[package]] name = "fs-swap" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5839fda247e24ca4919c87c71dd5ca658f1f39e4f06829f80e3f15c3bafcfc2c" +checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" dependencies = [ "lazy_static", "libc", @@ -3127,9 +3123,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.81" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" +checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7" [[package]] name = "libloading" @@ -4208,7 +4204,6 @@ checksum = "13370dae44474229701bb69b90b4f4dca6404cb0357a2d50d635f1171dc3aa7b" [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4224,7 +4219,6 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4239,7 +4233,6 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4263,7 +4256,6 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4278,7 +4270,6 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4293,7 +4284,6 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4310,7 +4300,6 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4325,7 +4314,6 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4346,7 +4334,6 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4362,7 +4349,6 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4384,7 +4370,6 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4400,7 +4385,6 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4420,7 +4404,6 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4437,7 +4420,6 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4451,7 +4433,6 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4467,7 +4448,6 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4481,7 +4461,6 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4497,7 +4476,6 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4519,7 +4497,6 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4535,7 +4512,6 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4548,7 +4524,6 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "enumflags2", "frame-support", @@ -4563,7 +4538,6 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4579,7 +4553,6 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4599,7 +4572,6 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4615,7 +4587,6 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4629,7 +4600,6 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4654,7 +4624,6 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4665,7 +4634,6 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4679,7 +4647,6 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4698,7 +4665,6 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4713,7 +4679,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-support", "frame-system", @@ -4729,7 +4694,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4746,7 +4710,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4757,7 +4720,6 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4773,7 +4735,6 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4789,7 +4750,6 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5342,7 +5302,7 @@ dependencies = [ "frame-benchmarking-cli", "futures 0.3.12", "log", - "polkadot-parachain", + "polkadot-node-core-pvf", "polkadot-service", "sc-cli", "sc-service", @@ -5575,8 +5535,10 @@ name = "polkadot-node-core-candidate-validation" version = "0.1.0" dependencies = [ "assert_matches", + "async-trait", "futures 0.3.12", "parity-scale-codec", + "polkadot-node-core-pvf", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -5643,6 +5605,38 @@ dependencies = [ "tracing", ] +[[package]] +name = "polkadot-node-core-pvf" +version = "0.1.0" +dependencies = [ + "always-assert", + "assert_matches", + "async-process", + "async-std", + "futures 0.3.12", + "futures-timer 3.0.2", + "hex-literal", + "libc", + "parity-scale-codec", + "pin-project 1.0.4", + "polkadot-core-primitives", + "polkadot-parachain", + "rand 0.8.3", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "slotmap", + "sp-core", + "sp-externalities", + "sp-io", + "sp-wasm-interface", + "tempfile", + "test-parachain-adder", + "test-parachain-halt", + "tracing", + "wasmtime-jit", +] + [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" @@ -5815,25 +5809,13 @@ name = "polkadot-parachain" version = "0.8.29" dependencies = [ "derive_more", - "futures 0.3.12", - "libc", - "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", "polkadot-core-primitives", - "raw_sync", - "sc-executor", "serde", - "shared_memory", "sp-core", - "sp-externalities", - "sp-io", "sp-runtime", "sp-std", - "sp-wasm-interface", - "static_assertions", - "thiserror", ] [[package]] @@ -6785,19 +6767,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "raw_sync" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a34bde3561f980a51c70495164200569a11662644fe5af017f0b5d7015688cc" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "nix", - "rand 0.8.3", - "winapi 0.3.9", -] - [[package]] name = "rawpointer" version = "0.2.1" @@ -6961,7 +6930,6 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "env_logger 0.8.2", "hex-literal", @@ -6972,6 +6940,7 @@ dependencies = [ "parity-scale-codec", "sp-core", "sp-io", + "sp-runtime", ] [[package]] @@ -7217,7 +7186,6 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "async-trait", "derive_more", @@ -7245,7 +7213,6 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7268,7 +7235,6 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7284,7 +7250,6 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7305,7 +7270,6 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7316,7 +7280,6 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "chrono", "fdlimit", @@ -7354,7 +7317,6 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "fnv", @@ -7388,7 +7350,6 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "blake2-rfc", "hash-db", @@ -7418,7 +7379,6 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7429,7 +7389,6 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "fork-tree", @@ -7475,7 +7434,6 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "futures 0.3.12", @@ -7499,7 +7457,6 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7512,7 +7469,6 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7539,7 +7495,6 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "sc-client-api", @@ -7553,7 +7508,6 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "lazy_static", @@ -7582,11 +7536,11 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "parity-scale-codec", "parity-wasm 0.41.0", + "pwasm-utils", "sp-allocator", "sp-core", "sp-serializer", @@ -7598,7 +7552,6 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "parity-scale-codec", @@ -7613,12 +7566,10 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "parity-scale-codec", "parity-wasm 0.41.0", - "pwasm-utils", "sc-executor-common", "scoped-tls", "sp-allocator", @@ -7631,7 +7582,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "dyn-clone", @@ -7670,7 +7620,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "finality-grandpa", @@ -7694,7 +7643,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "futures 0.3.12", @@ -7715,7 +7663,6 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7733,7 +7680,6 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "async-trait", "derive_more", @@ -7753,7 +7699,6 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "hash-db", "lazy_static", @@ -7772,7 +7717,6 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "async-std", "async-trait", @@ -7825,7 +7769,6 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7842,7 +7785,6 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "bytes 0.5.6", "fnv", @@ -7870,7 +7812,6 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "libp2p", @@ -7883,7 +7824,6 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7892,7 +7832,6 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "hash-db", @@ -7926,7 +7865,6 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "futures 0.3.12", @@ -7950,7 +7888,6 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.1.29", "jsonrpc-core", @@ -7968,7 +7905,6 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "directories", "exit-future", @@ -8031,7 +7967,6 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "parity-scale-codec", @@ -8046,7 +7981,6 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8066,7 +8000,6 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "chrono", "futures 0.3.12", @@ -8086,7 +8019,6 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8113,7 +8045,6 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8124,7 +8055,6 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "futures 0.3.12", @@ -8146,7 +8076,6 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -8424,20 +8353,6 @@ dependencies = [ "loom", ] -[[package]] -name = "shared_memory" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b854a362375dfe8ab12ea8a98228040d37293c988f85fbac9fa0f83336387966" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "nix", - "quick-error 2.0.0", - "rand 0.8.3", - "winapi 0.3.9", -] - [[package]] name = "shlex" version = "0.1.1" @@ -8488,6 +8403,15 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +[[package]] +name = "slotmap" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3003725ae562cf995f3dc82bb99e70926e09000396816765bb6d7adbe740b1" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "0.6.13" @@ -8552,7 +8476,6 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "sp-core", @@ -8564,7 +8487,6 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "hash-db", "log", @@ -8581,7 +8503,6 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8593,7 +8514,6 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "serde", @@ -8605,7 +8525,6 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "integer-sqrt", "num-traits", @@ -8618,7 +8537,6 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8630,7 +8548,6 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8641,7 +8558,6 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8653,7 +8569,6 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "log", @@ -8671,7 +8586,6 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "serde", "serde_json", @@ -8680,7 +8594,6 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8706,7 +8619,6 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "merlin", "parity-scale-codec", @@ -8727,7 +8639,6 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8737,7 +8648,6 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8749,7 +8659,6 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "base58", "blake2-rfc", @@ -8793,7 +8702,6 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8802,7 +8710,6 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro2", "quote", @@ -8812,7 +8719,6 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "environmental", "parity-scale-codec", @@ -8823,7 +8729,6 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "finality-grandpa", "log", @@ -8840,7 +8745,6 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8852,7 +8756,6 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "hash-db", @@ -8876,7 +8779,6 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "lazy_static", "sp-core", @@ -8887,7 +8789,6 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "async-trait", "derive_more", @@ -8904,7 +8805,6 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "serde", @@ -8917,7 +8817,6 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8928,7 +8827,6 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "sp-api", "sp-core", @@ -8938,7 +8836,6 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "backtrace", ] @@ -8946,7 +8843,6 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "serde", "sp-core", @@ -8955,7 +8851,6 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "either", "hash256-std-hasher", @@ -8976,7 +8871,6 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8993,7 +8887,6 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9005,7 +8898,6 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "serde", "serde_json", @@ -9014,7 +8906,6 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -9027,7 +8918,6 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9037,7 +8927,6 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "hash-db", "log", @@ -9059,12 +8948,10 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9077,7 +8964,6 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "sp-core", @@ -9090,7 +8976,6 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -9103,7 +8988,6 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "log", "parity-scale-codec", @@ -9116,7 +9000,6 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "derive_more", "futures 0.3.12", @@ -9132,7 +9015,6 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "hash-db", "memory-db", @@ -9146,7 +9028,6 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "futures-core", @@ -9158,7 +9039,6 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9170,7 +9050,6 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9327,7 +9206,6 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "chrono", "console_error_panic_hook", @@ -9353,7 +9231,6 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "platforms", ] @@ -9361,7 +9238,6 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -9384,7 +9260,6 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "async-std", "derive_more", @@ -9398,7 +9273,6 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.1.29", "futures 0.3.12", @@ -9426,7 +9300,6 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "futures 0.3.12", "substrate-test-utils-derive", @@ -9436,7 +9309,6 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "proc-macro-crate 1.0.0", "quote", @@ -9557,6 +9429,7 @@ dependencies = [ "log", "parity-scale-codec", "polkadot-cli", + "polkadot-node-core-pvf", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain", @@ -10119,7 +9992,6 @@ checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#283bb60954d6809a76e52619e58c78fb8053e3eb" dependencies = [ "frame-try-runtime", "log", @@ -11045,3 +10917,239 @@ dependencies = [ "itertools 0.9.0", "libc", ] + +[[patch.unused]] +name = "chain-spec-builder" +version = "2.0.0" + +[[patch.unused]] +name = "node-bench" +version = "0.8.0" + +[[patch.unused]] +name = "node-browser-testing" +version = "2.0.0" + +[[patch.unused]] +name = "node-cli" +version = "2.0.0" + +[[patch.unused]] +name = "node-executor" +version = "2.0.0" + +[[patch.unused]] +name = "node-inspect" +version = "0.8.0" + +[[patch.unused]] +name = "node-primitives" +version = "2.0.0" + +[[patch.unused]] +name = "node-rpc" +version = "2.0.0" + +[[patch.unused]] +name = "node-rpc-client" +version = "2.0.0" + +[[patch.unused]] +name = "node-runtime" +version = "2.0.1" + +[[patch.unused]] +name = "node-template" +version = "2.0.0" + +[[patch.unused]] +name = "node-template-runtime" +version = "2.0.0" + +[[patch.unused]] +name = "node-testing" +version = "2.0.0" + +[[patch.unused]] +name = "pallet-assets" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-atomic-swap" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-aura" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-primitives" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-proc-macro" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-rpc" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-rpc-runtime-api" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-elections" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-example" +version = "2.0.0" + +[[patch.unused]] +name = "pallet-example-offchain-worker" +version = "2.0.1" + +[[patch.unused]] +name = "pallet-example-parallel" +version = "2.0.1" + +[[patch.unused]] +name = "pallet-gilt" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-lottery" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr-primitives" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr-rpc" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-node-authorization" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-scored-pool" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-staking-reward-fn" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-template" +version = "2.0.0" + +[[patch.unused]] +name = "sc-consensus-aura" +version = "0.9.0" + +[[patch.unused]] +name = "sc-consensus-manual-seal" +version = "0.9.0" + +[[patch.unused]] +name = "sc-consensus-pow" +version = "0.9.0" + +[[patch.unused]] +name = "sc-network-test" +version = "0.8.0" + +[[patch.unused]] +name = "sc-runtime-test" +version = "2.0.0" + +[[patch.unused]] +name = "sc-service-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-api-test" +version = "2.0.1" + +[[patch.unused]] +name = "sp-application-crypto-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-arithmetic-fuzzer" +version = "2.0.0" + +[[patch.unused]] +name = "sp-consensus-aura" +version = "0.9.0" + +[[patch.unused]] +name = "sp-consensus-pow" +version = "0.9.0" + +[[patch.unused]] +name = "sp-npos-elections-fuzzer" +version = "2.0.0-alpha.5" + +[[patch.unused]] +name = "sp-runtime-interface-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm" +version = "2.0.0" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm-deprecated" +version = "2.0.0" + +[[patch.unused]] +name = "sp-sandbox" +version = "0.9.0" + +[[patch.unused]] +name = "sp-test-primitives" +version = "2.0.0" + +[[patch.unused]] +name = "subkey" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-frame-cli" +version = "3.0.0" + +[[patch.unused]] +name = "substrate-frame-rpc-support" +version = "3.0.0" + +[[patch.unused]] +name = "substrate-test-runtime" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-runtime-client" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-runtime-transaction-pool" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-utils-test-crate" +version = "0.1.0" + +[[patch.unused]] +name = "substrate-wasm-builder" +version = "4.0.0" diff --git a/Cargo.toml b/Cargo.toml index b1b5068fb67b..5cde1492c927 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,7 @@ members = [ "node/core/chain-api", "node/core/proposer", "node/core/provisioner", + "node/core/pvf", "node/core/runtime-api", "node/network/approval-distribution", "node/network/bridge", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 48ef43f9d283..fc0f5e0890ad 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -22,7 +22,7 @@ wasm-bindgen-futures = { version = "0.4.19", optional = true } futures = "0.3.12" service = { package = "polkadot-service", path = "../node/service", default-features = false, optional = true } -polkadot-parachain = { path = "../parachain", optional = true } +polkadot-node-core-pvf = { path = "../node/core/pvf", optional = true } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } @@ -39,8 +39,8 @@ sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master", substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] -default = [ "wasmtime", "db", "cli", "full-node", "trie-memory-tracker", "polkadot-parachain" ] -wasmtime = [ "sc-cli/wasmtime", "polkadot-parachain/wasmtime" ] +default = [ "wasmtime", "db", "cli", "full-node", "trie-memory-tracker" ] +wasmtime = [ "sc-cli/wasmtime" ] db = [ "service/db" ] cli = [ "structopt", @@ -48,6 +48,7 @@ cli = [ "sc-service", "frame-benchmarking-cli", "try-runtime-cli", + "polkadot-node-core-pvf", ] browser = [ "wasm-bindgen", diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 2dd56bc1ad42..8ebf5b23235c 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -43,8 +43,12 @@ pub enum Subcommand { Revert(sc_cli::RevertCmd), #[allow(missing_docs)] - #[structopt(name = "validation-worker", setting = structopt::clap::AppSettings::Hidden)] - ValidationWorker(ValidationWorkerCommand), + #[structopt(name = "prepare-worker", setting = structopt::clap::AppSettings::Hidden)] + PvfPrepareWorker(ValidationWorkerCommand), + + #[allow(missing_docs)] + #[structopt(name = "execute-worker", setting = structopt::clap::AppSettings::Hidden)] + PvfExecuteWorker(ValidationWorkerCommand), /// The custom benchmark subcommand benchmarking runtime pallets. #[structopt( @@ -64,11 +68,8 @@ pub enum Subcommand { #[allow(missing_docs)] #[derive(Debug, StructOpt)] pub struct ValidationWorkerCommand { - /// The path that the executor can use for its caching purposes. - pub cache_base_path: std::path::PathBuf, - - #[allow(missing_docs)] - pub mem_id: String, + /// The path to the validation host's socket. + pub socket_path: String, } #[allow(missing_docs)] diff --git a/cli/src/command.rs b/cli/src/command.rs index f0e86f70be13..f3502b046474 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -249,19 +249,39 @@ pub fn run() -> Result<()> { Ok((cmd.run(client, backend).map_err(Error::SubstrateCli), task_manager)) })?) }, - Some(Subcommand::ValidationWorker(cmd)) => { + Some(Subcommand::PvfPrepareWorker(cmd)) => { let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_colors(false); let _ = builder.init(); - if cfg!(feature = "browser") || cfg!(target_os = "android") { - Err(sc_cli::Error::Input("Cannot run validation worker in browser".into()).into()) - } else { - #[cfg(not(any(target_os = "android", feature = "browser")))] - polkadot_parachain::wasm_executor::run_worker( - &cmd.mem_id, - Some(cmd.cache_base_path.clone()), - )?; + #[cfg(any(target_os = "android", feature = "browser"))] + { + return Err( + sc_cli::Error::Input("PVF preparation workers are not supported under this platform".into()).into() + ); + } + + #[cfg(not(any(target_os = "android", feature = "browser")))] + { + polkadot_node_core_pvf::prepare_worker_entrypoint(&cmd.socket_path); + Ok(()) + } + }, + Some(Subcommand::PvfExecuteWorker(cmd)) => { + let mut builder = sc_cli::LoggerBuilder::new(""); + builder.with_colors(false); + let _ = builder.init(); + + #[cfg(any(target_os = "android", feature = "browser"))] + { + return Err( + sc_cli::Error::Input("PVF execution workers are not supported under this platform".into()).into() + ); + } + + #[cfg(not(any(target_os = "android", feature = "browser")))] + { + polkadot_node_core_pvf::execute_worker_entrypoint(&cmd.socket_path); Ok(()) } }, diff --git a/node/core/candidate-validation/Cargo.toml b/node/core/candidate-validation/Cargo.toml index 8a40f3a47500..2bed6553e463 100644 --- a/node/core/candidate-validation/Cargo.toml +++ b/node/core/candidate-validation/Cargo.toml @@ -5,10 +5,11 @@ authors = ["Parity Technologies "] edition = "2018" [dependencies] +async-trait = "0.1.42" + futures = "0.3.12" tracing = "0.1.25" -sp-core = { package = "sp-core", git = "https://github.com/paritytech/substrate", branch = "master" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["bit-vec", "derive"] } polkadot-primitives = { path = "../../../primitives" } @@ -17,8 +18,12 @@ polkadot-node-primitives = { path = "../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } +[target.'cfg(not(any(target_os = "android", target_os = "unknown")))'.dependencies] +polkadot-node-core-pvf = { path = "../pvf" } + [dev-dependencies] sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } futures = { version = "0.3.12", features = ["thread-pool"] } assert_matches = "1.4.0" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/candidate-validation/src/lib.rs b/node/core/candidate-validation/src/lib.rs index a57a2cb8ecfe..4362e5eaf6f3 100644 --- a/node/core/candidate-validation/src/lib.rs +++ b/node/core/candidate-validation/src/lib.rs @@ -38,44 +38,51 @@ use polkadot_primitives::v1::{ ValidationCode, PoV, CandidateDescriptor, PersistedValidationData, OccupiedCoreAssumption, Hash, CandidateCommitments, }; -use polkadot_parachain::wasm_executor::{ - self, IsolationStrategy, ValidationError, InvalidCandidate as WasmInvalidCandidate -}; -use polkadot_parachain::primitives::{ValidationResult as WasmValidationResult, ValidationParams}; +use polkadot_parachain::primitives::{ValidationParams, ValidationResult as WasmValidationResult}; +use polkadot_node_core_pvf::{Pvf, ValidationHost, ValidationError, InvalidCandidate as WasmInvalidCandidate}; use parity_scale_codec::Encode; -use sp_core::traits::SpawnNamed; use futures::channel::oneshot; use futures::prelude::*; use std::sync::Arc; +use std::path::PathBuf; + +use async_trait::async_trait; const LOG_TARGET: &'static str = "parachain::candidate-validation"; +/// Configuration for the candidate validation subsystem +pub struct Config { + /// The path where candidate validation can store compiled artifacts for PVFs. + pub artifacts_cache_path: PathBuf, + /// The path to the executable which can be used for spawning PVF compilation & validation + /// workers. + pub program_path: PathBuf, +} + /// The candidate validation subsystem. -pub struct CandidateValidationSubsystem { - spawn: S, +pub struct CandidateValidationSubsystem { metrics: Metrics, - isolation_strategy: IsolationStrategy, + config: Config, } -impl CandidateValidationSubsystem { +impl CandidateValidationSubsystem { /// Create a new `CandidateValidationSubsystem` with the given task spawner and isolation /// strategy. /// /// Check out [`IsolationStrategy`] to get more details. - pub fn new(spawn: S, metrics: Metrics, isolation_strategy: IsolationStrategy) -> Self { - CandidateValidationSubsystem { spawn, metrics, isolation_strategy } + pub fn with_config(config: Config, metrics: Metrics) -> Self { + CandidateValidationSubsystem { config, metrics, } } } -impl Subsystem for CandidateValidationSubsystem where +impl Subsystem for CandidateValidationSubsystem where C: SubsystemContext, - S: SpawnNamed + Clone + 'static, { fn start(self, ctx: C) -> SpawnedSubsystem { - let future = run(ctx, self.spawn, self.metrics, self.isolation_strategy) + let future = run(ctx, self.metrics, self.config.artifacts_cache_path, self.config.program_path) .map_err(|e| SubsystemError::with_origin("candidate-validation", e)) .boxed(); SpawnedSubsystem { @@ -85,13 +92,18 @@ impl Subsystem for CandidateValidationSubsystem where } } -#[tracing::instrument(skip(ctx, spawn, metrics), fields(subsystem = LOG_TARGET))] +#[tracing::instrument(skip(ctx, metrics), fields(subsystem = LOG_TARGET))] async fn run( mut ctx: impl SubsystemContext, - spawn: impl SpawnNamed + Clone + 'static, metrics: Metrics, - isolation_strategy: IsolationStrategy, + cache_path: PathBuf, + program_path: PathBuf, ) -> SubsystemResult<()> { + let (validation_host, task) = polkadot_node_core_pvf::start( + polkadot_node_core_pvf::Config::new(cache_path, program_path), + ); + ctx.spawn_blocking("pvf-validation-host", task.boxed()).await?; + loop { match ctx.recv().await? { FromOverseer::Signal(OverseerSignal::ActiveLeaves(_)) => {} @@ -107,10 +119,9 @@ async fn run( let res = spawn_validate_from_chain_state( &mut ctx, - isolation_strategy.clone(), + &validation_host, descriptor, pov, - spawn.clone(), &metrics, ).await; @@ -131,14 +142,12 @@ async fn run( ) => { let _timer = metrics.time_validate_from_exhaustive(); - let res = spawn_validate_exhaustive( - &mut ctx, - isolation_strategy.clone(), + let res = validate_candidate_exhaustive( + &validation_host, persisted_validation_data, validation_code, descriptor, pov, - spawn.clone(), &metrics, ).await; @@ -266,13 +275,16 @@ async fn find_assumed_validation_data( Ok(AssumptionCheckOutcome::DoesNotMatch) } -#[tracing::instrument(level = "trace", skip(ctx, pov, spawn, metrics), fields(subsystem = LOG_TARGET))] +#[tracing::instrument( + level = "trace", + skip(ctx, validation_host, pov, metrics), + fields(subsystem = LOG_TARGET), +)] async fn spawn_validate_from_chain_state( ctx: &mut impl SubsystemContext, - isolation_strategy: IsolationStrategy, + validation_host: &ValidationHost, descriptor: CandidateDescriptor, pov: Arc, - spawn: impl SpawnNamed + 'static, metrics: &Metrics, ) -> SubsystemResult> { let (validation_data, validation_code) = @@ -291,14 +303,12 @@ async fn spawn_validate_from_chain_state( } }; - let validation_result = spawn_validate_exhaustive( - ctx, - isolation_strategy, + let validation_result = validate_candidate_exhaustive( + validation_host, validation_data, validation_code, descriptor.clone(), pov, - spawn, metrics, ) .await; @@ -328,35 +338,90 @@ async fn spawn_validate_from_chain_state( validation_result } -#[tracing::instrument(level = "trace", skip(ctx, validation_code, pov, spawn, metrics), fields(subsystem = LOG_TARGET))] -async fn spawn_validate_exhaustive( - ctx: &mut impl SubsystemContext, - isolation_strategy: IsolationStrategy, +#[tracing::instrument( + level = "trace", + skip(validation_backend, validation_code, pov, metrics), + fields(subsystem = LOG_TARGET), +)] +async fn validate_candidate_exhaustive( + validation_backend: impl ValidationBackend, persisted_validation_data: PersistedValidationData, validation_code: ValidationCode, descriptor: CandidateDescriptor, pov: Arc, - spawn: impl SpawnNamed + 'static, metrics: &Metrics, ) -> SubsystemResult> { - let (tx, rx) = oneshot::channel(); - let metrics = metrics.clone(); - let fut = async move { - let res = validate_candidate_exhaustive::( - isolation_strategy, - persisted_validation_data, - validation_code, - descriptor, - pov, - spawn, - &metrics, - ); + let _timer = metrics.time_validate_candidate_exhaustive(); + + if let Err(e) = perform_basic_checks(&descriptor, persisted_validation_data.max_pov_size, &*pov) { + return Ok(Ok(ValidationResult::Invalid(e))); + } - let _ = tx.send(res); + let params = ValidationParams { + parent_head: persisted_validation_data.parent_head.clone(), + block_data: pov.block_data.clone(), + relay_parent_number: persisted_validation_data.relay_parent_number, + relay_parent_storage_root: persisted_validation_data.relay_parent_storage_root, }; - ctx.spawn_blocking("blocking-candidate-validation-task", fut.boxed()).await?; - rx.await.map_err(Into::into) + let result = validation_backend.validate_candidate(validation_code, params).await; + + let result = match result { + Err(ValidationError::InternalError(e)) => Err(ValidationFailed(e)), + + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::HardTimeout)) => + Ok(ValidationResult::Invalid(InvalidCandidate::Timeout)), + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::WorkerReportedError(e))) => + Ok(ValidationResult::Invalid(InvalidCandidate::ExecutionError(e))), + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::AmbigiousWorkerDeath)) => + Ok(ValidationResult::Invalid(InvalidCandidate::ExecutionError("ambigious worker death".to_string()))), + + Ok(res) => { + if res.head_data.hash() != descriptor.para_head { + Ok(ValidationResult::Invalid(InvalidCandidate::ParaHeadHashMismatch)) + } else { + let outputs = CandidateCommitments { + head_data: res.head_data, + upward_messages: res.upward_messages, + horizontal_messages: res.horizontal_messages, + new_validation_code: res.new_validation_code, + processed_downward_messages: res.processed_downward_messages, + hrmp_watermark: res.hrmp_watermark, + }; + Ok(ValidationResult::Valid(outputs, persisted_validation_data)) + } + } + }; + + Ok(result) +} + +#[async_trait] +trait ValidationBackend { + async fn validate_candidate(&self, validation_code: ValidationCode, params: ValidationParams) -> + Result; +} + +#[async_trait] +impl ValidationBackend for &'_ ValidationHost { + async fn validate_candidate(&self, validation_code: ValidationCode, params: ValidationParams) -> Result + { + let (tx, rx) = oneshot::channel(); + if let Err(err) = self.execute_pvf( + Pvf::from_code(validation_code.0), + params.encode(), + polkadot_node_core_pvf::Priority::Normal, + tx, + ).await { + return Err(ValidationError::InternalError(format!("cannot send pvf to the validation host: {:?}", err))); + } + + let validation_result = rx + .await + .map_err(|_| ValidationError::InternalError("validation was cancelled".into()))?; + + validation_result + } } /// Does basic checks of a candidate. Provide the encoded PoV-block. Returns `Ok` if basic checks @@ -385,95 +450,6 @@ fn perform_basic_checks( Ok(()) } -trait ValidationBackend { - type Arg; - - fn validate( - arg: Self::Arg, - validation_code: &ValidationCode, - params: ValidationParams, - spawn: S, - ) -> Result; -} - -struct RealValidationBackend; - -impl ValidationBackend for RealValidationBackend { - type Arg = IsolationStrategy; - - fn validate( - isolation_strategy: IsolationStrategy, - validation_code: &ValidationCode, - params: ValidationParams, - spawn: S, - ) -> Result { - wasm_executor::validate_candidate( - &validation_code.0, - params, - &isolation_strategy, - spawn, - ) - } -} - -/// Validates the candidate from exhaustive parameters. -/// -/// Sends the result of validation on the channel once complete. -#[tracing::instrument(level = "trace", skip(backend_arg, validation_code, pov, spawn, metrics), fields(subsystem = LOG_TARGET))] -fn validate_candidate_exhaustive( - backend_arg: B::Arg, - persisted_validation_data: PersistedValidationData, - validation_code: ValidationCode, - descriptor: CandidateDescriptor, - pov: Arc, - spawn: S, - metrics: &Metrics, -) -> Result { - let _timer = metrics.time_validate_candidate_exhaustive(); - - if let Err(e) = perform_basic_checks(&descriptor, persisted_validation_data.max_pov_size, &*pov) { - return Ok(ValidationResult::Invalid(e)) - } - - let params = ValidationParams { - parent_head: persisted_validation_data.parent_head.clone(), - block_data: pov.block_data.clone(), - relay_parent_number: persisted_validation_data.relay_parent_number, - relay_parent_storage_root: persisted_validation_data.relay_parent_storage_root, - }; - - match B::validate(backend_arg, &validation_code, params, spawn) { - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::Timeout)) => - Ok(ValidationResult::Invalid(InvalidCandidate::Timeout)), - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::ParamsTooLarge(l, _))) => - Ok(ValidationResult::Invalid(InvalidCandidate::ParamsTooLarge(l as u64))), - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::CodeTooLarge(l, _))) => - Ok(ValidationResult::Invalid(InvalidCandidate::CodeTooLarge(l as u64))), - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::BadReturn)) => - Ok(ValidationResult::Invalid(InvalidCandidate::BadReturn)), - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::WasmExecutor(e))) => - Ok(ValidationResult::Invalid(InvalidCandidate::ExecutionError(e.to_string()))), - Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::ExternalWasmExecutor(e))) => - Ok(ValidationResult::Invalid(InvalidCandidate::ExecutionError(e.to_string()))), - Err(ValidationError::Internal(e)) => Err(ValidationFailed(e.to_string())), - Ok(res) => { - if res.head_data.hash() != descriptor.para_head { - return Ok(ValidationResult::Invalid(InvalidCandidate::ParaHeadHashMismatch)); - } - - let outputs = CandidateCommitments { - head_data: res.head_data, - upward_messages: res.upward_messages, - horizontal_messages: res.horizontal_messages, - new_validation_code: res.new_validation_code, - processed_downward_messages: res.processed_downward_messages, - hrmp_watermark: res.hrmp_watermark, - }; - Ok(ValidationResult::Valid(outputs, persisted_validation_data)) - } - } -} - #[derive(Clone)] struct MetricsInner { validation_requests: prometheus::CounterVec, @@ -566,7 +542,7 @@ impl metrics::Metrics for Metrics { #[cfg(test)] mod tests { - use super::*; + use super::*; use polkadot_node_subsystem_test_helpers as test_helpers; use polkadot_primitives::v1::{HeadData, BlockData, UpwardMessage}; use sp_core::testing::TaskExecutor; @@ -574,25 +550,6 @@ mod tests { use assert_matches::assert_matches; use sp_keyring::Sr25519Keyring; - struct MockValidationBackend; - - struct MockValidationArg { - result: Result, - } - - impl ValidationBackend for MockValidationBackend { - type Arg = MockValidationArg; - - fn validate( - arg: Self::Arg, - _validation_code: &ValidationCode, - _params: ValidationParams, - _spawn: S, - ) -> Result { - arg.result - } - } - fn collator_sign(descriptor: &mut CandidateDescriptor, collator: Sr25519Keyring) { descriptor.collator = collator.public().into(); let payload = polkadot_primitives::v1::collator_signature_payload( @@ -884,6 +841,29 @@ mod tests { executor::block_on(test_fut); } + struct MockValidatorBackend { + result: Result, + } + + impl MockValidatorBackend { + fn with_hardcoded_result(result: Result) -> Self { + Self { + result, + } + } + } + + #[async_trait] + impl ValidationBackend for MockValidatorBackend { + async fn validate_candidate( + &self, + _validation_code: ValidationCode, + _params: ValidationParams + ) -> Result { + self.result.clone() + } + } + #[test] fn candidate_validation_ok_is_ok() { let validation_data = PersistedValidationData { max_pov_size: 1024, ..Default::default() }; @@ -907,15 +887,16 @@ mod tests { hrmp_watermark: 0, }; - let v = validate_candidate_exhaustive::( - MockValidationArg { result: Ok(validation_result) }, + let v = executor::block_on(validate_candidate_exhaustive( + MockValidatorBackend::with_hardcoded_result(Ok(validation_result)), validation_data.clone(), vec![1, 2, 3].into(), descriptor, Arc::new(pov), - TaskExecutor::new(), &Default::default(), - ).unwrap(); + )) + .unwrap() + .unwrap(); assert_matches!(v, ValidationResult::Valid(outputs, used_validation_data) => { assert_eq!(outputs.head_data, HeadData(vec![1, 1, 1])); @@ -939,21 +920,20 @@ mod tests { assert!(perform_basic_checks(&descriptor, validation_data.max_pov_size, &pov).is_ok()); - let v = validate_candidate_exhaustive::( - MockValidationArg { - result: Err(ValidationError::InvalidCandidate( - WasmInvalidCandidate::BadReturn - )) - }, + let v = executor::block_on(validate_candidate_exhaustive( + MockValidatorBackend::with_hardcoded_result( + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::AmbigiousWorkerDeath)) + ), validation_data, vec![1, 2, 3].into(), descriptor, Arc::new(pov), - TaskExecutor::new(), &Default::default(), - ).unwrap(); + )) + .unwrap() + .unwrap(); - assert_matches!(v, ValidationResult::Invalid(InvalidCandidate::BadReturn)); + assert_matches!(v, ValidationResult::Invalid(InvalidCandidate::ExecutionError(_))); } #[test] @@ -968,19 +948,17 @@ mod tests { assert!(perform_basic_checks(&descriptor, validation_data.max_pov_size, &pov).is_ok()); - let v = validate_candidate_exhaustive::( - MockValidationArg { - result: Err(ValidationError::InvalidCandidate( - WasmInvalidCandidate::Timeout - )) - }, + let v = executor::block_on(validate_candidate_exhaustive( + MockValidatorBackend::with_hardcoded_result( + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::HardTimeout)), + ), validation_data, vec![1, 2, 3].into(), descriptor, Arc::new(pov), - TaskExecutor::new(), &Default::default(), - ); + )) + .unwrap(); assert_matches!(v, Ok(ValidationResult::Invalid(InvalidCandidate::Timeout))); } diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml new file mode 100644 index 000000000000..99bed2cf1cec --- /dev/null +++ b/node/core/pvf/Cargo.toml @@ -0,0 +1,56 @@ +[package] +name = "polkadot-node-core-pvf" +version = "0.1.0" +authors = ["Parity Technologies "] +edition = "2018" + +[[bin]] +name = "puppet_worker" +path = "bin/puppet_worker.rs" + +[[test]] +name = "it" + +[dependencies] +always-assert = { version = "0.1" } +async-std = { version = "1.8.0", features = ["attributes"] } +async-process = "1.0.1" +assert_matches = "1.4.0" +futures = "0.3.12" +futures-timer = "3.0.2" +libc = "0.2.81" +slotmap = "1.0" +tracing = "0.1.22" +pin-project = "1.0.4" +rand = "0.8.3" +parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } +polkadot-parachain = { path = "../../../parachain" } +polkadot-core-primitives = { path = "../../../core-primitives" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor-wasmtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "master" } + +[dev-dependencies] +adder = { package = "test-parachain-adder", path = "../../../parachain/test-parachains/adder" } +halt = { package = "test-parachain-halt", path = "../../../parachain/test-parachains/halt" } +hex-literal = "0.3.1" +tempfile = "3.2.0" + +# PVF execution leverages compiled artifacts provided by wasmtime. The contents of the artifacts +# depends on the version of wasmtime. In this crate we persist the artifacts on disk so we should +# be careful about the updates. In order to handle this, we depend on the wasmtime version here +# that we think is used by the sc-executor. If wasmtime is updated in Substrate and wasn't updated +# here then there will be linking errors like +# +# `multiple definitions of `set_vmctx_memory`. +# +# or similar, because wasmtime exports these symbols and does not support multiple versions compiled +# in at the same time. +# +# Another safeguard is a test `ensure_wasmtime_version` that will fail on each bump and prompt the +# developer to correspondingly act upon the change. +wasmtime-jit = "0.22" diff --git a/node/core/pvf/bin/puppet_worker.rs b/node/core/pvf/bin/puppet_worker.rs new file mode 100644 index 000000000000..3c335d191ad2 --- /dev/null +++ b/node/core/pvf/bin/puppet_worker.rs @@ -0,0 +1,42 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! A simple binary that allows mocking the behavior of the real worker. + +use std::time::Duration; + +fn main() { + let args = std::env::args().collect::>(); + if args.len() < 2 { + panic!("wrong number of arguments"); + } + + let subcommand = &args[1]; + match subcommand.as_ref() { + "sleep" => { + std::thread::sleep(Duration::from_secs(5)); + } + "prepare-worker" => { + let socket_path = &args[2]; + polkadot_node_core_pvf::prepare_worker_entrypoint(socket_path); + } + "execute-worker" => { + let socket_path = &args[2]; + polkadot_node_core_pvf::execute_worker_entrypoint(socket_path); + } + other => panic!("unknown subcommand: {}", other), + } +} diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs new file mode 100644 index 000000000000..0a6308dc5730 --- /dev/null +++ b/node/core/pvf/src/artifacts.rs @@ -0,0 +1,288 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::LOG_TARGET; +use always_assert::always; +use async_std::{ + io, + path::{Path, PathBuf}, +}; +use polkadot_core_primitives::Hash; +use std::{ + collections::HashMap, + time::{Duration, SystemTime}, +}; +use parity_scale_codec::{Encode, Decode}; +use futures::StreamExt; + +/// A final product of preparation process. Contains either a ready to run compiled artifact or +/// a description what went wrong. +#[derive(Encode, Decode)] +pub enum Artifact { + /// During the prevalidation stage of preparation an issue was found with the PVF. + PrevalidationErr(String), + /// Compilation failed for the given PVF. + PreparationErr(String), + /// This state indicates that the process assigned to prepare the artifact wasn't responsible + /// or were killed. This state is reported by the validation host (not by the worker). + DidntMakeIt, + /// The PVF passed all the checks and is ready for execution. + Compiled { + compiled_artifact: Vec, + }, +} + +impl Artifact { + /// Serializes this struct into a byte buffer. + pub fn serialize(&self) -> Vec { + self.encode() + } + + /// Deserialize the given byte buffer to an artifact. + pub fn deserialize(mut bytes: &[u8]) -> Result { + Artifact::decode(&mut bytes).map_err(|e| format!("{:?}", e)) + } +} + +/// NOTE if we get to multiple engine implementations the artifact ID should include the engine +/// type as well. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct ArtifactId { + code_hash: Hash, +} + +impl ArtifactId { + const PREFIX: &'static str = "wasmtime_1_"; + + pub fn new(code_hash: Hash) -> Self { + Self { code_hash } + } + + /// Tries to recover the artifact id from the given file name. + pub fn from_file_name(file_name: &str) -> Option { + use std::str::FromStr as _; + + let file_name = file_name.strip_prefix(Self::PREFIX)?; + let code_hash = Hash::from_str(file_name).ok()?; + + Some(Self { code_hash }) + } + + /// Returns the expected path to this artifact given the root of the cache. + pub fn path(&self, cache_path: &Path) -> PathBuf { + let file_name = format!("{}{}", Self::PREFIX, self.code_hash.to_string()); + cache_path.join(file_name) + } +} + +#[test] +fn ensure_wasmtime_version() { + assert_eq!( + wasmtime_jit::VERSION, + "0.22.0", + "wasmtime version is updated. Check the prefix.", + ); + // If the version bump is significant, change `ArtifactId::PREFIX`. + // + // If in doubt bump it. This will lead to removal of the existing artifacts in the on-disk cache + // and recompilation. +} + +pub enum ArtifactState { + /// The artifact is ready to be used by the executor. + /// + /// That means that the artifact should be accessible through the path obtained by the artifact + /// id under (unless, it was removed externally). + Prepared { + /// The time when the artifact was the last time needed. + /// + /// This is updated when we get the heads up for this artifact or when we just discover + /// this file. + last_time_needed: SystemTime, + }, + /// A task to prepare this artifact is scheduled. + Preparing, +} + +pub struct Artifacts { + artifacts: HashMap, +} + +impl Artifacts { + /// Scan the given cache root for the artifacts. + /// + /// The recognized artifacts will be filled in the table and unrecognized will be removed. + pub async fn new(cache_path: &Path) -> Self { + // Make sure that the cache path directory and all it's parents are created. + let _ = async_std::fs::create_dir_all(cache_path).await; + + let artifacts = match scan_for_known_artifacts(cache_path).await { + Ok(a) => a, + Err(err) => { + tracing::warn!( + target: LOG_TARGET, + "unable to seed the artifacts in memory cache: {:?}. Starting with a clean one", + err, + ); + HashMap::new() + } + }; + + Self { artifacts } + } + + #[cfg(test)] + pub(crate) fn empty() -> Self { + Self { + artifacts: HashMap::new(), + } + } + + /// Returns the state of the given artifact by its ID. + pub fn artifact_state_mut(&mut self, artifact_id: &ArtifactId) -> Option<&mut ArtifactState> { + self.artifacts.get_mut(artifact_id) + } + + /// Inform the table about the artifact with the given ID. The state will be set to "preparing". + pub fn insert_preparing(&mut self, artifact_id: ArtifactId) { + always!(self + .artifacts + .insert(artifact_id, ArtifactState::Preparing) + .is_none()); + } + + /// Insert an artifact with the given ID as "prepared". + #[cfg(test)] + pub fn insert_prepared(&mut self, artifact_id: ArtifactId, last_time_needed: SystemTime) { + always!(self + .artifacts + .insert(artifact_id, ArtifactState::Prepared { last_time_needed }) + .is_none()); + } + + /// Remove and retrive the artifacts from the table that are older than the supplied Time-To-Live. + pub fn prune(&mut self, artifact_ttl: Duration) -> Vec { + let now = SystemTime::now(); + + let mut to_remove = vec![]; + for (k, v) in self.artifacts.iter() { + if let ArtifactState::Prepared { + last_time_needed, .. + } = *v + { + if now + .duration_since(last_time_needed) + .map(|age| age > artifact_ttl) + .unwrap_or(false) + { + to_remove.push(k.clone()); + } + } + } + + to_remove + } +} + +async fn scan_for_known_artifacts( + cache_path: &Path, +) -> io::Result> { + let mut result = HashMap::new(); + + let mut dir = async_std::fs::read_dir(cache_path).await?; + while let Some(res) = dir.next().await { + let entry = res?; + + if entry.file_type().await?.is_dir() { + tracing::debug!( + target: LOG_TARGET, + "{} is a dir, and dirs do not belong to us. Removing", + entry.path().display(), + ); + let _ = async_std::fs::remove_dir_all(entry.path()).await; + } + + let path = entry.path(); + let file_name = match path.file_name() { + None => { + // A file without a file name? Weird, just skip it. + continue; + } + Some(file_name) => file_name, + }; + + let file_name = match file_name.to_str() { + None => { + tracing::debug!( + target: LOG_TARGET, + "{} is not utf-8. Removing", + path.display(), + ); + let _ = async_std::fs::remove_file(&path).await; + continue; + } + Some(file_name) => file_name, + }; + + let artifact_id = match ArtifactId::from_file_name(file_name) { + None => { + tracing::debug!( + target: LOG_TARGET, + "{} is not a recognized artifact. Removing", + path.display(), + ); + let _ = async_std::fs::remove_file(&path).await; + continue; + } + Some(artifact_id) => artifact_id, + }; + + // A sanity check so that we really can access the artifact through the artifact id. + if always!(artifact_id.path(cache_path).is_file().await) { + result.insert( + artifact_id, + ArtifactState::Prepared { + last_time_needed: SystemTime::now(), + }, + ); + } + } + + Ok(result) +} + +#[cfg(test)] +mod tests { + use super::ArtifactId; + + #[test] + fn from_file_name() { + assert!(ArtifactId::from_file_name("").is_none()); + assert!(ArtifactId::from_file_name("junk").is_none()); + + assert_eq!( + ArtifactId::from_file_name( + "wasmtime_1_0x0022800000000000000000000000000000000000000000000000000000000000" + ), + Some(ArtifactId::new( + hex_literal::hex![ + "0022800000000000000000000000000000000000000000000000000000000000" + ] + .into() + )), + ); + } +} diff --git a/node/core/pvf/src/error.rs b/node/core/pvf/src/error.rs new file mode 100644 index 000000000000..17f76375cb60 --- /dev/null +++ b/node/core/pvf/src/error.rs @@ -0,0 +1,56 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +/// A error raised during validation of the candidate. +#[derive(Debug, Clone)] +pub enum ValidationError { + /// The error was raised because the candidate is invalid. + InvalidCandidate(InvalidCandidate), + /// This error is raised due to inability to serve the request. + InternalError(String), +} + +/// A description of an error raised during executing a PVF and can be attributed to the combination +/// of the candidate [`polkadot_parachain::primitives::ValidationParams`] and the PVF. +#[derive(Debug, Clone)] +pub enum InvalidCandidate { + /// The failure is reported by the worker. The string contains the error message. + /// + /// This also includes the errors reported by the preparation pipeline. + WorkerReportedError(String), + /// The worker has died during validation of a candidate. That may fall in one of the following + /// categories, which we cannot distinguish programmatically: + /// + /// (a) Some sort of transient glitch caused the worker process to abort. An example would be that + /// the host machine ran out of free memory and the OOM killer started killing the processes, + /// and in order to save the parent it will "sacrifice child" first. + /// + /// (b) The candidate trigerred a code path that has lead to the process death. For example, + /// the PVF found a way to consume unbounded amount of resources and then it either exceeded + /// an rlimit (if set) or, again, invited OOM killer. Another possibility is a bug in + /// wasmtime allowed the PVF to gain control over the execution worker. + /// + /// We attribute such an event to an invalid candidate in either case. + /// + /// The rationale for this is that a glitch may lead to unfair rejecting candidate by a single + /// validator. If the glitch is somewhat more persistant the validator will reject all candidate + /// thrown at it and hopefully the operator notices it by decreased reward performance of the + /// validator. On the other hand, if the worker died because of (b) we would have better chances + /// to stop the attack. + AmbigiousWorkerDeath, + /// PVF execution (compilation is not included) took more time than was allotted. + HardTimeout, +} diff --git a/node/core/pvf/src/execute/mod.rs b/node/core/pvf/src/execute/mod.rs new file mode 100644 index 000000000000..4b139a98e51c --- /dev/null +++ b/node/core/pvf/src/execute/mod.rs @@ -0,0 +1,21 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +mod queue; +mod worker; + +pub use queue::{ToQueue, start}; +pub use worker::worker_entrypoint; \ No newline at end of file diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs new file mode 100644 index 000000000000..16f3ac9fa580 --- /dev/null +++ b/node/core/pvf/src/execute/queue.rs @@ -0,0 +1,329 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! A queue that handles requests for PVF execution. + +use crate::{ + worker_common::{IdleWorker, WorkerHandle}, + host::ResultSender, + LOG_TARGET, InvalidCandidate, ValidationError, +}; +use super::worker::Outcome; +use std::{collections::VecDeque, fmt, task::Poll}; +use futures::{ + Future, FutureExt, + channel::mpsc, + future::BoxFuture, + stream::{FuturesUnordered, StreamExt as _}, +}; +use async_std::path::PathBuf; +use slotmap::HopSlotMap; +use always_assert::always; + +slotmap::new_key_type! { struct Worker; } + +#[derive(Debug)] +pub enum ToQueue { + Enqueue { + artifact_path: PathBuf, + params: Vec, + result_tx: ResultSender, + }, +} + +struct ExecuteJob { + artifact_path: PathBuf, + params: Vec, + result_tx: ResultSender, +} + +struct WorkerData { + idle: Option, + handle: WorkerHandle, +} + +impl fmt::Debug for WorkerData { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "WorkerData(pid={})", self.handle.id()) + } +} + +struct Workers { + /// The registry of running workers. + running: HopSlotMap, + + /// The number of spawning but not yet spawned workers. + spawn_inflight: usize, + + /// The maximum number of workers queue can have at once. + capacity: usize, +} + +impl Workers { + fn can_afford_one_more(&self) -> bool { + self.spawn_inflight + self.running.len() < self.capacity + } + + fn find_available(&self) -> Option { + self.running + .iter() + .find_map(|d| if d.1.idle.is_some() { Some(d.0) } else { None }) + } + + fn claim_idle(&mut self, worker: Worker) -> IdleWorker { + let data = self + .running + .get_mut(worker) + .expect("the worker doesn't exist"); + data.idle.take().expect("the worker has no idle token") + } +} + +enum QueueEvent { + Spawn((IdleWorker, WorkerHandle)), + StartWork(Worker, Outcome, ResultSender), +} + +type Mux = FuturesUnordered>; + +struct Queue { + /// The receiver that receives messages to the pool. + to_queue_rx: mpsc::Receiver, + + program_path: PathBuf, + spawn_timeout_secs: u64, + + /// The queue of jobs that are waiting for a worker to pick up. + queue: VecDeque, + workers: Workers, + mux: Mux, +} + +impl Queue { + fn new( + program_path: PathBuf, + worker_capacity: usize, + spawn_timeout_secs: u64, + to_queue_rx: mpsc::Receiver, + ) -> Self { + Self { + program_path, + spawn_timeout_secs, + to_queue_rx, + queue: VecDeque::new(), + mux: Mux::new(), + workers: Workers { + running: HopSlotMap::with_capacity_and_key(10), + spawn_inflight: 0, + capacity: worker_capacity, + }, + } + } + + async fn run(mut self) { + loop { + futures::select! { + to_queue = self.to_queue_rx.next() => { + if let Some(to_queue) = to_queue { + handle_to_queue(&mut self, to_queue); + } else { + break; + } + } + ev = self.mux.select_next_some() => handle_mux(&mut self, ev).await, + } + + purge_dead(&mut self.workers).await; + } + } +} + +async fn purge_dead(workers: &mut Workers) { + let mut to_remove = vec![]; + for (worker, data) in workers.running.iter_mut() { + if let Poll::Ready(()) = futures::poll!(&mut data.handle) { + // a resolved future means that the worker has terminated. Weed it out. + to_remove.push(worker); + } + } + for w in to_remove { + let _ = workers.running.remove(w); + } +} + +fn handle_to_queue(queue: &mut Queue, to_queue: ToQueue) { + let ToQueue::Enqueue { + artifact_path, + params, + result_tx, + } = to_queue; + + let job = ExecuteJob { + artifact_path, + params, + result_tx, + }; + + if let Some(available) = queue.workers.find_available() { + assign(queue, available, job); + } else { + if queue.workers.can_afford_one_more() { + spawn_extra_worker(queue); + } + queue.queue.push_back(job); + } +} + +async fn handle_mux(queue: &mut Queue, event: QueueEvent) { + match event { + QueueEvent::Spawn((idle, handle)) => { + queue.workers.spawn_inflight -= 1; + + let worker = queue.workers.running.insert(WorkerData { + idle: Some(idle), + handle, + }); + + if let Some(job) = queue.queue.pop_front() { + assign(queue, worker, job); + } + } + QueueEvent::StartWork(worker, outcome, result_tx) => { + handle_job_finish(queue, worker, outcome, result_tx); + } + } +} + +/// If there are pending jobs in the queue, schedules the next of them onto the just freed up +/// worker. Otherwise, puts back into the available workers list. +fn handle_job_finish(queue: &mut Queue, worker: Worker, outcome: Outcome, result_tx: ResultSender) { + let (idle_worker, result) = match outcome { + Outcome::Ok { + result_descriptor, + duration_ms, + idle_worker, + } => { + // TODO: propagate the soft timeout + drop(duration_ms); + + (Some(idle_worker), Ok(result_descriptor)) + } + Outcome::InvalidCandidate { err, idle_worker } => ( + Some(idle_worker), + Err(ValidationError::InvalidCandidate( + InvalidCandidate::WorkerReportedError(err), + )), + ), + Outcome::HardTimeout => ( + None, + Err(ValidationError::InvalidCandidate( + InvalidCandidate::HardTimeout, + )), + ), + Outcome::IoErr => ( + None, + Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + )), + ), + }; + + // First we send the result. It may fail due the other end of the channel being dropped, that's + // legitimate and we don't treat that as an error. + let _ = result_tx.send(result); + + // Then, we should deal with the worker: + // + // - if the `idle_worker` token was returned we should either schedule the next task or just put + // it back so that the next incoming job will be able to claim it + // + // - if the `idle_worker` token was consumed, all the metadata pertaining to that worker should + // be removed. + if let Some(idle_worker) = idle_worker { + if let Some(data) = queue.workers.running.get_mut(worker) { + data.idle = Some(idle_worker); + + if let Some(job) = queue.queue.pop_front() { + assign(queue, worker, job); + } + } + } else { + always!(queue.workers.running.remove(worker).is_some()); + + if !queue.queue.is_empty() { + // The worker has died and we still have work we have to do. Request an extra worker. + // + // That can potentially overshoot, but that should be OK. + spawn_extra_worker(queue); + } + } +} + +fn spawn_extra_worker(queue: &mut Queue) { + queue + .mux + .push(spawn_worker_task(queue.program_path.clone(), queue.spawn_timeout_secs).boxed()); + queue.workers.spawn_inflight += 1; +} + +async fn spawn_worker_task(program_path: PathBuf, spawn_timeout_secs: u64) -> QueueEvent { + use futures_timer::Delay; + use std::time::Duration; + + loop { + match super::worker::spawn(&program_path, spawn_timeout_secs).await { + Ok((idle, handle)) => break QueueEvent::Spawn((idle, handle)), + Err(err) => { + tracing::warn!( + target: LOG_TARGET, + "failed to spawn an execute worker: {:?}", + err, + ); + + // Assume that the failure intermittent and retry after a delay. + Delay::new(Duration::from_secs(3)).await; + } + } + } +} + +/// Ask the given worker to perform the given job. +fn assign(queue: &mut Queue, worker: Worker, job: ExecuteJob) { + let idle = queue.workers.claim_idle(worker); + queue.mux.push( + async move { + let outcome = super::worker::start_work(idle, job.artifact_path, job.params).await; + QueueEvent::StartWork(worker, outcome, job.result_tx) + } + .boxed(), + ); +} + +pub fn start( + program_path: PathBuf, + worker_capacity: usize, + spawn_timeout_secs: u64, +) -> (mpsc::Sender, impl Future) { + let (to_queue_tx, to_queue_rx) = mpsc::channel(20); + let run = Queue::new( + program_path, + worker_capacity, + spawn_timeout_secs, + to_queue_rx, + ) + .run(); + (to_queue_tx, run) +} diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs new file mode 100644 index 000000000000..b65f0e19f734 --- /dev/null +++ b/node/core/pvf/src/execute/worker.rs @@ -0,0 +1,219 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::{artifacts::Artifact, executor_intf::TaskExecutor, worker_common::{ + IdleWorker, SpawnErr, WorkerHandle, bytes_to_path, framed_recv, framed_send, path_to_bytes, + spawn_with_program_path, worker_event_loop, + }}; +use std::time::{Duration, Instant}; +use async_std::{ + io, + os::unix::net::UnixStream, + path::{Path, PathBuf}, +}; +use futures::FutureExt; +use futures_timer::Delay; +use polkadot_parachain::primitives::ValidationResult; +use parity_scale_codec::{Encode, Decode}; + +pub async fn spawn( + program_path: &Path, + spawn_timeout_secs: u64, +) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { + let program_path = program_path.to_string_lossy(); + spawn_with_program_path( + "execute", + &program_path, + &["execute-worker"], + spawn_timeout_secs, + ) + .await +} + +pub enum Outcome { + Ok { + result_descriptor: ValidationResult, + duration_ms: u64, + idle_worker: IdleWorker, + }, + InvalidCandidate { + err: String, + idle_worker: IdleWorker, + }, + HardTimeout, + IoErr, +} + +pub async fn start_work( + worker: IdleWorker, + artifact_path: PathBuf, + validation_params: Vec, +) -> Outcome { + let IdleWorker { mut stream, pid } = worker; + + if let Err(_err) = send_request(&mut stream, &artifact_path, &validation_params).await { + return Outcome::IoErr; + } + + let response = futures::select! { + response = recv_response(&mut stream).fuse() => { + match response { + Err(_err) => return Outcome::IoErr, + Ok(response) => response, + } + }, + _ = Delay::new(Duration::from_secs(3)).fuse() => return Outcome::HardTimeout, + }; + + match response { + Response::Ok { + result_descriptor, + duration_ms, + } => Outcome::Ok { + result_descriptor, + duration_ms, + idle_worker: IdleWorker { stream, pid }, + }, + Response::InvalidCandidate(err) => Outcome::InvalidCandidate { + err, + idle_worker: IdleWorker { stream, pid }, + }, + } +} + +async fn send_request( + stream: &mut UnixStream, + artifact_path: &Path, + validation_params: &[u8], +) -> io::Result<()> { + framed_send(stream, path_to_bytes(artifact_path)).await?; + framed_send(stream, validation_params).await?; + Ok(()) +} + +async fn recv_request(stream: &mut UnixStream) -> io::Result<(PathBuf, Vec)> { + let artifact_path = framed_recv(stream).await?; + let artifact_path = bytes_to_path(&artifact_path).ok_or_else(|| { + io::Error::new( + io::ErrorKind::Other, + format!("execute pvf recv_request: non utf-8 artifact path"), + ) + })?; + let params = framed_recv(stream).await?; + Ok((artifact_path, params)) +} + +async fn send_response(stream: &mut UnixStream, response: Response) -> io::Result<()> { + framed_send(stream, &response.encode()).await?; + Ok(()) +} + +async fn recv_response(stream: &mut UnixStream) -> io::Result { + let response_bytes = framed_recv(stream).await?; + let response = Response::decode(&mut &response_bytes[..]).map_err(|e| { + io::Error::new( + io::ErrorKind::Other, + format!("execute pvf recv_response: decode error: {:?}", e), + ) + })?; + Ok(response) +} + +#[derive(Encode, Decode)] +enum Response { + Ok { + result_descriptor: ValidationResult, + duration_ms: u64, + }, + InvalidCandidate(String), +} + +impl Response { + fn format_invalid(ctx: &'static str, msg: &str) -> Self { + if msg.is_empty() { + Self::InvalidCandidate(ctx.to_string()) + } else { + Self::InvalidCandidate(format!("{}: {}", ctx, msg)) + } + } +} + +/// The entrypoint that the spawned execute worker should start with. The socket_path specifies +/// the path to the socket used to communicate with the host. +pub fn worker_entrypoint(socket_path: &str) { + worker_event_loop("execute", socket_path, |mut stream| async move { + let executor = TaskExecutor::new().map_err(|e| { + io::Error::new( + io::ErrorKind::Other, + format!("cannot create task executor: {}", e), + ) + })?; + loop { + let (artifact_path, params) = recv_request(&mut stream).await?; + let artifact_bytes = async_std::fs::read(&artifact_path).await?; + let artifact = Artifact::deserialize(&artifact_bytes).map_err(|e| { + io::Error::new( + io::ErrorKind::Other, + format!("artifact deserialization error: {}", e), + ) + })?; + let response = validate_using_artifact(&artifact, ¶ms, &executor); + send_response(&mut stream, response).await?; + } + }); +} + +fn validate_using_artifact(artifact: &Artifact, params: &[u8], spawner: &TaskExecutor) -> Response { + let compiled_artifact = match artifact { + Artifact::PrevalidationErr(msg) => { + return Response::format_invalid("prevalidation", msg); + } + Artifact::PreparationErr(msg) => { + return Response::format_invalid("preparation", msg); + } + Artifact::DidntMakeIt => { + return Response::format_invalid("preparation timeout", ""); + } + + Artifact::Compiled { compiled_artifact } => compiled_artifact, + }; + + let validation_started_at = Instant::now(); + let descriptor_bytes = + match crate::executor_intf::execute(compiled_artifact, params, spawner.clone()) { + Err(err) => { + return Response::format_invalid("execute", &err.to_string()); + } + Ok(d) => d, + }; + + let duration_ms = validation_started_at.elapsed().as_millis() as u64; + + let result_descriptor = match ValidationResult::decode(&mut &descriptor_bytes[..]) { + Err(err) => { + return Response::InvalidCandidate(format!( + "validation result decoding failed: {}", + err + )) + } + Ok(r) => r, + }; + + Response::Ok { + result_descriptor, + duration_ms, + } +} diff --git a/node/core/pvf/src/executor_intf.rs b/node/core/pvf/src/executor_intf.rs new file mode 100644 index 000000000000..7be61e67eb0c --- /dev/null +++ b/node/core/pvf/src/executor_intf.rs @@ -0,0 +1,236 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Interface to the Substrate Executor + +use std::any::{TypeId, Any}; +use sc_executor_common::{ + runtime_blob::RuntimeBlob, + wasm_runtime::{InvokeMethod, WasmModule as _}, +}; +use sc_executor_wasmtime::{Config, Semantics}; +use sp_core::{ + storage::{ChildInfo, TrackedStorageKey}, +}; +use sp_wasm_interface::HostFunctions as _; + +const CONFIG: Config = Config { + // TODO: Make sure we don't use more than 1GB: https://github.com/paritytech/polkadot/issues/699 + heap_pages: 1024, + allow_missing_func_imports: true, + cache_path: None, + semantics: Semantics { + fast_instance_reuse: false, + stack_depth_metering: false, + }, +}; + +/// Runs the prevaldation on the given code. Returns a [`RuntimeBlob`] if it succeeds. +pub fn prevalidate(code: &[u8]) -> Result { + let blob = RuntimeBlob::new(code)?; + // TODO: prevalidation + Ok(blob) +} + +/// Runs preparation on the given runtime blob. If successful, it returns a serialized compiled +/// artifact which can then be used to pass into [`execute`]. +pub fn prepare(blob: RuntimeBlob) -> Result, sc_executor_common::error::WasmError> { + sc_executor_wasmtime::prepare_runtime_artifact(blob, &CONFIG.semantics) +} + +/// Executes the given PVF in the form of a compiled artifact and returns the result of execution +/// upon success. +pub fn execute( + compiled_artifact: &[u8], + params: &[u8], + spawner: impl sp_core::traits::SpawnNamed + 'static, +) -> Result, sc_executor_common::error::Error> { + let mut extensions = sp_externalities::Extensions::new(); + + extensions.register(sp_core::traits::TaskExecutorExt::new(spawner)); + + let mut ext = ValidationExternalities(extensions); + + let result = sc_executor::with_externalities_safe(&mut ext, || { + let runtime = sc_executor_wasmtime::create_runtime( + sc_executor_wasmtime::CodeSupplyMode::Artifact { compiled_artifact }, + CONFIG, + HostFunctions::host_functions(), + )?; + Ok(runtime + .new_instance()? + .call(InvokeMethod::Export("validate_block"), params)?) + })?; + + result +} + +type HostFunctions = sp_io::SubstrateHostFunctions; + +/// The validation externalities that will panic on any storage related access. They just provide +/// access to the parachain extension. +struct ValidationExternalities(sp_externalities::Extensions); + +impl sp_externalities::Externalities for ValidationExternalities { + fn storage(&self, _: &[u8]) -> Option> { + panic!("storage: unsupported feature for parachain validation") + } + + fn storage_hash(&self, _: &[u8]) -> Option> { + panic!("storage_hash: unsupported feature for parachain validation") + } + + fn child_storage_hash(&self, _: &ChildInfo, _: &[u8]) -> Option> { + panic!("child_storage_hash: unsupported feature for parachain validation") + } + + fn child_storage(&self, _: &ChildInfo, _: &[u8]) -> Option> { + panic!("child_storage: unsupported feature for parachain validation") + } + + fn kill_child_storage(&mut self, _: &ChildInfo, _: Option) -> (bool, u32) { + panic!("kill_child_storage: unsupported feature for parachain validation") + } + + fn clear_prefix(&mut self, _: &[u8]) { + panic!("clear_prefix: unsupported feature for parachain validation") + } + + fn clear_child_prefix(&mut self, _: &ChildInfo, _: &[u8]) { + panic!("clear_child_prefix: unsupported feature for parachain validation") + } + + fn place_storage(&mut self, _: Vec, _: Option>) { + panic!("place_storage: unsupported feature for parachain validation") + } + + fn place_child_storage(&mut self, _: &ChildInfo, _: Vec, _: Option>) { + panic!("place_child_storage: unsupported feature for parachain validation") + } + + fn storage_root(&mut self) -> Vec { + panic!("storage_root: unsupported feature for parachain validation") + } + + fn child_storage_root(&mut self, _: &ChildInfo) -> Vec { + panic!("child_storage_root: unsupported feature for parachain validation") + } + + fn storage_changes_root(&mut self, _: &[u8]) -> Result>, ()> { + panic!("storage_changes_root: unsupported feature for parachain validation") + } + + fn next_child_storage_key(&self, _: &ChildInfo, _: &[u8]) -> Option> { + panic!("next_child_storage_key: unsupported feature for parachain validation") + } + + fn next_storage_key(&self, _: &[u8]) -> Option> { + panic!("next_storage_key: unsupported feature for parachain validation") + } + + fn storage_append(&mut self, _key: Vec, _value: Vec) { + panic!("storage_append: unsupported feature for parachain validation") + } + + fn storage_start_transaction(&mut self) { + panic!("storage_start_transaction: unsupported feature for parachain validation") + } + + fn storage_rollback_transaction(&mut self) -> Result<(), ()> { + panic!("storage_rollback_transaction: unsupported feature for parachain validation") + } + + fn storage_commit_transaction(&mut self) -> Result<(), ()> { + panic!("storage_commit_transaction: unsupported feature for parachain validation") + } + + fn wipe(&mut self) { + panic!("wipe: unsupported feature for parachain validation") + } + + fn commit(&mut self) { + panic!("commit: unsupported feature for parachain validation") + } + + fn read_write_count(&self) -> (u32, u32, u32, u32) { + panic!("read_write_count: unsupported feature for parachain validation") + } + + fn reset_read_write_count(&mut self) { + panic!("reset_read_write_count: unsupported feature for parachain validation") + } + + fn get_whitelist(&self) -> Vec { + panic!("get_whitelist: unsupported feature for parachain validation") + } + + fn set_whitelist(&mut self, _: Vec) { + panic!("set_whitelist: unsupported feature for parachain validation") + } + + fn set_offchain_storage(&mut self, _: &[u8], _: std::option::Option<&[u8]>) { + panic!("set_offchain_storage: unsupported feature for parachain validation") + } +} + +impl sp_externalities::ExtensionStore for ValidationExternalities { + fn extension_by_type_id(&mut self, type_id: TypeId) -> Option<&mut dyn Any> { + self.0.get_mut(type_id) + } + + fn register_extension_with_type_id( + &mut self, + type_id: TypeId, + extension: Box, + ) -> Result<(), sp_externalities::Error> { + self.0.register_with_type_id(type_id, extension) + } + + fn deregister_extension_by_type_id( + &mut self, + type_id: TypeId, + ) -> Result<(), sp_externalities::Error> { + if self.0.deregister(type_id) { + Ok(()) + } else { + Err(sp_externalities::Error::ExtensionIsNotRegistered(type_id)) + } + } +} + +/// An implementation of `SpawnNamed` on top of a futures' thread pool. +/// +/// This is a light handle meaning it will only clone the handle not create a new thread pool. +#[derive(Clone)] +pub(crate) struct TaskExecutor(futures::executor::ThreadPool); + +impl TaskExecutor { + pub(crate) fn new() -> Result { + futures::executor::ThreadPool::new() + .map_err(|e| e.to_string()) + .map(Self) + } +} + +impl sp_core::traits::SpawnNamed for TaskExecutor { + fn spawn_blocking(&self, _: &'static str, future: futures::future::BoxFuture<'static, ()>) { + self.0.spawn_ok(future); + } + + fn spawn(&self, _: &'static str, future: futures::future::BoxFuture<'static, ()>) { + self.0.spawn_ok(future); + } +} diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs new file mode 100644 index 000000000000..09747153238c --- /dev/null +++ b/node/core/pvf/src/host.rs @@ -0,0 +1,996 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::{ + Priority, Pvf, ValidationError, + artifacts::{Artifacts, ArtifactState, ArtifactId}, + execute, prepare, +}; +use std::{ + collections::HashMap, + time::{Duration, SystemTime}, +}; +use always_assert::never; +use async_std::{ + path::{Path, PathBuf}, + sync::Mutex, +}; +use polkadot_parachain::primitives::ValidationResult; +use futures::{ + Future, FutureExt, SinkExt, StreamExt, + channel::{mpsc, oneshot}, +}; + +/// An alias to not spell the type for the oneshot sender for the PVF execution result. +pub(crate) type ResultSender = oneshot::Sender>; + +/// A handle to the async process serving the validation host requests. +pub struct ValidationHost { + to_host_tx: Mutex>, +} + +impl ValidationHost { + /// Execute PVF with the given code, params and priority. The result of execution will be sent + /// to the provided result sender. + /// + /// This is async to accomodate the fact a possibility of back-pressure. In vast majority of + /// situations this function should return immediatelly. + /// + /// Returns an error if the request cannot be sent to the validation host, i.e. if it shut down. + pub async fn execute_pvf( + &self, + pvf: Pvf, + params: Vec, + priority: Priority, + result_tx: ResultSender, + ) -> Result<(), String> { + self.to_host_tx + .lock() + .await + .send(ToHost::ExecutePvf { + pvf, + params, + priority, + result_tx, + }) + .await + .map_err(|_| format!("the inner loop hung up")) + } + + /// Sends a signal to the validation host requesting to prepare a list of the given PVFs. + /// + /// This is async to accomodate the fact a possibility of back-pressure. In vast majority of + /// situations this function should return immediatelly. + /// + /// Returns an error if the request cannot be sent to the validation host, i.e. if it shut down. + pub async fn heads_up(&self, active_pvfs: Vec) -> Result<(), String> { + self.to_host_tx + .lock() + .await + .send(ToHost::HeadsUp { active_pvfs }) + .await + .map_err(|_| format!("the inner loop hung up")) + } +} + +enum ToHost { + ExecutePvf { + pvf: Pvf, + params: Vec, + priority: Priority, + result_tx: ResultSender, + }, + HeadsUp { + active_pvfs: Vec, + }, +} + +/// Configuration for the validation host. +pub struct Config { + /// The root directory where the prepared artifacts can be stored. + pub cache_path: PathBuf, + /// The path to the program that can be used to spawn the prepare workers. + pub prepare_worker_program_path: PathBuf, + /// The time alloted for a prepare worker to spawn and report to the host. + pub prepare_worker_spawn_timeout: u64, + /// The maximum number of workers that can be spawned in the prepare pool for tasks with the + /// priority below crticial. + pub prepare_workers_soft_max_num: usize, + /// The absolute number of workers that can be spawned in the prepare pool. + pub prepare_workers_hard_max_num: usize, + /// The path to the program that can be used to spawn the execute workers. + pub execute_worker_program_path: PathBuf, + /// The time alloted for an execute worker to spawn and report to the host. + pub execute_worker_spawn_timeout: u64, + /// The maximum number of execute workers that can run at the same time. + pub execute_workers_max_num: usize, +} + +impl Config { + /// Create a new instance of the configuration. + pub fn new(cache_path: std::path::PathBuf, program_path: std::path::PathBuf) -> Self { + // Do not contaminate the other parts of the codebase with the types from async_std. + let cache_path = PathBuf::from(cache_path); + let program_path = PathBuf::from(program_path); + + Self { + cache_path, + prepare_worker_program_path: program_path.clone(), + prepare_worker_spawn_timeout: 3, + prepare_workers_soft_max_num: 8, + prepare_workers_hard_max_num: 5, + execute_worker_program_path: program_path, + execute_worker_spawn_timeout: 3, + execute_workers_max_num: 5, + } + } +} + +/// Start the validation host. +/// +/// Returns a [handle][`ValidationHost`] to the started validation host and the future. The future +/// must be polled in order for validation host to function. +pub fn start(config: Config) -> (ValidationHost, impl Future) { + let (to_host_tx, to_host_rx) = mpsc::channel(10); + + let validation_host = ValidationHost { + to_host_tx: Mutex::new(to_host_tx), + }; + + let (to_prepare_pool, from_prepare_pool, run_prepare_pool) = prepare::start_pool( + config.prepare_worker_program_path.to_owned(), + config.prepare_worker_spawn_timeout, + ); + + let (to_prepare_queue_tx, from_prepare_queue_rx, run_prepare_queue) = prepare::start_queue( + config.prepare_workers_soft_max_num, + config.prepare_workers_hard_max_num, + config.cache_path.clone(), + to_prepare_pool, + from_prepare_pool, + ); + + let (to_execute_queue_tx, run_execute_queue) = execute::start( + config.execute_worker_program_path.to_owned(), + config.execute_workers_max_num, + config.execute_worker_spawn_timeout, + ); + + let (to_sweeper_tx, to_sweeper_rx) = mpsc::channel(100); + let run_sweeper = sweeper_task(to_sweeper_rx); + + let run = async move { + let artifacts = Artifacts::new(&config.cache_path).await; + + futures::pin_mut!( + run_prepare_queue, + run_prepare_pool, + run_execute_queue, + run_sweeper + ); + + run( + Inner { + cache_path: config.cache_path, + cleanup_pulse_interval: Duration::from_secs(3600), + artifact_ttl: Duration::from_secs(3600 * 24), + artifacts, + to_host_rx, + to_prepare_queue_tx, + from_prepare_queue_rx, + to_execute_queue_tx, + to_sweeper_tx, + awaiting_prepare: AwaitingPrepare::default(), + }, + run_prepare_pool, + run_prepare_queue, + run_execute_queue, + run_sweeper, + ) + .await + }; + + (validation_host, run) +} + +#[derive(Debug)] +struct PendingExecutionRequest { + params: Vec, + result_tx: ResultSender, +} + +#[derive(Default)] +struct AwaitingPrepare(HashMap>); + +impl AwaitingPrepare { + fn add( + &mut self, + artifact_id: ArtifactId, + params: Vec, + result_tx: ResultSender, + ) { + self.0 + .entry(artifact_id) + .or_default() + .push(PendingExecutionRequest { params, result_tx }); + } + + fn take(&mut self, artifact_id: &ArtifactId) -> Vec { + self.0.remove(artifact_id).unwrap_or_default() + } +} + +struct Inner { + cache_path: PathBuf, + cleanup_pulse_interval: Duration, + artifact_ttl: Duration, + artifacts: Artifacts, + + to_host_rx: mpsc::Receiver, + + to_prepare_queue_tx: mpsc::Sender, + from_prepare_queue_rx: mpsc::UnboundedReceiver, + + to_execute_queue_tx: mpsc::Sender, + to_sweeper_tx: mpsc::Sender, + + awaiting_prepare: AwaitingPrepare, +} + +#[derive(Debug)] +struct Fatal; + +async fn run( + Inner { + cache_path, + cleanup_pulse_interval, + artifact_ttl, + mut artifacts, + to_host_rx, + from_prepare_queue_rx, + mut to_prepare_queue_tx, + mut to_execute_queue_tx, + mut to_sweeper_tx, + mut awaiting_prepare, + }: Inner, + prepare_pool: impl Future + Unpin, + prepare_queue: impl Future + Unpin, + execute_queue: impl Future + Unpin, + sweeper: impl Future + Unpin, +) { + macro_rules! break_if_fatal { + ($expr:expr) => { + match $expr { + Err(Fatal) => break, + Ok(v) => v, + } + }; + } + + let cleanup_pulse = pulse_every(cleanup_pulse_interval).fuse(); + futures::pin_mut!(cleanup_pulse); + + let mut to_host_rx = to_host_rx.fuse(); + let mut from_prepare_queue_rx = from_prepare_queue_rx.fuse(); + + // Make sure that the task-futures are fused. + let mut prepare_queue = prepare_queue.fuse(); + let mut prepare_pool = prepare_pool.fuse(); + let mut execute_queue = execute_queue.fuse(); + let mut sweeper = sweeper.fuse(); + + loop { + futures::select_biased! { + _ = prepare_queue => { + never!(); + break; + }, + _ = prepare_pool => { + never!(); + break; + }, + _ = execute_queue => { + never!(); + break; + }, + _ = sweeper => { + never!(); + break; + }, + () = cleanup_pulse.select_next_some() => { + break_if_fatal!(handle_cleanup_pulse( + &cache_path, + &mut to_sweeper_tx, + &mut artifacts, + artifact_ttl, + ).await); + }, + to_host = to_host_rx.next() => { + let to_host = break_if_fatal!(to_host.ok_or(Fatal)); + + break_if_fatal!(handle_to_host( + &cache_path, + &mut artifacts, + &mut to_prepare_queue_tx, + &mut to_execute_queue_tx, + &mut awaiting_prepare, + to_host, + ) + .await); + }, + from_prepare_queue = from_prepare_queue_rx.next() => { + let prepare::FromQueue::Prepared(artifact_id) + = break_if_fatal!(from_prepare_queue.ok_or(Fatal)); + + // Note that preparation always succeeds. + // + // That's because the error conditions are written into the artifact and will be + // reported at the time of the execution. It potentially, but not necessarily, + // can be scheduled as a result of this function call, in case there are pending + // executions. + // + // We could be eager in terms of reporting and plumb the result from the prepartion + // worker but we don't for the sake of simplicity. + break_if_fatal!(handle_prepare_done( + &cache_path, + &mut artifacts, + &mut to_execute_queue_tx, + &mut awaiting_prepare, + artifact_id, + ).await); + }, + } + } +} + +async fn handle_to_host( + cache_path: &Path, + artifacts: &mut Artifacts, + prepare_queue: &mut mpsc::Sender, + execute_queue: &mut mpsc::Sender, + awaiting_prepare: &mut AwaitingPrepare, + to_host: ToHost, +) -> Result<(), Fatal> { + match to_host { + ToHost::ExecutePvf { + pvf, + params, + priority, + result_tx, + } => { + handle_execute_pvf( + cache_path, + artifacts, + prepare_queue, + execute_queue, + awaiting_prepare, + pvf, + params, + priority, + result_tx, + ) + .await?; + } + ToHost::HeadsUp { active_pvfs } => { + handle_heads_up(artifacts, prepare_queue, active_pvfs).await?; + } + } + + Ok(()) +} + +async fn handle_execute_pvf( + cache_path: &Path, + artifacts: &mut Artifacts, + prepare_queue: &mut mpsc::Sender, + execute_queue: &mut mpsc::Sender, + awaiting_prepare: &mut AwaitingPrepare, + pvf: Pvf, + params: Vec, + priority: Priority, + result_tx: ResultSender, +) -> Result<(), Fatal> { + let artifact_id = pvf.as_artifact_id(); + + if let Some(state) = artifacts.artifact_state_mut(&artifact_id) { + match state { + ArtifactState::Prepared { + ref mut last_time_needed, + } => { + *last_time_needed = SystemTime::now(); + + send_execute( + execute_queue, + execute::ToQueue::Enqueue { + artifact_path: artifact_id.path(cache_path), + params, + result_tx, + }, + ) + .await?; + } + ArtifactState::Preparing => { + send_prepare( + prepare_queue, + prepare::ToQueue::Amend { + priority, + artifact_id: artifact_id.clone(), + }, + ) + .await?; + + awaiting_prepare.add(artifact_id, params, result_tx); + } + } + } else { + // Artifact is unknown: register it and enqueue a job with the corresponding priority and + // + artifacts.insert_preparing(artifact_id.clone()); + send_prepare(prepare_queue, prepare::ToQueue::Enqueue { priority, pvf }).await?; + + awaiting_prepare.add(artifact_id, params, result_tx); + } + + return Ok(()); +} + +async fn handle_heads_up( + artifacts: &mut Artifacts, + prepare_queue: &mut mpsc::Sender, + active_pvfs: Vec, +) -> Result<(), Fatal> { + let now = SystemTime::now(); + + for active_pvf in active_pvfs { + let artifact_id = active_pvf.as_artifact_id(); + if let Some(state) = artifacts.artifact_state_mut(&artifact_id) { + match state { + ArtifactState::Prepared { + last_time_needed, .. + } => { + *last_time_needed = now.clone(); + } + ArtifactState::Preparing => { + // Already preparing. We don't need to send a priority amend either because + // it can't get any lower than the background. + } + } + } else { + // The artifact is unknown: register it and put a background job into the prepare queue. + artifacts.insert_preparing(artifact_id.clone()); + + send_prepare( + prepare_queue, + prepare::ToQueue::Enqueue { + priority: Priority::Background, + pvf: active_pvf, + }, + ) + .await?; + } + } + + Ok(()) +} + +async fn handle_prepare_done( + cache_path: &Path, + artifacts: &mut Artifacts, + execute_queue: &mut mpsc::Sender, + awaiting_prepare: &mut AwaitingPrepare, + artifact_id: ArtifactId, +) -> Result<(), Fatal> { + // Make some sanity checks and extract the current state. + let state = match artifacts.artifact_state_mut(&artifact_id) { + None => { + never!("an unknown artifact was prepared: {:?}", artifact_id); + return Ok(()); + } + Some(ArtifactState::Prepared { .. }) => { + never!("the artifact is already prepared: {:?}", artifact_id); + return Ok(()); + } + Some(state @ ArtifactState::Preparing) => state, + }; + + // It's finally time to dispatch all the execution requests that were waiting for this artifact + // to be prepared. + let artifact_path = artifact_id.path(&cache_path); + let pending_requests = awaiting_prepare.take(&artifact_id); + for PendingExecutionRequest { params, result_tx } in pending_requests { + if result_tx.is_canceled() { + // Preparation could've taken quite a bit of time and the requester may be not interested + // in execution anymore, in which case we just skip the request. + continue; + } + + send_execute( + execute_queue, + execute::ToQueue::Enqueue { + artifact_path: artifact_path.clone(), + params, + result_tx, + }, + ) + .await?; + } + + // Now consider the artifact prepared. + *state = ArtifactState::Prepared { + last_time_needed: SystemTime::now(), + }; + + Ok(()) +} + +async fn send_prepare( + prepare_queue: &mut mpsc::Sender, + to_queue: prepare::ToQueue, +) -> Result<(), Fatal> { + prepare_queue.send(to_queue).await.map_err(|_| Fatal) +} + +async fn send_execute( + execute_queue: &mut mpsc::Sender, + to_queue: execute::ToQueue, +) -> Result<(), Fatal> { + execute_queue.send(to_queue).await.map_err(|_| Fatal) +} + +async fn handle_cleanup_pulse( + cache_path: &Path, + sweeper_tx: &mut mpsc::Sender, + artifacts: &mut Artifacts, + artifact_ttl: Duration, +) -> Result<(), Fatal> { + let to_remove = artifacts.prune(artifact_ttl); + for artifact_id in to_remove { + let artifact_path = artifact_id.path(cache_path); + sweeper_tx.send(artifact_path).await.map_err(|_| Fatal)?; + } + + Ok(()) +} + +/// A simple task which sole purpose is to delete files thrown at it. +async fn sweeper_task(mut sweeper_rx: mpsc::Receiver) { + loop { + match sweeper_rx.next().await { + None => break, + Some(condemned) => { + let _ = async_std::fs::remove_file(condemned).await; + } + } + } +} + +/// A stream that yields a pulse continuously at a given interval. +fn pulse_every(interval: std::time::Duration) -> impl futures::Stream { + futures::stream::unfold(interval, { + |interval| async move { + futures_timer::Delay::new(interval).await; + Some(((), interval)) + } + }) + .map(|_| ()) +} + +#[cfg(test)] +mod tests { + use super::*; + use futures::future::BoxFuture; + use assert_matches::assert_matches; + + #[async_std::test] + async fn pulse_test() { + let pulse = pulse_every(Duration::from_millis(100)); + futures::pin_mut!(pulse); + + for _ in 0usize..5usize { + let start = std::time::Instant::now(); + let _ = pulse.next().await.unwrap(); + + let el = start.elapsed().as_millis(); + assert!(el > 50 && el < 150, "{}", el); + } + } + + /// Creates a new pvf which artifact id can be uniquely identified by the given number. + fn artifact_id(descriminator: u32) -> ArtifactId { + Pvf::from_discriminator(descriminator).as_artifact_id() + } + + fn artifact_path(descriminator: u32) -> PathBuf { + artifact_id(descriminator) + .path(&PathBuf::from(std::env::temp_dir())) + .to_owned() + } + + struct Builder { + cleanup_pulse_interval: Duration, + artifact_ttl: Duration, + artifacts: Artifacts, + } + + impl Builder { + fn default() -> Self { + Self { + // these are selected high to not interfere in tests in which pruning is irrelevant. + cleanup_pulse_interval: Duration::from_secs(3600), + artifact_ttl: Duration::from_secs(3600), + + artifacts: Artifacts::empty(), + } + } + + fn build(self) -> Test { + Test::new(self) + } + } + + struct Test { + to_host_tx: Option>, + + to_prepare_queue_rx: mpsc::Receiver, + from_prepare_queue_tx: mpsc::UnboundedSender, + to_execute_queue_rx: mpsc::Receiver, + to_sweeper_rx: mpsc::Receiver, + + run: BoxFuture<'static, ()>, + } + + impl Test { + fn new( + Builder { + cleanup_pulse_interval, + artifact_ttl, + artifacts, + }: Builder, + ) -> Self { + let cache_path = PathBuf::from(std::env::temp_dir()); + + let (to_host_tx, to_host_rx) = mpsc::channel(10); + let (to_prepare_queue_tx, to_prepare_queue_rx) = mpsc::channel(10); + let (from_prepare_queue_tx, from_prepare_queue_rx) = mpsc::unbounded(); + let (to_execute_queue_tx, to_execute_queue_rx) = mpsc::channel(10); + let (to_sweeper_tx, to_sweeper_rx) = mpsc::channel(10); + + let mk_dummy_loop = || std::future::pending().boxed(); + + let run = run( + Inner { + cache_path, + cleanup_pulse_interval, + artifact_ttl, + artifacts, + to_host_rx, + to_prepare_queue_tx, + from_prepare_queue_rx, + to_execute_queue_tx, + to_sweeper_tx, + awaiting_prepare: AwaitingPrepare::default(), + }, + mk_dummy_loop(), + mk_dummy_loop(), + mk_dummy_loop(), + mk_dummy_loop(), + ) + .boxed(); + + Self { + to_host_tx: Some(to_host_tx), + to_prepare_queue_rx, + from_prepare_queue_tx, + to_execute_queue_rx, + to_sweeper_rx, + run, + } + } + + fn host_handle(&mut self) -> ValidationHost { + let tx = self.to_host_tx.take().unwrap(); + ValidationHost { + to_host_tx: Mutex::new(tx), + } + } + + async fn poll_and_recv_to_prepare_queue(&mut self) -> prepare::ToQueue { + let to_prepare_queue_rx = &mut self.to_prepare_queue_rx; + run_until( + &mut self.run, + async { to_prepare_queue_rx.next().await.unwrap() }.boxed(), + ) + .await + } + + async fn poll_and_recv_to_execute_queue(&mut self) -> execute::ToQueue { + let to_execute_queue_rx = &mut self.to_execute_queue_rx; + run_until( + &mut self.run, + async { to_execute_queue_rx.next().await.unwrap() }.boxed(), + ) + .await + } + + async fn poll_ensure_to_execute_queue_is_empty(&mut self) { + use futures_timer::Delay; + + let to_execute_queue_rx = &mut self.to_execute_queue_rx; + run_until( + &mut self.run, + async { + futures::select! { + _ = Delay::new(Duration::from_millis(500)).fuse() => (), + _ = to_execute_queue_rx.next().fuse() => { + panic!("the execute queue supposed to be empty") + } + } + }.boxed(), + ) + .await + } + } + + async fn run_until( + task: &mut (impl Future + Unpin), + mut fut: (impl Future + Unpin), + ) -> R { + use std::task::Poll; + + let start = std::time::Instant::now(); + let fut = &mut fut; + loop { + if start.elapsed() > std::time::Duration::from_secs(2) { + // We expect that this will take only a couple of iterations and thus to take way + // less than a second. + panic!("timeout"); + } + + if let Poll::Ready(r) = futures::poll!(&mut *fut) { + break r; + } + + if futures::poll!(&mut *task).is_ready() { + panic!() + } + } + } + + #[async_std::test] + async fn shutdown_on_handle_drop() { + let test = Builder::default().build(); + + let join_handle = async_std::task::spawn(test.run); + + // Dropping the handle will lead to conclusion of the read part and thus will make the event + // loop to stop, which in turn will resolve the join handle. + drop(test.to_host_tx); + join_handle.await; + } + + #[async_std::test] + async fn pruning() { + let mock_now = SystemTime::now() - Duration::from_millis(1000); + + let mut builder = Builder::default(); + builder.cleanup_pulse_interval = Duration::from_millis(100); + builder.artifact_ttl = Duration::from_millis(500); + builder.artifacts.insert_prepared(artifact_id(1), mock_now); + builder.artifacts.insert_prepared(artifact_id(2), mock_now); + let mut test = builder.build(); + let host = test.host_handle(); + + host.heads_up(vec![Pvf::from_discriminator(1)]) + .now_or_never() + .unwrap() + .unwrap(); + + let to_sweeper_rx = &mut test.to_sweeper_rx; + run_until( + &mut test.run, + async { + assert_eq!(to_sweeper_rx.next().await.unwrap(), artifact_path(2)); + } + .boxed(), + ) + .await; + } + + #[async_std::test] + async fn amending_priority() { + let mut test = Builder::default().build(); + let host = test.host_handle(); + + host.heads_up(vec![Pvf::from_discriminator(1)]) + .await + .unwrap(); + + // Run until we receive a prepare request. + let prepare_q_rx = &mut test.to_prepare_queue_rx; + run_until( + &mut test.run, + async { + assert_matches!( + prepare_q_rx.next().await.unwrap(), + prepare::ToQueue::Enqueue { .. } + ); + } + .boxed(), + ) + .await; + + let (result_tx, _result_rx) = oneshot::channel(); + host.execute_pvf( + Pvf::from_discriminator(1), + vec![], + Priority::Critical, + result_tx, + ) + .await + .unwrap(); + + run_until( + &mut test.run, + async { + assert_matches!( + prepare_q_rx.next().await.unwrap(), + prepare::ToQueue::Amend { .. } + ); + } + .boxed(), + ) + .await; + } + + #[async_std::test] + async fn execute_pvf_requests() { + use crate::error::InvalidCandidate; + + let mut test = Builder::default().build(); + let host = test.host_handle(); + + let (result_tx, result_rx_pvf_1_1) = oneshot::channel(); + host.execute_pvf( + Pvf::from_discriminator(1), + b"pvf1".to_vec(), + Priority::Normal, + result_tx, + ) + .await + .unwrap(); + + let (result_tx, result_rx_pvf_1_2) = oneshot::channel(); + host.execute_pvf( + Pvf::from_discriminator(1), + b"pvf1".to_vec(), + Priority::Critical, + result_tx, + ) + .await + .unwrap(); + + let (result_tx, result_rx_pvf_2) = oneshot::channel(); + host.execute_pvf( + Pvf::from_discriminator(2), + b"pvf2".to_vec(), + Priority::Normal, + result_tx, + ) + .await + .unwrap(); + + assert_matches!( + test.poll_and_recv_to_prepare_queue().await, + prepare::ToQueue::Enqueue { .. } + ); + assert_matches!( + test.poll_and_recv_to_prepare_queue().await, + prepare::ToQueue::Amend { .. } + ); + assert_matches!( + test.poll_and_recv_to_prepare_queue().await, + prepare::ToQueue::Enqueue { .. } + ); + + test.from_prepare_queue_tx + .send(prepare::FromQueue::Prepared(artifact_id(1))) + .await + .unwrap(); + let result_tx_pvf_1_1 = assert_matches!( + test.poll_and_recv_to_execute_queue().await, + execute::ToQueue::Enqueue { result_tx, .. } => result_tx + ); + let result_tx_pvf_1_2 = assert_matches!( + test.poll_and_recv_to_execute_queue().await, + execute::ToQueue::Enqueue { result_tx, .. } => result_tx + ); + + test.from_prepare_queue_tx + .send(prepare::FromQueue::Prepared(artifact_id(2))) + .await + .unwrap(); + let result_tx_pvf_2 = assert_matches!( + test.poll_and_recv_to_execute_queue().await, + execute::ToQueue::Enqueue { result_tx, .. } => result_tx + ); + + result_tx_pvf_1_1 + .send(Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + ))) + .unwrap(); + assert_matches!( + result_rx_pvf_1_1.now_or_never().unwrap().unwrap(), + Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + )) + ); + + result_tx_pvf_1_2 + .send(Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + ))) + .unwrap(); + assert_matches!( + result_rx_pvf_1_2.now_or_never().unwrap().unwrap(), + Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + )) + ); + + result_tx_pvf_2 + .send(Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + ))) + .unwrap(); + assert_matches!( + result_rx_pvf_2.now_or_never().unwrap().unwrap(), + Err(ValidationError::InvalidCandidate( + InvalidCandidate::AmbigiousWorkerDeath, + )) + ); + } + + #[async_std::test] + async fn cancellation() { + let mut test = Builder::default().build(); + let host = test.host_handle(); + + let (result_tx, result_rx) = oneshot::channel(); + host.execute_pvf( + Pvf::from_discriminator(1), + b"pvf1".to_vec(), + Priority::Normal, + result_tx, + ) + .await + .unwrap(); + + assert_matches!( + test.poll_and_recv_to_prepare_queue().await, + prepare::ToQueue::Enqueue { .. } + ); + + test.from_prepare_queue_tx + .send(prepare::FromQueue::Prepared(artifact_id(1))) + .await + .unwrap(); + + drop(result_rx); + + test.poll_ensure_to_execute_queue_is_empty().await; + } +} diff --git a/node/core/pvf/src/lib.rs b/node/core/pvf/src/lib.rs new file mode 100644 index 000000000000..d29887edba2b --- /dev/null +++ b/node/core/pvf/src/lib.rs @@ -0,0 +1,100 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +#![warn(missing_docs)] + +//! A crate that implements PVF validation host. +//! +//! This crate provides a simple API. You first [`start`] the validation host, which gives you the +//! [handle][`ValidationHost`] and the future you need to poll. +//! +//! Then using the handle the client can send two types of requests: +//! +//! (a) PVF execution. This accepts the PVF [params][`polkadot_parachain::primitives::ValidationParams`] +//! and the PVF [code][`Pvf`], prepares (verifies and compiles) the code, and then executes PVF +//! with the params. +//! +//! (b) Heads up. This request allows to signal that the given PVF may be needed soon and that it +//! should be prepared for execution. +//! +//! The preparation results are cached for some time after they either used or was signalled in heads up. +//! All requests that depends on preparation of the same PVF are bundled together and will be executed +//! as soon as the artifact is prepared. +//! +//! # Priority +//! +//! PVF execution requests can specify the [priority][`Priority`] with which the given request should +//! be handled. Different priority levels have different effects. This is discussed below. +//! +//! Preparation started by a heads up signal always starts in with the background priority. If there +//! is already a request for that PVF preparation under way the priority is inherited. If after heads +//! up, a new PVF execution request comes in with a higher priority, then the original task's priority +//! will be adjusted to match the new one if it's larger. +//! +//! Priority can never go down, only up. +//! +//! # Under the hood +//! +//! Under the hood, the validation host is built using a bunch of communicating processes, not +//! dissimilar to actors. Each of such "processes" is a future task that contains an event loop that +//! processes incoming messages, potentially delegating sub-tasks to other "processes". +//! +//! Two of these processes are queues. The first one is for preparation jobs and the second one is for +//! execution. Both of the queues are backed by separate pools of workers of different kind. +//! +//! Preparation workers handle preparation requests by preverifying and instrumenting PVF wasm code, +//! and then passing it into the compiler, to prepare the artifact. +//! +//! Artifact is a final product of preparation. If the preparation succeeded, then the artifact will +//! contain the compiled code usable for quick execution by a worker later on. +//! +//! If the preparation failed, then the worker will still write the artifact with the error message. +//! We save the artifact with the error so that we don't try to prepare the artifacts that are broken +//! repeatedly. +//! +//! The artifact is saved on disk and is also tracked by an in memory table. This in memory table +//! doesn't contain the artifact contents though, only a flag that the given artifact is compiled. +//! +//! The execute workers will be fed by the requests from the execution queue, which is basically a +//! combination of a path to the compiled artifact and the +//! [params][`polkadot_parachain::primitives::ValidationParams`]. +//! +//! Each fixed interval of time a pruning task will run. This task will remove all artifacts that +//! weren't used or received a heads up signal for a while. + +mod artifacts; +mod error; +mod execute; +mod executor_intf; +mod host; +mod prepare; +mod priority; +mod pvf; +mod worker_common; + +#[doc(hidden)] +pub mod testing; + +pub use error::{ValidationError, InvalidCandidate}; +pub use priority::Priority; +pub use pvf::Pvf; + +pub use host::{start, Config, ValidationHost}; + +pub use execute::worker_entrypoint as execute_worker_entrypoint; +pub use prepare::worker_entrypoint as prepare_worker_entrypoint; + +const LOG_TARGET: &str = "parachain::pvf"; diff --git a/node/core/pvf/src/prepare/mod.rs b/node/core/pvf/src/prepare/mod.rs new file mode 100644 index 000000000000..c871f771bd2f --- /dev/null +++ b/node/core/pvf/src/prepare/mod.rs @@ -0,0 +1,23 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +mod queue; +mod worker; +mod pool; + +pub use queue::{ToQueue, FromQueue, start as start_queue}; +pub use pool::start as start_pool; +pub use worker::worker_entrypoint; diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs new file mode 100644 index 000000000000..b99dd2bf477b --- /dev/null +++ b/node/core/pvf/src/prepare/pool.rs @@ -0,0 +1,329 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::{ + worker_common::{IdleWorker, WorkerHandle}, + LOG_TARGET, +}; +use super::{ + worker::{self, Outcome}, +}; +use std::{fmt, sync::Arc, task::Poll}; +use async_std::path::{Path, PathBuf}; +use futures::{ + Future, FutureExt, StreamExt, channel::mpsc, future::BoxFuture, stream::FuturesUnordered, +}; +use slotmap::HopSlotMap; +use assert_matches::assert_matches; +use always_assert::{never, always}; + +slotmap::new_key_type! { pub struct Worker; } + +/// Messages that the pool handles. +#[derive(Debug, PartialEq, Eq)] +pub enum ToPool { + /// Request a new worker to spawn. + /// + /// This request won't fail in case if the worker cannot be created. Instead, we consider + /// the failures transient and we try to spawn a worker after a delay. + /// + /// [`FromPool::Spawned`] will be returned as soon as the worker is spawned. + /// + /// The client should anticipate a [`FromPool::Rip`] message, in case the spawned worker was + /// stopped for some reason. + Spawn, + + /// Kill the given worker. No-op if the given worker is not running. + /// + /// [`FromPool::Rip`] won't be sent in this case. However, the client should be prepared to + /// receive [`FromPool::Rip`] nonetheless, since the worker may be have been ripped before + /// this message is processed. + Kill(Worker), + + /// If the given worker was started with the background priority, then it will be raised up to + /// normal priority. Otherwise, it's no-op. + BumpPriority(Worker), + + /// Request the given worker to start working on the given code. + /// + /// Once the job either succeeded or failed, a [`FromPool::Concluded`] message will be sent back. + StartWork { + worker: Worker, + code: Arc>, + artifact_path: PathBuf, + background_priority: bool, + }, +} + +#[derive(Debug)] +pub enum FromPool { + /// The given worker was just spawned and is ready to be used. + Spawned(Worker), + + /// The given worker either succeeded or failed the given job. Under any circumstances the + /// artifact file has been written. The bool says whether the worker ripped. + Concluded(Worker, bool), + + /// The given worker ceased to exist. + Rip(Worker), +} + +struct WorkerData { + idle: Option, + handle: WorkerHandle, +} + +impl fmt::Debug for WorkerData { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "WorkerData(pid={})", self.handle.id()) + } +} + +enum PoolEvent { + Spawn(IdleWorker, WorkerHandle), + StartWork(Worker, Outcome), +} + +type Mux = FuturesUnordered>; + +struct Pool { + program_path: PathBuf, + spawn_timeout_secs: u64, + to_pool: mpsc::Receiver, + from_pool: mpsc::UnboundedSender, + spawned: HopSlotMap, + mux: Mux, +} + +/// A fatal error that warrants stopping the event loop of the pool. +struct Fatal; + +async fn run( + Pool { + program_path, + spawn_timeout_secs, + to_pool, + mut from_pool, + mut spawned, + mut mux, + }: Pool, +) { + macro_rules! break_if_fatal { + ($expr:expr) => { + match $expr { + Err(Fatal) => break, + Ok(v) => v, + } + }; + } + + let mut to_pool = to_pool.fuse(); + + loop { + futures::select! { + to_pool = to_pool.next() => { + let to_pool = break_if_fatal!(to_pool.ok_or(Fatal)); + handle_to_pool( + &program_path, + spawn_timeout_secs, + &mut spawned, + &mut mux, + to_pool, + ) + } + ev = mux.select_next_some() => break_if_fatal!(handle_mux(&mut from_pool, &mut spawned, ev)), + } + + break_if_fatal!(purge_dead(&mut from_pool, &mut spawned).await); + } +} + +async fn purge_dead( + from_pool: &mut mpsc::UnboundedSender, + spawned: &mut HopSlotMap, +) -> Result<(), Fatal> { + let mut to_remove = vec![]; + for (worker, data) in spawned.iter_mut() { + if data.idle.is_none() { + // The idle token is missing, meaning this worker is now occupied: skip it. This is + // because the worker process is observed by the work task and should it reach the + // deadline or be terminated it will be handled by the corresponding mux event. + continue; + } + + if let Poll::Ready(()) = futures::poll!(&mut data.handle) { + // a resolved future means that the worker has terminated. Weed it out. + to_remove.push(worker); + } + } + for w in to_remove { + let _ = spawned.remove(w); + reply(from_pool, FromPool::Rip(w))?; + } + Ok(()) +} + +fn handle_to_pool( + program_path: &Path, + spawn_timeout_secs: u64, + spawned: &mut HopSlotMap, + mux: &mut Mux, + to_pool: ToPool, +) { + match to_pool { + ToPool::Spawn => { + mux.push(spawn_worker_task(program_path.to_owned(), spawn_timeout_secs).boxed()); + } + ToPool::StartWork { + worker, + code, + artifact_path, + background_priority, + } => { + if let Some(data) = spawned.get_mut(worker) { + if let Some(idle) = data.idle.take() { + mux.push( + start_work_task(worker, idle, code, artifact_path, background_priority) + .boxed(), + ); + } else { + never!(); + } + } else { + // That's a relatively normal situation since the queue may send `start_work` and + // before receiving it the pool would report that the worker died. + } + } + ToPool::Kill(worker) => { + always!(spawned.remove(worker).is_some()); + } + ToPool::BumpPriority(worker) => { + if let Some(data) = spawned.get(worker) { + worker::bump_priority(&data.handle); + } else { + never!() + } + } + } +} + +async fn spawn_worker_task(program_path: PathBuf, spawn_timeout_secs: u64) -> PoolEvent { + use futures_timer::Delay; + use std::time::Duration; + + loop { + match worker::spawn(&program_path, spawn_timeout_secs).await { + Ok((idle, handle)) => break PoolEvent::Spawn(idle, handle), + Err(err) => { + tracing::warn!( + target: LOG_TARGET, + "failed to spawn a prepare worker: {:?}", + err, + ); + + // Assume that the failure intermittent and retry after a delay. + Delay::new(Duration::from_secs(3)).await; + } + } + } +} + +async fn start_work_task( + worker: Worker, + idle: IdleWorker, + code: Arc>, + artifact_path: PathBuf, + background_priority: bool, +) -> PoolEvent { + let outcome = worker::start_work(idle, code, artifact_path, background_priority).await; + PoolEvent::StartWork(worker, outcome) +} + +fn handle_mux( + from_pool: &mut mpsc::UnboundedSender, + spawned: &mut HopSlotMap, + event: PoolEvent, +) -> Result<(), Fatal> { + match event { + PoolEvent::Spawn(idle, handle) => { + let worker = spawned.insert(WorkerData { + idle: Some(idle), + handle, + }); + + reply(from_pool, FromPool::Spawned(worker))?; + + Ok(()) + } + PoolEvent::StartWork(worker, outcome) => { + match outcome { + Outcome::Concluded(idle) => { + let data = match spawned.get_mut(worker) { + None => { + // Perhaps the worker was killed meanwhile and the result is no longer + // relevant. + return Ok(()); + } + Some(data) => data, + }; + + // We just replace the idle worker that was loaned from this option during + // the work starting. + let old = data.idle.replace(idle); + assert_matches!(old, None, "attempt to overwrite an idle worker"); + + reply(from_pool, FromPool::Concluded(worker, false))?; + + Ok(()) + } + Outcome::DidntMakeIt => { + if let Some(_data) = spawned.remove(worker) { + reply(from_pool, FromPool::Concluded(worker, true))?; + } + + Ok(()) + } + } + } + } +} + +fn reply(from_pool: &mut mpsc::UnboundedSender, m: FromPool) -> Result<(), Fatal> { + from_pool.unbounded_send(m).map_err(|_| Fatal) +} + +pub fn start( + program_path: PathBuf, + spawn_timeout_secs: u64, +) -> ( + mpsc::Sender, + mpsc::UnboundedReceiver, + impl Future, +) { + let (to_pool_tx, to_pool_rx) = mpsc::channel(10); + let (from_pool_tx, from_pool_rx) = mpsc::unbounded(); + + let run = run(Pool { + program_path, + spawn_timeout_secs, + to_pool: to_pool_rx, + from_pool: from_pool_tx, + spawned: HopSlotMap::with_capacity_and_key(20), + mux: Mux::new(), + }); + + (to_pool_tx, from_pool_rx, run) +} diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs new file mode 100644 index 000000000000..b18d25238303 --- /dev/null +++ b/node/core/pvf/src/prepare/queue.rs @@ -0,0 +1,840 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use super::{ + pool::{self, Worker}, +}; +use crate::{LOG_TARGET, Priority, Pvf, artifacts::ArtifactId}; +use futures::{Future, SinkExt, channel::mpsc, stream::StreamExt as _}; +use std::collections::{HashMap, VecDeque}; +use async_std::path::PathBuf; +use always_assert::{always, never}; + +#[derive(Debug)] +pub enum ToQueue { + Enqueue { + priority: Priority, + pvf: Pvf, + }, + Amend { + priority: Priority, + artifact_id: ArtifactId, + }, +} + +#[derive(Debug, PartialEq, Eq)] +pub enum FromQueue { + Prepared(ArtifactId), +} + +#[derive(Default)] +struct Limits { + /// The maximum number of workers this pool can ever host. This is expected to be a small + /// number, e.g. within a dozen. + hard_capacity: usize, + + /// The number of workers we want aim to have. If there is a critical job and we are already + /// at `soft_capacity`, we are allowed to grow up to `hard_capacity`. Thus this should be equal + /// or smaller than `hard_capacity`. + soft_capacity: usize, +} + +impl Limits { + /// Returns `true` if the queue is allowed to request one more worker. + fn can_afford_one_more(&self, spawned_num: usize, critical: bool) -> bool { + let cap = if critical { + self.hard_capacity + } else { + self.soft_capacity + }; + spawned_num < cap + } + + /// Offer the worker back to the pool. The passed worker ID must be considered unusable unless + /// it wasn't taken by the pool, in which case it will be returned as `Some`. + fn should_cull(&mut self, spawned_num: usize) -> bool { + spawned_num > self.soft_capacity + } +} + +slotmap::new_key_type! { pub struct Job; } + +struct JobData { + /// The priority of this job. Can be bumped. + priority: Priority, + pvf: Pvf, + worker: Option, +} + +#[derive(Default)] +struct WorkerData { + job: Option, +} + +impl WorkerData { + fn is_idle(&self) -> bool { + self.job.is_none() + } +} + +/// A queue structured like this is prone to starving, however, we don't care that much since we expect +/// there is going to be a limited number of critical jobs and we don't really care if background starve. +#[derive(Default)] +struct Unscheduled { + background: VecDeque, + normal: VecDeque, + critical: VecDeque, +} + +impl Unscheduled { + fn queue_mut(&mut self, prio: Priority) -> &mut VecDeque { + match prio { + Priority::Background => &mut self.background, + Priority::Normal => &mut self.normal, + Priority::Critical => &mut self.critical, + } + } + + fn add(&mut self, prio: Priority, job: Job) { + self.queue_mut(prio).push_back(job); + } + + fn readd(&mut self, prio: Priority, job: Job) { + self.queue_mut(prio).push_front(job); + } + + fn is_empty(&self) -> bool { + self.background.is_empty() && self.normal.is_empty() && self.critical.is_empty() + } + + fn next(&mut self) -> Option { + let mut check = |prio: Priority| self.queue_mut(prio).pop_front(); + None.or_else(|| check(Priority::Critical)) + .or_else(|| check(Priority::Normal)) + .or_else(|| check(Priority::Background)) + } +} + +struct Queue { + to_queue_rx: mpsc::Receiver, + from_queue_tx: mpsc::UnboundedSender, + + to_pool_tx: mpsc::Sender, + from_pool_rx: mpsc::UnboundedReceiver, + + cache_path: PathBuf, + limits: Limits, + + jobs: slotmap::SlotMap, + + /// A mapping from artifact id to a job. + artifact_id_to_job: HashMap, + /// The registry of all workers. + workers: slotmap::SparseSecondaryMap, + /// The number of workers requested to spawn but not yet spawned. + spawn_inflight: usize, + + /// The jobs that are not yet scheduled. These are waiting until the next `poll` where they are + /// processed all at once. + unscheduled: Unscheduled, +} + +/// A fatal error that warrants stopping the queue. +struct Fatal; + +impl Queue { + fn new( + soft_capacity: usize, + hard_capacity: usize, + cache_path: PathBuf, + to_queue_rx: mpsc::Receiver, + from_queue_tx: mpsc::UnboundedSender, + to_pool_tx: mpsc::Sender, + from_pool_rx: mpsc::UnboundedReceiver, + ) -> Self { + Self { + to_queue_rx, + from_queue_tx, + to_pool_tx, + from_pool_rx, + cache_path, + spawn_inflight: 0, + limits: Limits { + soft_capacity, + hard_capacity, + }, + jobs: slotmap::SlotMap::with_key(), + unscheduled: Unscheduled::default(), + artifact_id_to_job: HashMap::new(), + workers: slotmap::SparseSecondaryMap::new(), + } + } + + async fn run(mut self) { + macro_rules! break_if_fatal { + ($expr:expr) => { + if let Err(Fatal) = $expr { + break; + } + }; + } + + loop { + // biased to make it behave deterministically for tests. + futures::select_biased! { + to_queue = self.to_queue_rx.select_next_some() => + break_if_fatal!(handle_to_queue(&mut self, to_queue).await), + from_pool = self.from_pool_rx.select_next_some() => + break_if_fatal!(handle_from_pool(&mut self, from_pool).await), + } + } + } +} + +async fn handle_to_queue(queue: &mut Queue, to_queue: ToQueue) -> Result<(), Fatal> { + match to_queue { + ToQueue::Enqueue { priority, pvf } => { + handle_enqueue(queue, priority, pvf).await?; + } + ToQueue::Amend { + priority, + artifact_id, + } => { + handle_amend(queue, priority, artifact_id).await?; + } + } + Ok(()) +} + +async fn handle_enqueue(queue: &mut Queue, priority: Priority, pvf: Pvf) -> Result<(), Fatal> { + let artifact_id = pvf.as_artifact_id(); + if never!(queue.artifact_id_to_job.contains_key(&artifact_id)) { + // We already know about this artifact yet it was still enqueued. + tracing::warn!( + target: LOG_TARGET, + "duplicate `enqueue` command received for {:?}", + artifact_id, + ); + return Ok(()); + } + + let job = queue.jobs.insert(JobData { + priority, + pvf, + worker: None, + }); + queue.artifact_id_to_job.insert(artifact_id, job); + + if let Some(available) = find_idle_worker(queue) { + // This may seem not fair (w.r.t priority) on the first glance, but it should be. This is + // because as soon as a worker finishes with the job it's immediatelly given the next one. + assign(queue, available, job).await?; + } else { + spawn_extra_worker(queue, priority.is_critical()).await?; + queue.unscheduled.add(priority, job); + } + + Ok(()) +} + +fn find_idle_worker(queue: &mut Queue) -> Option { + queue + .workers + .iter() + .filter(|(_, data)| data.is_idle()) + .map(|(k, _)| k) + .next() +} + +async fn handle_amend( + queue: &mut Queue, + priority: Priority, + artifact_id: ArtifactId, +) -> Result<(), Fatal> { + if let Some(&job) = queue.artifact_id_to_job.get(&artifact_id) { + let mut job_data: &mut JobData = &mut queue.jobs[job]; + + if job_data.priority < priority { + // The new priority is higher. We should do two things: + // - if the worker was already spawned with the background prio and the new one is not + // (it's already the case, if we are in this branch but we still do the check for + // clarity), then we should tell the pool to bump the priority for the worker. + // + // - save the new priority in the job. + + if let Some(worker) = job_data.worker { + if job_data.priority.is_background() && !priority.is_background() { + send_pool(&mut queue.to_pool_tx, pool::ToPool::BumpPriority(worker)).await?; + } + } + + job_data.priority = priority; + } + } + + Ok(()) +} + +async fn handle_from_pool(queue: &mut Queue, from_pool: pool::FromPool) -> Result<(), Fatal> { + use pool::FromPool::*; + match from_pool { + Spawned(worker) => handle_worker_spawned(queue, worker).await?, + Concluded(worker, rip) => handle_worker_concluded(queue, worker, rip).await?, + Rip(worker) => handle_worker_rip(queue, worker).await?, + } + Ok(()) +} + +async fn handle_worker_spawned(queue: &mut Queue, worker: Worker) -> Result<(), Fatal> { + queue.workers.insert(worker, WorkerData::default()); + queue.spawn_inflight -= 1; + + if let Some(job) = queue.unscheduled.next() { + assign(queue, worker, job).await?; + } + + Ok(()) +} + +async fn handle_worker_concluded( + queue: &mut Queue, + worker: Worker, + rip: bool, +) -> Result<(), Fatal> { + macro_rules! never_none { + ($expr:expr) => { + match $expr { + Some(v) => v, + None => { + never!("never_none, {}", stringify!($expr)); + return Ok(()); + } + } + }; + } + + // Find out on which artifact was the worker working. + let worker_data = never_none!(queue.workers.get_mut(worker)); + let job = never_none!(worker_data.job.take()); + let job_data = never_none!(queue.jobs.remove(job)); + let artifact_id = job_data.pvf.as_artifact_id(); + + queue.artifact_id_to_job.remove(&artifact_id); + + reply(&mut queue.from_queue_tx, FromQueue::Prepared(artifact_id))?; + + // Figure out what to do with the worker. + if rip { + let worker_data = queue.workers.remove(worker); + // worker should exist, it's asserted above. + always!(worker_data.is_some()); + + if !queue.unscheduled.is_empty() { + // That is unconditionally not critical just to not accidentally fill up + // the pool up to the hard cap. + spawn_extra_worker(queue, false).await?; + } + } else { + if queue + .limits + .should_cull(queue.workers.len() + queue.spawn_inflight) + { + // We no longer need services of this worker. Kill it. + queue.workers.remove(worker); + send_pool(&mut queue.to_pool_tx, pool::ToPool::Kill(worker)).await?; + } else { + // see if there are more work available and schedule it. + if let Some(job) = queue.unscheduled.next() { + assign(queue, worker, job).await?; + } + } + } + + Ok(()) +} + +async fn handle_worker_rip(queue: &mut Queue, worker: Worker) -> Result<(), Fatal> { + let worker_data = queue.workers.remove(worker); + + if let Some(WorkerData { job: Some(job), .. }) = worker_data { + // This is an edge case where the worker ripped after we send assignment but before it + // was received by the pool. + let priority = queue.jobs.get(job).map(|data| data.priority).unwrap_or_else(|| { + never!(); + Priority::Normal + }); + queue.unscheduled.readd(priority, job); + } + + // If there are still jobs left, spawn another worker to replace the ripped one (but only if it + // was indeed removed). That is unconditionally not critical just to not accidentally fill up + // the pool up to the hard cap. + if worker_data.is_some() && !queue.unscheduled.is_empty() { + spawn_extra_worker(queue, false).await?; + } + Ok(()) +} + +/// Spawns an extra worker if possible. +async fn spawn_extra_worker(queue: &mut Queue, critical: bool) -> Result<(), Fatal> { + if queue + .limits + .can_afford_one_more(queue.workers.len() + queue.spawn_inflight, critical) + { + queue.spawn_inflight += 1; + send_pool(&mut queue.to_pool_tx, pool::ToPool::Spawn).await?; + } + + Ok(()) +} + +/// Attaches the work to the given worker telling the poll about the job. +async fn assign(queue: &mut Queue, worker: Worker, job: Job) -> Result<(), Fatal> { + let job_data = &mut queue.jobs[job]; + + let artifact_id = job_data.pvf.as_artifact_id(); + let artifact_path = artifact_id.path(&queue.cache_path); + + job_data.worker = Some(worker); + + queue.workers[worker].job = Some(job); + + send_pool( + &mut queue.to_pool_tx, + pool::ToPool::StartWork { + worker, + code: job_data.pvf.code.clone(), + artifact_path, + background_priority: job_data.priority.is_background(), + }, + ) + .await?; + + Ok(()) +} + +fn reply(from_queue_tx: &mut mpsc::UnboundedSender, m: FromQueue) -> Result<(), Fatal> { + from_queue_tx.unbounded_send(m).map_err(|_| { + // The host has hung up and thus it's fatal and we should shutdown ourselves. + Fatal + }) +} + +async fn send_pool( + to_pool_tx: &mut mpsc::Sender, + m: pool::ToPool, +) -> Result<(), Fatal> { + to_pool_tx.send(m).await.map_err(|_| { + // The pool has hung up and thus we are no longer are able to fulfill our duties. Shutdown. + Fatal + }) +} + +/// Spins up the queue and returns the future that should be polled to make the queue functional. +pub fn start( + soft_capacity: usize, + hard_capacity: usize, + cache_path: PathBuf, + to_pool_tx: mpsc::Sender, + from_pool_rx: mpsc::UnboundedReceiver, +) -> ( + mpsc::Sender, + mpsc::UnboundedReceiver, + impl Future, +) { + let (to_queue_tx, to_queue_rx) = mpsc::channel(150); + let (from_queue_tx, from_queue_rx) = mpsc::unbounded(); + + let run = Queue::new( + soft_capacity, + hard_capacity, + cache_path, + to_queue_rx, + from_queue_tx, + to_pool_tx, + from_pool_rx, + ) + .run(); + + (to_queue_tx, from_queue_rx, run) +} + +#[cfg(test)] +mod tests { + use slotmap::SlotMap; + use assert_matches::assert_matches; + use futures::{FutureExt, future::BoxFuture}; + use std::task::Poll; + use super::*; + + /// Creates a new pvf which artifact id can be uniquely identified by the given number. + fn pvf(descriminator: u32) -> Pvf { + Pvf::from_discriminator(descriminator) + } + + async fn run_until( + task: &mut (impl Future + Unpin), + mut fut: (impl Future + Unpin), + ) -> R { + let start = std::time::Instant::now(); + let fut = &mut fut; + loop { + if start.elapsed() > std::time::Duration::from_secs(1) { + // We expect that this will take only a couple of iterations and thus to take way + // less than a second. + panic!("timeout"); + } + + if let Poll::Ready(r) = futures::poll!(&mut *fut) { + break r; + } + + if futures::poll!(&mut *task).is_ready() { + panic!() + } + } + } + + struct Test { + _tempdir: tempfile::TempDir, + run: BoxFuture<'static, ()>, + workers: SlotMap, + from_pool_tx: mpsc::UnboundedSender, + to_pool_rx: mpsc::Receiver, + to_queue_tx: mpsc::Sender, + from_queue_rx: mpsc::UnboundedReceiver, + } + + impl Test { + fn new(soft_capacity: usize, hard_capacity: usize) -> Self { + let tempdir = tempfile::tempdir().unwrap(); + + let (to_pool_tx, to_pool_rx) = mpsc::channel(10); + let (from_pool_tx, from_pool_rx) = mpsc::unbounded(); + + let workers: SlotMap = SlotMap::with_key(); + + let (to_queue_tx, from_queue_rx, run) = start( + soft_capacity, + hard_capacity, + tempdir.path().to_owned().into(), + to_pool_tx, + from_pool_rx, + ); + + Self { + _tempdir: tempdir, + run: run.boxed(), + workers, + from_pool_tx, + to_pool_rx, + to_queue_tx, + from_queue_rx, + } + } + + fn send_queue(&mut self, to_queue: ToQueue) { + self.to_queue_tx + .send(to_queue) + .now_or_never() + .unwrap() + .unwrap(); + } + + async fn poll_and_recv_from_queue(&mut self) -> FromQueue { + let from_queue_rx = &mut self.from_queue_rx; + run_until( + &mut self.run, + async { from_queue_rx.next().await.unwrap() }.boxed(), + ) + .await + } + + fn send_from_pool(&mut self, from_pool: pool::FromPool) { + self.from_pool_tx + .send(from_pool) + .now_or_never() + .unwrap() + .unwrap(); + } + + async fn poll_and_recv_to_pool(&mut self) -> pool::ToPool { + let to_pool_rx = &mut self.to_pool_rx; + run_until( + &mut self.run, + async { to_pool_rx.next().await.unwrap() }.boxed(), + ) + .await + } + + async fn poll_ensure_to_pool_is_empty(&mut self) { + use futures_timer::Delay; + use std::time::Duration; + + let to_pool_rx = &mut self.to_pool_rx; + run_until( + &mut self.run, + async { + futures::select! { + _ = Delay::new(Duration::from_millis(500)).fuse() => (), + _ = to_pool_rx.next().fuse() => { + panic!("to pool supposed to be empty") + } + } + }.boxed(), + ) + .await + } + } + + #[async_std::test] + async fn properly_concludes() { + let mut test = Test::new(2, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Background, + pvf: pvf(1), + }); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w)); + test.send_from_pool(pool::FromPool::Concluded(w, false)); + + assert_eq!( + test.poll_and_recv_from_queue().await, + FromQueue::Prepared(pvf(1).as_artifact_id()) + ); + } + + #[async_std::test] + async fn dont_spawn_over_soft_limit_unless_critical() { + let mut test = Test::new(2, 3); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(1), + }); + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(2), + }); + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(3), + }); + + // Receive only two spawns. + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w1 = test.workers.insert(()); + let w2 = test.workers.insert(()); + + test.send_from_pool(pool::FromPool::Spawned(w1)); + test.send_from_pool(pool::FromPool::Spawned(w2)); + + // Get two start works. + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + + test.send_from_pool(pool::FromPool::Concluded(w1, false)); + + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + + // Enqueue a critical job. + test.send_queue(ToQueue::Enqueue { + priority: Priority::Critical, + pvf: pvf(4), + }); + + // 2 out of 2 are working, but there is a critical job incoming. That means that spawning + // another worker is warranted. + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + } + + #[async_std::test] + async fn cull_unwanted() { + let mut test = Test::new(1, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(1), + }); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + let w1 = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w1)); + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + + // Enqueue a critical job, which warrants spawning over the soft limit. + test.send_queue(ToQueue::Enqueue { + priority: Priority::Critical, + pvf: pvf(2), + }); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + // However, before the new worker had a chance to spawn, the first worker finishes with its + // job. The old worker will be killed while the new worker will be let live, even though + // it's not instantiated. + // + // That's a bit silly in this context, but in production there will be an entire pool up + // to the `soft_capacity` of workers and it doesn't matter which one to cull. Either way, + // we just check that edge case of an edge case works. + test.send_from_pool(pool::FromPool::Concluded(w1, false)); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Kill(w1)); + } + + #[async_std::test] + async fn bump_prio_on_urgency_change() { + let mut test = Test::new(2, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Background, + pvf: pvf(1), + }); + + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w)); + + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + test.send_queue(ToQueue::Amend { + priority: Priority::Normal, + artifact_id: pvf(1).as_artifact_id(), + }); + + assert_eq!( + test.poll_and_recv_to_pool().await, + pool::ToPool::BumpPriority(w) + ); + } + + #[async_std::test] + async fn worker_mass_die_out_doesnt_stall_queue() { + let mut test = Test::new(2, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(1), + }); + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(2), + }); + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(3), + }); + + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w1 = test.workers.insert(()); + let w2 = test.workers.insert(()); + + test.send_from_pool(pool::FromPool::Spawned(w1)); + test.send_from_pool(pool::FromPool::Spawned(w2)); + + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + + // Conclude worker 1 and rip it. + test.send_from_pool(pool::FromPool::Concluded(w1, true)); + + // Since there is still work, the queue requested one extra worker to spawn to handle the + // remaining enqueued work items. + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + assert_eq!(test.poll_and_recv_from_queue().await, FromQueue::Prepared(pvf(1).as_artifact_id())); + } + + #[async_std::test] + async fn doesnt_resurrect_ripped_worker_if_no_work() { + let mut test = Test::new(2, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(1), + }); + + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w1 = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w1)); + + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + + test.send_from_pool(pool::FromPool::Concluded(w1, true)); + test.poll_ensure_to_pool_is_empty().await; + } + + #[async_std::test] + async fn rip_for_start_work() { + let mut test = Test::new(2, 2); + + test.send_queue(ToQueue::Enqueue { + priority: Priority::Normal, + pvf: pvf(1), + }); + + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w1 = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w1)); + + // Now, to the interesting part. After the queue normally issues the start_work command to + // the pool, before receiving the command the queue may report that the worker ripped. + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + test.send_from_pool(pool::FromPool::Rip(w1)); + + // In this case, the pool should spawn a new worker and request it to work on the item. + assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); + + let w2 = test.workers.insert(()); + test.send_from_pool(pool::FromPool::Spawned(w2)); + assert_matches!( + test.poll_and_recv_to_pool().await, + pool::ToPool::StartWork { .. } + ); + } +} diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs new file mode 100644 index 000000000000..3f0d4d0fa5f3 --- /dev/null +++ b/node/core/pvf/src/prepare/worker.rs @@ -0,0 +1,185 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::{ + LOG_TARGET, + artifacts::Artifact, + worker_common::{ + IdleWorker, SpawnErr, WorkerHandle, bytes_to_path, framed_recv, framed_send, path_to_bytes, + spawn_with_program_path, tmpfile, worker_event_loop, + }, +}; +use async_std::{ + io, + os::unix::net::UnixStream, + path::{PathBuf, Path}, +}; +use futures::FutureExt as _; +use futures_timer::Delay; +use std::{sync::Arc, time::Duration}; + +const NICENESS_BACKGROUND: i32 = 10; +const NICENESS_FOREGROUND: i32 = 0; + +const COMPILATION_TIMEOUT: Duration = Duration::from_secs(5); + +pub async fn spawn( + program_path: &Path, + spawn_timeout_secs: u64, +) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { + let program_path = program_path.to_string_lossy(); + spawn_with_program_path( + "prepare", + &program_path, + &["prepare-worker"], + spawn_timeout_secs, + ) + .await +} + +pub enum Outcome { + /// The worker has finished the work assigned to it. + Concluded(IdleWorker), + /// The execution was interrupted abruptly and the worker is not available anymore. For example, + /// this could've happen because the worker hadn't finished the work until the given deadline. + /// + /// Note that in this case the artifact file is written (unless there was an error writing the + /// the artifact). + /// + /// This doesn't return an idle worker instance, thus this worker is no longer usable. + DidntMakeIt, +} + +pub async fn start_work( + worker: IdleWorker, + code: Arc>, + artifact_path: PathBuf, + background_priority: bool, +) -> Outcome { + let IdleWorker { mut stream, pid } = worker; + + if background_priority { + renice(pid, NICENESS_BACKGROUND); + } + + if let Err(err) = send_request(&mut stream, code).await { + tracing::warn!("failed to send a prepare request to pid={}: {:?}", pid, err); + return Outcome::DidntMakeIt; + } + + // Wait for the result from the worker, keeping in mind that there may be a timeout, the + // worker may get killed, or something along these lines. + // + // In that case we should handle these gracefully by writing the artifact file by ourselves. + // We may potentially overwrite the artifact in rare cases where the worker didn't make + // it to report back the result. + + enum Selected { + Done, + IoErr, + Deadline, + } + + let selected = futures::select! { + artifact_path_bytes = framed_recv(&mut stream).fuse() => { + match artifact_path_bytes { + Ok(bytes) => { + if let Some(tmp_path) = bytes_to_path(&bytes) { + async_std::fs::rename(tmp_path, &artifact_path) + .await + .map(|_| Selected::Done) + .unwrap_or(Selected::IoErr) + } else { + Selected::IoErr + } + }, + Err(_) => Selected::IoErr, + } + }, + _ = Delay::new(COMPILATION_TIMEOUT).fuse() => Selected::Deadline, + }; + + match selected { + Selected::Done => { + renice(pid, NICENESS_FOREGROUND); + Outcome::Concluded(IdleWorker { stream, pid }) + } + Selected::IoErr | Selected::Deadline => { + let bytes = Artifact::DidntMakeIt.serialize(); + // best effort: there is nothing we can do here if the write fails. + let _ = async_std::fs::write(&artifact_path, &bytes).await; + Outcome::DidntMakeIt + } + } +} + +async fn send_request(stream: &mut UnixStream, code: Arc>) -> io::Result<()> { + framed_send(stream, &*code).await?; + Ok(()) +} + +async fn recv_request(stream: &mut UnixStream) -> io::Result> { + let code = framed_recv(stream).await?; + Ok(code) +} + +pub fn bump_priority(handle: &WorkerHandle) { + let pid = handle.id(); + renice(pid, NICENESS_FOREGROUND); +} + +fn renice(pid: u32, niceness: i32) { + // Consider upstreaming this to the `nix` crate. + unsafe { + if -1 == libc::setpriority(libc::PRIO_PROCESS, pid, niceness) { + let err = std::io::Error::last_os_error(); + tracing::warn!(target: LOG_TARGET, "failed to set the priority: {:?}", err,); + } + } +} + +/// The entrypoint that the spawned prepare worker should start with. The socket_path specifies +/// the path to the socket used to communicate with the host. +pub fn worker_entrypoint(socket_path: &str) { + worker_event_loop("prepare", socket_path, |mut stream| async move { + loop { + let code = recv_request(&mut stream).await?; + + let artifact_bytes = prepare_artifact(&code).serialize(); + + // Write the serialized artifact into into a temp file. + let dest = tmpfile("prepare-artifact-"); + async_std::fs::write(&dest, &artifact_bytes).await?; + + // Communicate the results back to the host. + framed_send(&mut stream, &path_to_bytes(&dest)).await?; + } + }); +} + +fn prepare_artifact(code: &[u8]) -> Artifact { + let blob = match crate::executor_intf::prevalidate(code) { + Err(err) => { + return Artifact::PrevalidationErr(format!("{:?}", err)); + } + Ok(b) => b, + }; + + match crate::executor_intf::prepare(blob) { + Ok(compiled_artifact) => Artifact::Compiled { compiled_artifact }, + Err(err) => Artifact::PreparationErr(format!("{:?}", err)), + } +} diff --git a/node/core/pvf/src/priority.rs b/node/core/pvf/src/priority.rs new file mode 100644 index 000000000000..a52e1bcf4a7b --- /dev/null +++ b/node/core/pvf/src/priority.rs @@ -0,0 +1,46 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +/// A priority assigned to execution of a PVF. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub enum Priority { + /// Jobs in this priority will be executed in the background, meaning that they will be only + /// given spare CPU time. + /// + /// This is mainly for cache warmings. + Background, + /// Normal priority for things that do not require immediate response, but still need to be + /// done pretty quick. + /// + /// Approvals and disputes fall into this category. + Normal, + /// This priority is used for requests that are required to be processed as soon as possible. + /// + /// For example, backing is on critical path and require execution as soon as possible. + Critical, +} + +impl Priority { + /// Returns `true` if `self` is `Crticial` + pub fn is_critical(&self) -> bool { + *self == Priority::Critical + } + + /// Returns `true` if `self` is `Background` + pub fn is_background(&self) -> bool { + *self == Priority::Background + } +} diff --git a/node/core/pvf/src/pvf.rs b/node/core/pvf/src/pvf.rs new file mode 100644 index 000000000000..4f2a457479b8 --- /dev/null +++ b/node/core/pvf/src/pvf.rs @@ -0,0 +1,56 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::artifacts::ArtifactId; +use polkadot_core_primitives::Hash; +use sp_core::keccak_256; +use std::{fmt, sync::Arc}; + +/// A struct that carries code of a parachain validation function and it's hash. +/// +/// Should be cheap to clone. +#[derive(Clone)] +pub struct Pvf { + pub(crate) code: Arc>, + pub(crate) code_hash: Hash, +} + +impl fmt::Debug for Pvf { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Pvf {{ code, code_hash: {:?} }}", self.code_hash) + } +} + +impl Pvf { + /// Returns an instance of the PVF out of the given PVF code. + pub fn from_code(code: Vec) -> Self { + let code = Arc::new(code); + let code_hash = keccak_256(&code).into(); + Self { code, code_hash } + } + + /// Creates a new pvf which artifact id can be uniquely identified by the given number. + #[cfg(test)] + pub(crate) fn from_discriminator(num: u32) -> Self { + let descriminator_buf = num.to_le_bytes().to_vec(); + Pvf::from_code(descriminator_buf) + } + + /// Returns the artifact ID that corresponds to this PVF. + pub(crate) fn as_artifact_id(&self) -> ArtifactId { + ArtifactId::new(self.code_hash.clone()) + } +} diff --git a/node/core/pvf/src/testing.rs b/node/core/pvf/src/testing.rs new file mode 100644 index 000000000000..2048e9df74fd --- /dev/null +++ b/node/core/pvf/src/testing.rs @@ -0,0 +1,40 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Various things for testing other crates. +//! +//! N.B. This is not guarded with some feature flag. Overexposing items here may affect the final +//! artifact even for production builds. + +pub mod worker_common { + pub use crate::worker_common::{spawn_with_program_path, SpawnErr}; +} + +/// A function that emulates the stitches together behaviors of the preparation and the execution +/// worker in a single synchronous function. +pub fn validate_candidate( + code: &[u8], + params: &[u8], +) -> Result, Box> { + use crate::executor_intf::{prevalidate, prepare, execute, TaskExecutor}; + + let blob = prevalidate(code)?; + let artifact = prepare(blob)?; + let executor = TaskExecutor::new()?; + let result = execute(&artifact, params, executor)?; + + Ok(result) +} diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs new file mode 100644 index 000000000000..78cbbca579e7 --- /dev/null +++ b/node/core/pvf/src/worker_common.rs @@ -0,0 +1,273 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use crate::LOG_TARGET; +use async_std::{ + io, + os::unix::net::{UnixListener, UnixStream}, + path::{PathBuf, Path}, +}; +use futures::{ + AsyncRead, AsyncWrite, AsyncReadExt as _, AsyncWriteExt as _, FutureExt as _, never::Never, +}; +use futures_timer::Delay; +use rand::Rng; +use std::{ + fmt, mem, + pin::Pin, + str::FromStr, + task::{Context, Poll}, + time::Duration, +}; +use pin_project::pin_project; + +/// This is publicly exposed only for integration tests. +#[doc(hidden)] +pub async fn spawn_with_program_path( + debug_id: &'static str, + program_path: &str, + extra_args: &'static [&'static str], + spawn_timeout_secs: u64, +) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { + with_transient_socket_path(debug_id, |socket_path| { + let socket_path = socket_path.to_owned(); + let program_path = PathBuf::from(program_path); + async move { + let listener = UnixListener::bind(&socket_path) + .await + .map_err(|_| SpawnErr::Bind)?; + + let handle = WorkerHandle::spawn(&program_path, extra_args, socket_path) + .map_err(|_| SpawnErr::ProcessSpawn)?; + + futures::select! { + accept_result = listener.accept().fuse() => { + let (stream, _) = accept_result.map_err(|_| SpawnErr::Accept)?; + Ok((IdleWorker { stream, pid: handle.id() }, handle)) + } + _ = Delay::new(Duration::from_secs(spawn_timeout_secs)).fuse() => { + Err(SpawnErr::AcceptTimeout) + } + } + } + }) + .await +} + +async fn with_transient_socket_path(debug_id: &'static str, f: F) -> R +where + F: FnOnce(&Path) -> Fut, + Fut: futures::Future + 'static, +{ + let socket_path = tmpfile(&format!("pvf-host-{}", debug_id)); + let result = f(&socket_path).await; + + // Best effort to remove the socket file. Under normal circumstances the socket will be removed + // by the worker. We make sure that it is removed here, just in case a failed rendezvous. + let _ = async_std::fs::remove_file(socket_path).await; + + result +} + +pub fn tmpfile(prefix: &str) -> PathBuf { + use rand::distributions::Alphanumeric; + + const DESCRIMINATOR_LEN: usize = 10; + + let mut buf = Vec::with_capacity(prefix.len() + DESCRIMINATOR_LEN); + buf.extend(prefix.as_bytes()); + buf.extend( + rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(DESCRIMINATOR_LEN), + ); + + let s = std::str::from_utf8(&buf).expect("the string is collected from a valid utf-8 sequence"); + + let mut temp_dir = PathBuf::from(std::env::temp_dir()); + temp_dir.push(s); + temp_dir +} + +pub fn worker_event_loop(debug_id: &'static str, socket_path: &str, mut event_loop: F) +where + F: FnMut(UnixStream) -> Fut, + Fut: futures::Future>, +{ + let err = async_std::task::block_on::<_, io::Result<()>>(async move { + let stream = UnixStream::connect(socket_path).await?; + let _ = async_std::fs::remove_file(socket_path).await; + + event_loop(stream).await?; + + Ok(()) + }) + .unwrap_err(); + + tracing::debug!( + target: LOG_TARGET, + "pvf worker ({}) pid={}: {:?}", + debug_id, + std::process::id(), + err, + ); +} + +#[derive(Debug)] +pub struct IdleWorker { + /// The stream to which the child process is connected. + pub stream: UnixStream, + + /// The identifier of this process. Used to reset the niceness. + pub pid: u32, +} + +/// An error happened during spawning a worker process. +#[derive(Clone, Debug)] +pub enum SpawnErr { + /// Cannot bind the socket to the given path. + Bind, + /// An error happened during accepting a connection to the socket. + Accept, + /// An error happened during spawning the process. + ProcessSpawn, + /// The deadline alloted for the worker spawning and connecting to the socket has elapsed. + AcceptTimeout, +} + +/// This is a representation of a potentially running worker. Drop it and the process will be killed. +/// +/// A worker's handle is also a future that resolves when it's detected that the worker's process +/// has been terminated. +/// +/// This future relies on the fact that a child process's stdout fd is closed upon it's termination. +#[pin_project] +pub struct WorkerHandle { + child: async_process::Child, + #[pin] + stdout: async_process::ChildStdout, + drop_box: Box<[u8]>, +} + +impl WorkerHandle { + fn spawn( + program: impl AsRef, + extra_args: &[&str], + socket_path: impl AsRef, + ) -> io::Result { + let mut child = async_process::Command::new(program.as_ref()) + .args(extra_args) + .arg(socket_path.as_ref().as_os_str()) + .stdout(async_process::Stdio::piped()) + .kill_on_drop(true) + .spawn()?; + + let stdout = child + .stdout + .take() + .expect("the process spawned with piped stdout should have the stdout handle"); + + Ok(WorkerHandle { + child, + stdout, + // We don't expect the bytes to be ever read. But in case we do, we should not use a buffer + // of a small size, because otherwise if the child process does return any data we will end up + // issuing a syscall for each byte. We also prefer not to do allocate that on the stack, since + // each poll the buffer will be allocated and initialized (and that's due poll_read takes &mut [u8] + // and there are no guarantees that a `poll_read` won't ever read from there even though that's + // unlikely). + // + // OTOH, we also don't want to be super smart here and we could just afford to allocate a buffer + // for that here. + drop_box: vec![0; 8192].into_boxed_slice(), + }) + } + + /// Returns the process id of this worker. + pub fn id(&self) -> u32 { + self.child.id() + } +} + +impl futures::Future for WorkerHandle { + type Output = (); + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let me = self.project(); + match futures::ready!(AsyncRead::poll_read(me.stdout, cx, &mut *me.drop_box)) { + Ok(0) => { + // 0 means EOF means the child was terminated. Resolve. + Poll::Ready(()) + } + Ok(_bytes_read) => { + // weird, we've read something. Pretend that never happened and reschedule ourselves. + cx.waker().wake_by_ref(); + Poll::Pending + } + Err(_) => { + // The implementation is guaranteed to not to return WouldBlock and Interrupted. This + // leaves us with a legit errors which we suppose were due to termination. + Poll::Ready(()) + } + } + } +} + +impl fmt::Debug for WorkerHandle { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "WorkerHandle(pid={})", self.id()) + } +} + +/// Convert the given path into a byte buffer. +pub fn path_to_bytes(path: &Path) -> &[u8] { + // Ideally, we take the OsStr of the path, send that and reconstruct this on the other side. + // However, libstd doesn't provide us with such an option. There are crates out there that + // allow for extraction of a path, but TBH it doesn't seem to be a real issue. + // + // However, should be there reports we can incorporate such a crate here. + path.to_str().expect("non-UTF-8 path").as_bytes() +} + +/// Interprets the given bytes as a path. Returns `None` if the given bytes do not constitute a +/// a proper utf-8 string. +pub fn bytes_to_path(bytes: &[u8]) -> Option { + let str_buf = std::str::from_utf8(bytes).ok()?; + + match PathBuf::from_str(&str_buf) { + Ok(path) => Some(path), + Err(never) => { + // std::convert::Infallible doesn't allow for irrefutable patterns for some reason. + match never {} + } + } +} + +pub async fn framed_send(w: &mut (impl AsyncWrite + Unpin), buf: &[u8]) -> io::Result<()> { + let len_buf = buf.len().to_le_bytes(); + w.write_all(&len_buf).await?; + w.write_all(buf).await?; + Ok(()) +} + +pub async fn framed_recv(r: &mut (impl AsyncRead + Unpin)) -> io::Result> { + let mut len_buf = [0u8; mem::size_of::()]; + r.read_exact(&mut len_buf).await?; + let len = usize::from_le_bytes(len_buf); + let mut buf = vec![0; len]; + r.read_exact(&mut buf).await?; + Ok(buf) +} diff --git a/node/core/pvf/tests/it/adder.rs b/node/core/pvf/tests/it/adder.rs new file mode 100644 index 000000000000..97af2ef4efca --- /dev/null +++ b/node/core/pvf/tests/it/adder.rs @@ -0,0 +1,131 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use super::TestHost; +use polkadot_parachain::{ + primitives::{ + RelayChainBlockNumber, BlockData as GenericBlockData, HeadData as GenericHeadData, + ValidationParams, + }, +}; +use parity_scale_codec::{Decode, Encode}; +use adder::{HeadData, BlockData, hash_state}; + +#[async_std::test] +async fn execute_good_on_parent() { + let parent_head = HeadData { + number: 0, + parent_hash: [0; 32], + post_state: hash_state(0), + }; + + let block_data = BlockData { state: 0, add: 512 }; + + let host = TestHost::new(); + + let ret = host + .validate_candidate( + adder::wasm_binary_unwrap(), + ValidationParams { + parent_head: GenericHeadData(parent_head.encode()), + block_data: GenericBlockData(block_data.encode()), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ) + .await + .unwrap(); + + let new_head = HeadData::decode(&mut &ret.head_data.0[..]).unwrap(); + + assert_eq!(new_head.number, 1); + assert_eq!(new_head.parent_hash, parent_head.hash()); + assert_eq!(new_head.post_state, hash_state(512)); +} + +#[async_std::test] +async fn execute_good_chain_on_parent() { + let mut number = 0; + let mut parent_hash = [0; 32]; + let mut last_state = 0; + + let host = TestHost::new(); + + for add in 0..10 { + let parent_head = HeadData { + number, + parent_hash, + post_state: hash_state(last_state), + }; + + let block_data = BlockData { + state: last_state, + add, + }; + + let ret = host + .validate_candidate( + adder::wasm_binary_unwrap(), + ValidationParams { + parent_head: GenericHeadData(parent_head.encode()), + block_data: GenericBlockData(block_data.encode()), + relay_parent_number: number as RelayChainBlockNumber + 1, + relay_parent_storage_root: Default::default(), + }, + ) + .await + .unwrap(); + + let new_head = HeadData::decode(&mut &ret.head_data.0[..]).unwrap(); + + assert_eq!(new_head.number, number + 1); + assert_eq!(new_head.parent_hash, parent_head.hash()); + assert_eq!(new_head.post_state, hash_state(last_state + add)); + + number += 1; + parent_hash = new_head.hash(); + last_state += add; + } +} + +#[async_std::test] +async fn execute_bad_on_parent() { + let parent_head = HeadData { + number: 0, + parent_hash: [0; 32], + post_state: hash_state(0), + }; + + let block_data = BlockData { + state: 256, // start state is wrong. + add: 256, + }; + + let host = TestHost::new(); + + let _ret = host + .validate_candidate( + adder::wasm_binary_unwrap(), + ValidationParams { + parent_head: GenericHeadData(parent_head.encode()), + block_data: GenericBlockData(block_data.encode()), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ) + .await + .unwrap_err(); +} diff --git a/node/core/pvf/tests/it/main.rs b/node/core/pvf/tests/it/main.rs new file mode 100644 index 000000000000..63cd470d62ea --- /dev/null +++ b/node/core/pvf/tests/it/main.rs @@ -0,0 +1,149 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +use polkadot_node_core_pvf::{Pvf, ValidationHost, start, Config, InvalidCandidate, ValidationError}; +use polkadot_parachain::{ + primitives::{BlockData, ValidationParams, ValidationResult}, +}; +use parity_scale_codec::Encode as _; + +mod adder; +mod worker_common; + +const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_puppet_worker"); + +struct TestHost { + _cache_dir: tempfile::TempDir, + host: ValidationHost, +} + +impl TestHost { + fn new() -> Self { + Self::new_with_config(|_| ()) + } + + fn new_with_config(f: F) -> Self + where + F: FnOnce(&mut Config), + { + let cache_dir = tempfile::tempdir().unwrap(); + let program_path = std::path::PathBuf::from(PUPPET_EXE); + let mut config = Config::new(cache_dir.path().to_owned(), program_path); + f(&mut config); + let (host, task) = start(config); + let _ = async_std::task::spawn(task); + Self { + _cache_dir: cache_dir, + host, + } + } + + async fn validate_candidate( + &self, + code: &[u8], + params: ValidationParams, + ) -> Result { + let (result_tx, result_rx) = futures::channel::oneshot::channel(); + self.host + .execute_pvf( + Pvf::from_code(code.to_vec()), + params.encode(), + polkadot_node_core_pvf::Priority::Normal, + result_tx, + ) + .await + .unwrap(); + result_rx.await.unwrap() + } +} + +#[async_std::test] +async fn terminates_on_timeout() { + let host = TestHost::new(); + + let result = host + .validate_candidate( + halt::wasm_binary_unwrap(), + ValidationParams { + block_data: BlockData(Vec::new()), + parent_head: Default::default(), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ) + .await; + + match result { + Err(ValidationError::InvalidCandidate(InvalidCandidate::HardTimeout)) => {} + r => panic!("{:?}", r), + } +} + +#[async_std::test] +async fn parallel_execution() { + let host = TestHost::new(); + let execute_pvf_future_1 = host.validate_candidate( + halt::wasm_binary_unwrap(), + ValidationParams { + block_data: BlockData(Vec::new()), + parent_head: Default::default(), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ); + let execute_pvf_future_2 = host.validate_candidate( + halt::wasm_binary_unwrap(), + ValidationParams { + block_data: BlockData(Vec::new()), + parent_head: Default::default(), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ); + + let start = std::time::Instant::now(); + let (_, _) = futures::join!(execute_pvf_future_1, execute_pvf_future_2); + + // total time should be < 2 x EXECUTION_TIMEOUT_SEC + const EXECUTION_TIMEOUT_SEC: u64 = 3; + assert!( + std::time::Instant::now().duration_since(start) + < std::time::Duration::from_secs(EXECUTION_TIMEOUT_SEC * 2) + ); +} + +#[async_std::test] +async fn execute_queue_doesnt_stall_if_workers_died() { + let host = TestHost::new_with_config(|cfg| { + assert_eq!(cfg.execute_workers_max_num, 5); + }); + + // Here we spawn 8 validation jobs for the `halt` PVF and share those between 5 workers. The + // first five jobs should timeout and the workers killed. For the next 3 jobs a new batch of + // workers should be spun up. + futures::future::join_all((0u8..=8).map(|_| { + host.validate_candidate( + halt::wasm_binary_unwrap(), + ValidationParams { + block_data: BlockData(Vec::new()), + parent_head: Default::default(), + relay_parent_number: 1, + relay_parent_storage_root: Default::default(), + }, + ) + })) + .await; +} diff --git a/parachain/test-parachains/tests/lib.rs b/node/core/pvf/tests/it/worker_common.rs similarity index 54% rename from parachain/test-parachains/tests/lib.rs rename to node/core/pvf/tests/it/worker_common.rs index aef9877ffad1..ee575a6bed19 100644 --- a/parachain/test-parachains/tests/lib.rs +++ b/node/core/pvf/tests/it/worker_common.rs @@ -1,4 +1,4 @@ -// Copyright 2019-2020 Parity Technologies (UK) Ltd. +// Copyright 2021 Parity Technologies (UK) Ltd. // This file is part of Polkadot. // Polkadot is free software: you can redistribute it and/or modify @@ -14,17 +14,18 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -mod adder; -mod wasm_executor; +use crate::PUPPET_EXE; +use polkadot_node_core_pvf::testing::worker_common::{spawn_with_program_path, SpawnErr}; -use parachain::wasm_executor::run_worker; +#[async_std::test] +async fn spawn_timeout() { + let result = spawn_with_program_path("integration-test", PUPPET_EXE, &["sleep"], 2).await; + assert!(matches!(result, Err(SpawnErr::AcceptTimeout))); +} -// This is not an actual test, but rather an entry point for out-of process WASM executor. -// When executing tests the executor spawns currently executing binary, which happens to be test binary. -// It then passes "validation_worker" on CLI effectivly making rust test executor to run this single test. -#[test] -fn validation_worker() { - if let Some(id) = std::env::args().find(|a| a.starts_with("/shmem_")) { - run_worker(&id, None).unwrap() - } +#[async_std::test] +async fn should_connect() { + let _ = spawn_with_program_path("integration-test", PUPPET_EXE, &["prepare-worker"], 2) + .await + .unwrap(); } diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 36b84d909c53..8f7863c053ef 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -108,6 +108,7 @@ db = ["service/db"] full-node = [ "polkadot-node-core-av-store", "polkadot-node-core-approval-voting", + "polkadot-node-core-candidate-validation", "sc-finality-grandpa-warp-sync" ] diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 17b51419c618..034dddc8ecd3 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -30,6 +30,7 @@ use { polkadot_node_core_av_store::Config as AvailabilityConfig, polkadot_node_core_av_store::Error as AvailabilityError, polkadot_node_core_approval_voting::Config as ApprovalVotingConfig, + polkadot_node_core_candidate_validation::Config as CandidateValidationConfig, polkadot_node_core_proposer::ProposerFactory, polkadot_overseer::{AllSubsystems, BlockInfo, Overseer, OverseerHandler}, polkadot_primitives::v1::ParachainHost, @@ -59,7 +60,6 @@ use telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle}; pub use self::client::{AbstractClient, Client, ClientHandle, ExecuteWithClient, RuntimeApiCollection}; pub use chain_spec::{PolkadotChainSpec, KusamaChainSpec, WestendChainSpec, RococoChainSpec}; pub use consensus_common::{Proposal, SelectChain, BlockImport, block_validation::Chain}; -pub use polkadot_parachain::wasm_executor::IsolationStrategy; pub use polkadot_primitives::v1::{Block, BlockId, CollatorId, Hash, Id as ParaId}; pub use sc_client_api::{Backend, ExecutionStrategy, CallExecutor}; pub use sc_consensus::LongestChain; @@ -401,8 +401,8 @@ fn real_overseer( registry: Option<&Registry>, spawner: Spawner, _: IsCollator, - _: IsolationStrategy, _: ApprovalVotingConfig, + _: CandidateValidationConfig, ) -> Result<(Overseer, OverseerHandler), Error> where RuntimeClient: 'static + ProvideRuntimeApi + HeaderBackend + AuxStore, @@ -429,8 +429,8 @@ fn real_overseer( registry: Option<&Registry>, spawner: Spawner, is_collator: IsCollator, - isolation_strategy: IsolationStrategy, approval_voting_config: ApprovalVotingConfig, + candidate_validation_config: CandidateValidationConfig, ) -> Result<(Overseer, OverseerHandler), Error> where RuntimeClient: 'static + ProvideRuntimeApi + HeaderBackend + AuxStore, @@ -488,10 +488,9 @@ where keystore.clone(), Metrics::register(registry)?, ), - candidate_validation: CandidateValidationSubsystem::new( - spawner.clone(), + candidate_validation: CandidateValidationSubsystem::with_config( + candidate_validation_config, Metrics::register(registry)?, - isolation_strategy, ), chain_api: ChainApiSubsystem::new( runtime_client.clone(), @@ -654,7 +653,6 @@ pub fn new_full( is_collator: IsCollator, grandpa_pause: Option<(u32, u32)>, jaeger_agent: Option, - isolation_strategy: IsolationStrategy, telemetry_worker_handle: Option, ) -> Result>>, Error> where @@ -810,6 +808,14 @@ pub fn new_full( cache_size: None, // default is fine. }; + let candidate_validation_config = CandidateValidationConfig { + artifacts_cache_path: config.database + .path() + .ok_or(Error::DatabasePathRequired)? + .join("pvf-artifacts"), + program_path: std::env::current_exe()?, + }; + let rpc_handlers = service::spawn_tasks(service::SpawnTasksParams { config, backend: backend.clone(), @@ -885,8 +891,8 @@ pub fn new_full( prometheus_registry.as_ref(), spawner, is_collator, - isolation_strategy, approval_voting_config, + candidate_validation_config, )?; let overseer_handler_clone = overseer_handler.clone(); @@ -1217,26 +1223,12 @@ pub fn build_full( jaeger_agent: Option, telemetry_worker_handle: Option, ) -> Result, Error> { - let isolation_strategy = { - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - { - let cache_base_path = config.database.path(); - IsolationStrategy::external_process_with_caching(cache_base_path) - } - - #[cfg(any(target_os = "android", target_os = "unknown"))] - { - IsolationStrategy::InProcess - } - }; - if config.chain_spec.is_rococo() { new_full::( config, is_collator, grandpa_pause, jaeger_agent, - isolation_strategy, telemetry_worker_handle, ).map(|full| full.with_client(Client::Rococo)) } else if config.chain_spec.is_kusama() { @@ -1245,7 +1237,6 @@ pub fn build_full( is_collator, grandpa_pause, jaeger_agent, - isolation_strategy, telemetry_worker_handle, ).map(|full| full.with_client(Client::Kusama)) } else if config.chain_spec.is_westend() { @@ -1254,7 +1245,6 @@ pub fn build_full( is_collator, grandpa_pause, jaeger_agent, - isolation_strategy, telemetry_worker_handle, ).map(|full| full.with_client(Client::Westend)) } else { @@ -1263,7 +1253,6 @@ pub fn build_full( is_collator, grandpa_pause, jaeger_agent, - isolation_strategy, telemetry_worker_handle, ).map(|full| full.with_client(Client::Polkadot)) } diff --git a/node/test/service/src/lib.rs b/node/test/service/src/lib.rs index 81911fbef918..da2012477dec 100644 --- a/node/test/service/src/lib.rs +++ b/node/test/service/src/lib.rs @@ -82,7 +82,6 @@ pub fn new_full( is_collator, None, None, - polkadot_parachain::wasm_executor::IsolationStrategy::InProcess, None, ) } diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index fb9ea9cdddee..883ed1955d1c 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -14,47 +14,21 @@ parity-util-mem = { version = "0.9.0", optional = true } sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } polkadot-core-primitives = { path = "../core-primitives", default-features = false } derive_more = "0.99.11" # all optional crates. -thiserror = { version = "1.0.22", optional = true } serde = { version = "1.0.117", default-features = false, features = [ "derive" ], optional = true } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -parking_lot = { version = "0.11.1", optional = true } -log = { version = "0.4.11", optional = true } -futures = { version = "0.3.8", optional = true } -static_assertions = { version = "1.1", optional = true } -libc = { version = "0.2.81", optional = true } - -[target.'cfg(not(any(target_os = "android", target_os = "unknown")))'.dependencies] -shared_memory = { version = "0.11.0", optional = true } -raw_sync = { version = "0.1", optional = true } [features] default = ["std"] -wasmtime = [ "sc-executor/wasmtime" ] wasm-api = [] std = [ "parity-scale-codec/std", - "thiserror", "serde/std", "sp-std/std", "sp-runtime/std", - "shared_memory", - "raw_sync", "sp-core/std", - "parking_lot", - "static_assertions", - "log", - "libc", "parity-util-mem", - "sp-externalities", - "sc-executor", - "sp-io", "polkadot-core-primitives/std", - "futures", ] diff --git a/parachain/src/lib.rs b/parachain/src/lib.rs index 67a5a6839245..2cf441e88c9f 100644 --- a/parachain/src/lib.rs +++ b/parachain/src/lib.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +#![warn(unused_crate_dependencies)] + //! Defines primitive types for creating or validating a parachain. //! //! When compiled with standard library support, this crate exports a `wasm` @@ -43,8 +45,6 @@ #![cfg_attr(not(feature = "std"), no_std)] -#[cfg(feature = "std")] -pub mod wasm_executor; pub mod primitives; mod wasm_api; diff --git a/parachain/src/wasm_executor/mod.rs b/parachain/src/wasm_executor/mod.rs deleted file mode 100644 index a9f5f9bae074..000000000000 --- a/parachain/src/wasm_executor/mod.rs +++ /dev/null @@ -1,401 +0,0 @@ -// Copyright 2017-2020 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot 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. - -// Polkadot 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 Polkadot. If not, see . - -//! WASM re-execution of a parachain candidate. -//! In the context of relay-chain candidate evaluation, there are some additional -//! steps to ensure that the provided input parameters are correct. -//! Assuming the parameters are correct, this module provides a wrapper around -//! a WASM VM for re-execution of a parachain candidate. - -use std::{any::{TypeId, Any}, path::{Path, PathBuf}}; -use crate::primitives::{ValidationParams, ValidationResult}; -use parity_scale_codec::{Decode, Encode}; -use sp_core::{storage::{ChildInfo, TrackedStorageKey}, traits::{CallInWasm, SpawnNamed}}; -use sp_externalities::Extensions; -use sp_wasm_interface::HostFunctions as _; - -#[cfg(not(any(target_os = "android", target_os = "unknown")))] -pub use validation_host::{run_worker, ValidationPool, EXECUTION_TIMEOUT_SEC, WORKER_ARGS}; - -mod validation_host; - -/// The strategy we employ for isolating execution of wasm parachain validation function (PVF). -/// -/// For a typical validator an external process is the default way to run PVF. The rationale is based -/// on the following observations: -/// -/// (a) PVF is completely under control of parachain developers who may or may not be malicious. -/// (b) Collators are in charge of providing PoV who also may or may not be malicious. -/// (c) PVF is executed by a wasm engine based on optimizing compiler which is a very complex piece -/// of machinery. -/// -/// (a) and (b) may lead to a situation where due to a combination of PVF and PoV the validation work -/// can stuck in an infinite loop, which can open up resource exhaustion or DoS attack vectors. -/// -/// While some execution engines provide functionality to interrupt execution of wasm module from -/// another thread, there are also some caveats to that: there is no clean way to interrupt execution -/// if the control flow is in the host side and at the moment we haven't rigoriously vetted that all -/// host functions terminate or, at least, return in a short amount of time. Additionally, we want -/// some freedom on choosing wasm execution environment. -/// -/// On top of that, execution in a separate process helps to minimize impact of (c) if exploited. -/// It's not only the risk of miscompilation, but it also includes risk of JIT-bombs, i.e. cases -/// of specially crafted code that take enourmous amounts of time and memory to compile. -/// -/// At the same time, since PVF validates self-contained candidates, validation workers don't require -/// extensive communication with polkadot host, therefore there should be no observable performance penalty -/// coming from inter process communication. -/// -/// All of the above should give a sense why isolation is crucial for a typical use-case. -/// -/// However, in some cases, e.g. when running PVF validation on android (for whatever reason), we -/// cannot afford the luxury of process isolation and thus there is an option to run validation in -/// process. Also, running in process is convenient for testing. -#[derive(Clone, Debug)] -pub enum IsolationStrategy { - /// The validation worker is ran in a thread inside the same process. - InProcess, - /// The validation worker is ran using the process' executable and the subcommand `validation-worker` is passed - /// following by the address of the shared memory. - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - ExternalProcessSelfHost { - pool: ValidationPool, - cache_base_path: Option, - }, - /// The validation worker is ran using the command provided and the argument provided. The address of the shared - /// memory is added at the end of the arguments. - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - ExternalProcessCustomHost { - /// Validation pool. - pool: ValidationPool, - /// Path to the validation worker. The file must exists and be executable. - binary: PathBuf, - /// List of arguments passed to the validation worker. The address of the shared memory will be automatically - /// added after the arguments. - args: Vec, - }, -} - -impl IsolationStrategy { - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - pub fn external_process_with_caching(cache_base_path: Option<&Path>) -> Self { - // Convert cache path to string here so that we don't have to do that each time we launch - // validation worker. - let cache_base_path = cache_base_path.map(|path| path.display().to_string()); - - Self::ExternalProcessSelfHost { - pool: ValidationPool::new(), - cache_base_path, - } - } -} - -#[derive(Debug, thiserror::Error)] -/// Candidate validation error. -pub enum ValidationError { - /// Validation failed due to internal reasons. The candidate might still be valid. - #[error(transparent)] - Internal(#[from] InternalError), - /// Candidate is invalid. - #[error(transparent)] - InvalidCandidate(#[from] InvalidCandidate), -} - -/// Error type that indicates invalid candidate. -#[derive(Debug, thiserror::Error)] -pub enum InvalidCandidate { - /// Wasm executor error. - #[error("WASM executor error")] - WasmExecutor(#[from] sc_executor::error::Error), - /// Call data is too large. - #[error("Validation parameters are {0} bytes, max allowed is {1}")] - ParamsTooLarge(usize, usize), - /// Code size it too large. - #[error("WASM code is {0} bytes, max allowed is {1}")] - CodeTooLarge(usize, usize), - /// Error decoding returned data. - #[error("Validation function returned invalid data.")] - BadReturn, - #[error("Validation function timeout.")] - Timeout, - #[error("External WASM execution error: {0}")] - ExternalWasmExecutor(String), -} - -impl core::convert::From for InvalidCandidate { - fn from(s: String) -> Self { - Self::ExternalWasmExecutor(s) - } -} - -/// Host error during candidate validation. This does not indicate an invalid candidate. -#[derive(Debug, thiserror::Error)] -pub enum InternalError { - #[error("IO error: {0}")] - Io(#[from] std::io::Error), - - #[error("System error: {0}")] - System(#[from] Box), - - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - #[error("Failed to create shared memory: {0}")] - WorkerStartTimeout(String), - - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - #[error("Failed to create shared memory: {0}")] - FailedToCreateSharedMemory(String), - - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - #[error("Failed to send a singal to worker: {0}")] - FailedToSignal(String), - - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - #[error("Failed to send data to worker: {0}")] - FailedToWriteData(&'static str), - - #[error("WASM worker error: {0}")] - WasmWorker(String), -} - -/// A cache of executors for different parachain Wasm instances. -/// -/// This should be reused across candidate validation instances. -pub struct ExecutorCache(sc_executor::WasmExecutor); - -impl ExecutorCache { - /// Returns a new instance of an executor cache. - /// - /// `cache_base_path` allows to specify a directory where the executor is allowed to store files - /// for caching, e.g. compilation artifacts. - pub fn new(cache_base_path: Option) -> ExecutorCache { - ExecutorCache(sc_executor::WasmExecutor::new( - #[cfg(all(feature = "wasmtime", not(any(target_os = "android", target_os = "unknown"))))] - sc_executor::WasmExecutionMethod::Compiled, - #[cfg(any(not(feature = "wasmtime"), target_os = "android", target_os = "unknown"))] - sc_executor::WasmExecutionMethod::Interpreted, - // TODO: Make sure we don't use more than 1GB: https://github.com/paritytech/polkadot/issues/699 - Some(1024), - HostFunctions::host_functions(), - 8, - cache_base_path, - )) - } -} - -/// Validate a candidate under the given validation code. -/// -/// This will fail if the validation code is not a proper parachain validation module. -pub fn validate_candidate( - validation_code: &[u8], - params: ValidationParams, - isolation_strategy: &IsolationStrategy, - spawner: impl SpawnNamed + 'static, -) -> Result { - match isolation_strategy { - IsolationStrategy::InProcess => { - validate_candidate_internal( - &ExecutorCache::new(None), - validation_code, - ¶ms.encode(), - spawner, - ) - }, - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - IsolationStrategy::ExternalProcessSelfHost { pool, cache_base_path } => { - pool.validate_candidate(validation_code, params, cache_base_path.as_deref()) - }, - #[cfg(not(any(target_os = "android", target_os = "unknown")))] - IsolationStrategy::ExternalProcessCustomHost { pool, binary, args } => { - let args: Vec<&str> = args.iter().map(|x| x.as_str()).collect(); - pool.validate_candidate_custom(validation_code, params, binary, &args) - }, - } -} - -/// The host functions provided by the wasm executor to the parachain wasm blob. -type HostFunctions = sp_io::SubstrateHostFunctions; - -/// Validate a candidate under the given validation code. -/// -/// This will fail if the validation code is not a proper parachain validation module. -pub fn validate_candidate_internal( - executor: &ExecutorCache, - validation_code: &[u8], - encoded_call_data: &[u8], - spawner: impl SpawnNamed + 'static, -) -> Result { - let executor = &executor.0; - - let mut extensions = Extensions::new(); - extensions.register(sp_core::traits::TaskExecutorExt::new(spawner)); - extensions.register(sp_core::traits::CallInWasmExt::new(executor.clone())); - - let mut ext = ValidationExternalities(extensions); - - // Expensive, but not more-so than recompiling the wasm module. - // And we need this hash to access the `sc_executor` cache. - let code_hash = { - use polkadot_core_primitives::{BlakeTwo256, HashT}; - BlakeTwo256::hash(validation_code) - }; - - let res = executor.call_in_wasm( - validation_code, - Some(code_hash.as_bytes().to_vec()), - "validate_block", - encoded_call_data, - &mut ext, - sp_core::traits::MissingHostFunctions::Allow, - ).map_err(|e| ValidationError::InvalidCandidate(e.into()))?; - - ValidationResult::decode(&mut &res[..]) - .map_err(|_| ValidationError::InvalidCandidate(InvalidCandidate::BadReturn).into()) -} - -/// The validation externalities that will panic on any storage related access. They just provide -/// access to the parachain extension. -struct ValidationExternalities(Extensions); - -impl sp_externalities::Externalities for ValidationExternalities { - fn storage(&self, _: &[u8]) -> Option> { - panic!("storage: unsupported feature for parachain validation") - } - - fn storage_hash(&self, _: &[u8]) -> Option> { - panic!("storage_hash: unsupported feature for parachain validation") - } - - fn child_storage_hash(&self, _: &ChildInfo, _: &[u8]) -> Option> { - panic!("child_storage_hash: unsupported feature for parachain validation") - } - - fn child_storage(&self, _: &ChildInfo, _: &[u8]) -> Option> { - panic!("child_storage: unsupported feature for parachain validation") - } - - fn kill_child_storage(&mut self, _: &ChildInfo, _: Option) -> (bool, u32) { - panic!("kill_child_storage: unsupported feature for parachain validation") - } - - fn clear_prefix(&mut self, _: &[u8]) { - panic!("clear_prefix: unsupported feature for parachain validation") - } - - fn clear_child_prefix(&mut self, _: &ChildInfo, _: &[u8]) { - panic!("clear_child_prefix: unsupported feature for parachain validation") - } - - fn place_storage(&mut self, _: Vec, _: Option>) { - panic!("place_storage: unsupported feature for parachain validation") - } - - fn place_child_storage(&mut self, _: &ChildInfo, _: Vec, _: Option>) { - panic!("place_child_storage: unsupported feature for parachain validation") - } - - fn storage_root(&mut self) -> Vec { - panic!("storage_root: unsupported feature for parachain validation") - } - - fn child_storage_root(&mut self, _: &ChildInfo) -> Vec { - panic!("child_storage_root: unsupported feature for parachain validation") - } - - fn storage_changes_root(&mut self, _: &[u8]) -> Result>, ()> { - panic!("storage_changes_root: unsupported feature for parachain validation") - } - - fn next_child_storage_key(&self, _: &ChildInfo, _: &[u8]) -> Option> { - panic!("next_child_storage_key: unsupported feature for parachain validation") - } - - fn next_storage_key(&self, _: &[u8]) -> Option> { - panic!("next_storage_key: unsupported feature for parachain validation") - } - - fn storage_append( - &mut self, - _key: Vec, - _value: Vec, - ) { - panic!("storage_append: unsupported feature for parachain validation") - } - - fn storage_start_transaction(&mut self) { - panic!("storage_start_transaction: unsupported feature for parachain validation") - } - - fn storage_rollback_transaction(&mut self) -> Result<(), ()> { - panic!("storage_rollback_transaction: unsupported feature for parachain validation") - } - - fn storage_commit_transaction(&mut self) -> Result<(), ()> { - panic!("storage_commit_transaction: unsupported feature for parachain validation") - } - - fn wipe(&mut self) { - panic!("wipe: unsupported feature for parachain validation") - } - - fn commit(&mut self) { - panic!("commit: unsupported feature for parachain validation") - } - - fn read_write_count(&self) -> (u32, u32, u32, u32) { - panic!("read_write_count: unsupported feature for parachain validation") - } - - fn reset_read_write_count(&mut self) { - panic!("reset_read_write_count: unsupported feature for parachain validation") - } - - fn get_whitelist(&self) -> Vec { - panic!("get_whitelist: unsupported feature for parachain validation") - } - - fn set_whitelist(&mut self, _: Vec) { - panic!("set_whitelist: unsupported feature for parachain validation") - } - - fn set_offchain_storage(&mut self, _: &[u8], _: std::option::Option<&[u8]>) { - panic!("set_offchain_storage: unsupported feature for parachain validation") - } -} - -impl sp_externalities::ExtensionStore for ValidationExternalities { - fn extension_by_type_id(&mut self, type_id: TypeId) -> Option<&mut dyn Any> { - self.0.get_mut(type_id) - } - - fn register_extension_with_type_id( - &mut self, - type_id: TypeId, - extension: Box, - ) -> Result<(), sp_externalities::Error> { - self.0.register_with_type_id(type_id, extension) - } - - fn deregister_extension_by_type_id( - &mut self, - type_id: TypeId, - ) -> Result<(), sp_externalities::Error> { - if self.0.deregister(type_id) { - Ok(()) - } else { - Err(sp_externalities::Error::ExtensionIsNotRegistered(type_id)) - } - } -} diff --git a/parachain/src/wasm_executor/validation_host.rs b/parachain/src/wasm_executor/validation_host.rs deleted file mode 100644 index ccfba3b585b8..000000000000 --- a/parachain/src/wasm_executor/validation_host.rs +++ /dev/null @@ -1,357 +0,0 @@ -// Copyright 2019-2020 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot 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. - -// Polkadot 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 Polkadot. If not, see . - -#![cfg(not(any(target_os = "android", target_os = "unknown")))] - -use std::{env, path::PathBuf, process, sync::Arc, sync::atomic}; -use crate::primitives::{ValidationParams, ValidationResult}; -use super::{validate_candidate_internal, ValidationError, InvalidCandidate, InternalError}; -use parking_lot::Mutex; -use log::{debug, trace}; -use futures::executor::ThreadPool; -use sp_core::traits::SpawnNamed; - -const WORKER_ARG: &'static str = "validation-worker"; -/// CLI Argument to start in validation worker mode. -pub const WORKER_ARGS: &[&'static str] = &[WORKER_ARG]; - -const LOG_TARGET: &'static str = "parachain::validation-worker"; - -mod workspace; - -/// Execution timeout in seconds; -#[cfg(debug_assertions)] -pub const EXECUTION_TIMEOUT_SEC: u64 = 30; - -#[cfg(not(debug_assertions))] -pub const EXECUTION_TIMEOUT_SEC: u64 = 5; - -#[derive(Clone)] -struct TaskExecutor(ThreadPool); - -impl TaskExecutor { - fn new() -> Result { - ThreadPool::new().map_err(|e| e.to_string()).map(Self) - } -} - -impl SpawnNamed for TaskExecutor { - fn spawn_blocking(&self, _: &'static str, future: futures::future::BoxFuture<'static, ()>) { - self.0.spawn_ok(future); - } - - fn spawn(&self, _: &'static str, future: futures::future::BoxFuture<'static, ()>) { - self.0.spawn_ok(future); - } -} - -/// A pool of hosts. -#[derive(Clone, Debug)] -pub struct ValidationPool { - hosts: Arc>>, -} - -const DEFAULT_NUM_HOSTS: usize = 8; - -impl ValidationPool { - /// Creates a validation pool with the default configuration. - pub fn new() -> ValidationPool { - ValidationPool { - hosts: Arc::new((0..DEFAULT_NUM_HOSTS).map(|_| Default::default()).collect()), - } - } - - /// Validate a candidate under the given validation code using the next free validation host. - /// - /// This will fail if the validation code is not a proper parachain validation module. - /// - /// This function will use `std::env::current_exe()` with the arguments that consist of [`WORKER_ARGS`] - /// with appended `cache_base_path` (if any). - pub fn validate_candidate( - &self, - validation_code: &[u8], - params: ValidationParams, - cache_base_path: Option<&str>, - ) -> Result { - use std::{iter, borrow::Cow}; - - let worker_cli_args = match cache_base_path { - Some(cache_base_path) => { - let worker_cli_args: Vec<&str> = WORKER_ARGS - .into_iter() - .cloned() - .chain(iter::once(cache_base_path)) - .collect(); - Cow::from(worker_cli_args) - } - None => Cow::from(WORKER_ARGS), - }; - - self.validate_candidate_custom( - validation_code, - params, - &env::current_exe().map_err(|err| ValidationError::Internal(err.into()))?, - &worker_cli_args, - ) - } - - /// Validate a candidate under the given validation code using the next free validation host. - /// - /// This will fail if the validation code is not a proper parachain validation module. - /// - /// This function will use the command and the arguments provided in the function's arguments to run the worker. - pub fn validate_candidate_custom( - &self, - validation_code: &[u8], - params: ValidationParams, - command: &PathBuf, - args: &[&str], - ) -> Result { - for host in self.hosts.iter() { - if let Some(mut host) = host.try_lock() { - return host.validate_candidate(validation_code, params, command, args); - } - } - - // all workers are busy, just wait for the first one - self.hosts[0] - .lock() - .validate_candidate(validation_code, params, command, args) - } -} - -/// Validation worker process entry point. Runs a loop waiting for candidates to validate -/// and sends back results via shared memory. -pub fn run_worker(mem_id: &str, cache_base_path: Option) -> Result<(), String> { - let mut worker_handle = match workspace::open(mem_id) { - Err(e) => { - debug!( - target: LOG_TARGET, - "{} Error opening shared memory: {:?}", - process::id(), - e - ); - return Err(e); - } - Ok(h) => h, - }; - - let exit = Arc::new(atomic::AtomicBool::new(false)); - let task_executor = TaskExecutor::new()?; - // spawn parent monitor thread - let watch_exit = exit.clone(); - std::thread::spawn(move || { - use std::io::Read; - let mut in_data = Vec::new(); - // pipe terminates when parent process exits - std::io::stdin().read_to_end(&mut in_data).ok(); - debug!( - target: LOG_TARGET, - "{} Parent process is dead. Exiting", - process::id() - ); - exit.store(true, atomic::Ordering::Relaxed); - }); - - worker_handle.signal_ready()?; - - let executor = super::ExecutorCache::new(cache_base_path); - - loop { - if watch_exit.load(atomic::Ordering::Relaxed) { - break; - } - - debug!( - target: LOG_TARGET, - "{} Waiting for candidate", - process::id() - ); - let work_item = match worker_handle.wait_for_work(3) { - Err(workspace::WaitForWorkErr::Wait(e)) => { - trace!( - target: LOG_TARGET, - "{} Timeout waiting for candidate: {:?}", - process::id(), - e - ); - continue; - } - Err(workspace::WaitForWorkErr::FailedToDecode(e)) => { - return Err(e); - } - Ok(work_item) => work_item, - }; - - debug!(target: LOG_TARGET, "{} Processing candidate", process::id()); - let result = validate_candidate_internal( - &executor, - work_item.code, - work_item.params, - task_executor.clone(), - ); - - debug!( - target: LOG_TARGET, - "{} Candidate validated: {:?}", - process::id(), - result - ); - - let result_header = match result { - Ok(r) => workspace::ValidationResultHeader::Ok(r), - Err(ValidationError::Internal(e)) => workspace::ValidationResultHeader::Error( - workspace::WorkerValidationError::InternalError(e.to_string()), - ), - Err(ValidationError::InvalidCandidate(e)) => workspace::ValidationResultHeader::Error( - workspace::WorkerValidationError::ValidationError(e.to_string()), - ), - }; - worker_handle - .report_result(result_header) - .map_err(|e| format!("error reporting result: {:?}", e))?; - } - Ok(()) -} - -unsafe impl Send for ValidationHost {} - -#[derive(Default, Debug)] -struct ValidationHost { - worker: Option, - host_handle: Option, - id: u32, -} - -impl Drop for ValidationHost { - fn drop(&mut self) { - if let Some(ref mut worker) = &mut self.worker { - worker.kill().ok(); - } - } -} - -impl ValidationHost { - fn start_worker(&mut self, cmd: &PathBuf, args: &[&str]) -> Result<(), InternalError> { - if let Some(ref mut worker) = self.worker { - // Check if still alive - if let Ok(None) = worker.try_wait() { - // Still running - return Ok(()); - } - } - - let host_handle = - workspace::create().map_err(|msg| InternalError::FailedToCreateSharedMemory(msg))?; - - debug!( - target: LOG_TARGET, - "Starting worker at {:?} with arguments: {:?} and {:?}", - cmd, - args, - host_handle.id(), - ); - let worker = process::Command::new(cmd) - .args(args) - .arg(host_handle.id()) - .stdin(process::Stdio::piped()) - .spawn()?; - self.id = worker.id(); - self.worker = Some(worker); - - host_handle - .wait_until_ready(EXECUTION_TIMEOUT_SEC) - .map_err(|e| InternalError::WorkerStartTimeout(format!("{:?}", e)))?; - self.host_handle = Some(host_handle); - Ok(()) - } - - /// Validate a candidate under the given validation code. - /// - /// This will fail if the validation code is not a proper parachain validation module. - pub fn validate_candidate( - &mut self, - validation_code: &[u8], - params: ValidationParams, - binary: &PathBuf, - args: &[&str], - ) -> Result { - // First, check if need to spawn the child process - self.start_worker(binary, args)?; - - let host_handle = self - .host_handle - .as_mut() - .expect("host_handle is always `Some` after `start_worker` completes successfully"); - - debug!(target: LOG_TARGET, "{} Signaling candidate", self.id); - match host_handle.request_validation(validation_code, params) { - Ok(()) => {} - Err(workspace::RequestValidationErr::CodeTooLarge { actual, max }) => { - return Err(ValidationError::InvalidCandidate( - InvalidCandidate::CodeTooLarge(actual, max), - )); - } - Err(workspace::RequestValidationErr::ParamsTooLarge { actual, max }) => { - return Err(ValidationError::InvalidCandidate( - InvalidCandidate::ParamsTooLarge(actual, max), - )); - } - Err(workspace::RequestValidationErr::Signal(msg)) => { - return Err(ValidationError::Internal(InternalError::FailedToSignal(msg))); - } - Err(workspace::RequestValidationErr::WriteData(msg)) => { - return Err(ValidationError::Internal(InternalError::FailedToWriteData(msg))); - } - } - - debug!(target: LOG_TARGET, "{} Waiting for results", self.id); - let result_header = match host_handle.wait_for_result(EXECUTION_TIMEOUT_SEC) { - Ok(inner_result) => inner_result, - Err(assumed_timeout) => { - debug!(target: LOG_TARGET, "Worker timeout: {:?}", assumed_timeout); - if let Some(mut worker) = self.worker.take() { - worker.kill().ok(); - } - return Err(ValidationError::InvalidCandidate(InvalidCandidate::Timeout)); - } - }; - - match result_header { - workspace::ValidationResultHeader::Ok(result) => Ok(result), - workspace::ValidationResultHeader::Error( - workspace::WorkerValidationError::InternalError(e), - ) => { - debug!( - target: LOG_TARGET, - "{} Internal validation error: {}", self.id, e - ); - Err(ValidationError::Internal(InternalError::WasmWorker(e))) - } - workspace::ValidationResultHeader::Error( - workspace::WorkerValidationError::ValidationError(e), - ) => { - debug!( - target: LOG_TARGET, - "{} External validation error: {}", self.id, e - ); - Err(ValidationError::InvalidCandidate( - InvalidCandidate::ExternalWasmExecutor(e), - )) - } - } - } -} diff --git a/parachain/src/wasm_executor/validation_host/workspace.rs b/parachain/src/wasm_executor/validation_host/workspace.rs deleted file mode 100644 index d8822f87a8e6..000000000000 --- a/parachain/src/wasm_executor/validation_host/workspace.rs +++ /dev/null @@ -1,614 +0,0 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot 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. - -// Polkadot 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 Polkadot. If not, see . - -//! This module implements a "workspace" - basically a wrapper around a shared memory that -//! is used as an IPC channel for communication between the validation host and it's validation -//! worker. - -use crate::primitives::{ValidationParams, ValidationResult}; -use super::LOG_TARGET; -use parity_scale_codec::{Decode, Encode}; -use raw_sync::{ - events::{Event, EventImpl, EventInit, EventState}, - Timeout, -}; -use shared_memory::{Shmem, ShmemConf}; -use std::{ - error::Error, - fmt, - io::{Cursor, Write}, - slice, - sync::atomic::AtomicBool, - time::Duration, -}; - -// maximum memory in bytes -const MAX_PARAMS_MEM: usize = 16 * 1024 * 1024; // 16 MiB -const MAX_CODE_MEM: usize = 16 * 1024 * 1024; // 16 MiB - -/// The size of the shared workspace region. The maximum amount -const SHARED_WORKSPACE_SIZE: usize = MAX_PARAMS_MEM + MAX_CODE_MEM + (1024 * 1024); - -/// Params header in shared memory. All offsets should be aligned to WASM page size. -#[derive(Encode, Decode, Debug)] -struct ValidationHeader { - code_size: u64, - params_size: u64, -} - -/// An error that could happen during validation of a candidate. -#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone)] -pub enum WorkerValidationError { - InternalError(String), - ValidationError(String), -} - -/// An enum that is used to marshal a validation result in order to pass it through the shared memory. -#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone)] -pub enum ValidationResultHeader { - Ok(ValidationResult), - Error(WorkerValidationError), -} - -#[derive(Debug, PartialEq, Eq, Copy, Clone)] -enum Mode { - Initialize, - Attach, -} - -fn stringify_err(err: Box) -> String { - format!("{:?}", err) -} - -struct Inner { - shmem: Shmem, - candidate_ready_ev: Box, - result_ready_ev: Box, - worker_ready_ev: Box, - - /// Flag that indicates that the worker side is attached to this workspace. - /// - /// While there are apparent problems attaching multiple workers to the same workspace, we don't - /// need that anyway. So to make our reasoning a little bit simpler just add a flag and check - /// it before attaching. - attached: *mut AtomicBool, - - /// The number of bytes reserved by the auxilary stuff like events from the beginning of the - /// shared memory area. - /// - /// We expect this to be way smaller than the whole shmem size. - consumed: usize, -} - -impl Inner { - fn layout(shmem: Shmem, mode: Mode) -> Self { - unsafe { - let base_ptr = shmem.as_ptr(); - let mut consumed = 0; - - let candidate_ready_ev = add_event(base_ptr, &mut consumed, mode); - let result_ready_ev = add_event(base_ptr, &mut consumed, mode); - let worker_ready_ev = add_event(base_ptr, &mut consumed, mode); - - // The size of AtomicBool is guaranteed to be the same as the bool, however, docs - // on the bool primitve doesn't actually state that the in-memory size is equal to 1 byte. - // - // AtomicBool requires hardware support of 1 byte width of atomic operations though, so - // that should be fine. - // - // We still assert here to be safe than sorry. - static_assertions::assert_eq_size!(AtomicBool, u8); - // SAFETY: `AtomicBool` is represented by an u8 thus will be happy to take any alignment. - let attached = base_ptr.add(consumed) as *mut AtomicBool; - consumed += 1; - - let consumed = align_up_to(consumed, 64); - - Self { - shmem, - attached, - consumed, - candidate_ready_ev, - result_ready_ev, - worker_ready_ev, - } - } - } - - fn as_slice(&self) -> &[u8] { - unsafe { - let base_ptr = self.shmem.as_ptr().add(self.consumed); - let remaining = self.shmem.len() - self.consumed; - slice::from_raw_parts(base_ptr, remaining) - } - } - - fn as_slice_mut(&mut self) -> &mut [u8] { - unsafe { - let base_ptr = self.shmem.as_ptr().add(self.consumed); - let remaining = self.shmem.len() - self.consumed; - slice::from_raw_parts_mut(base_ptr, remaining) - } - } - - /// Mark that this workspace has an attached worker already. Returning `true` means that this - /// was the first worker attached. - fn declare_exclusive_attached(&self) -> bool { - unsafe { - // If this succeeded then the value was `false`, thus, we managed to attach exclusively. - (&*self.attached) - .compare_exchange_weak( - false, - true, - std::sync::atomic::Ordering::SeqCst, - std::sync::atomic::Ordering::SeqCst, - ) - .is_ok() - } - } -} - -fn align_up_to(v: usize, alignment: usize) -> usize { - ((v + alignment - 1) / alignment) * alignment -} - -/// Initializes a new or attaches to an exising event. -/// -/// # Safety -/// -/// This function should be called with the combination of `base_ptr` and `consumed` so that `base_ptr + consumed` -/// points on the memory area that is allocated and accessible. -/// -/// This function should be called only once for the same combination of the `base_ptr + consumed` and the mode. -/// Furthermore, this function should be called once for initialization. -/// -/// Specifically, `consumed` should not be modified by the caller, it should be passed as is to this function. -unsafe fn add_event(base_ptr: *mut u8, consumed: &mut usize, mode: Mode) -> Box { - // SAFETY: there is no safety proof since the documentation doesn't specify the particular constraints - // besides requiring the pointer to be valid. AFAICT, the pointer is valid. - let ptr = base_ptr.add(*consumed); - - const EXPECTATION: &str = - "given that the preconditions were fulfilled, the creation of the event should succeed"; - let (ev, used_bytes) = match mode { - Mode::Initialize => Event::new(ptr, true).expect(EXPECTATION), - Mode::Attach => Event::from_existing(ptr).expect(EXPECTATION), - }; - *consumed += used_bytes; - ev -} - -/// A message received by the worker that specifies a candidate validation work. -pub struct WorkItem<'handle> { - pub params: &'handle [u8], - pub code: &'handle [u8], -} - -/// An error that could be returned from [`WorkerHandle::wait_for_work`]. -#[derive(Debug)] -pub enum WaitForWorkErr { - /// An error occured during waiting for work. Typically a timeout. - Wait(String), - /// An error ocurred when trying to decode the validation request from the host. - FailedToDecode(String), -} - -/// An error that could be returned from [`WorkerHandle::report_result`]. -#[derive(Debug)] -pub enum ReportResultErr { - /// An error occured during signalling to the host that the result is ready. - Signal(String), -} - -/// A worker side handle to a workspace. -pub struct WorkerHandle { - inner: Inner, -} - -impl WorkerHandle { - /// Signals to the validation host that this worker is ready to accept new work requests. - pub fn signal_ready(&self) -> Result<(), String> { - self.inner - .worker_ready_ev - .set(EventState::Signaled) - .map_err(stringify_err)?; - Ok(()) - } - - /// Waits until a new piece of work. Returns `Err` if the work doesn't come within the given - /// timeout. - pub fn wait_for_work(&mut self, timeout_secs: u64) -> Result { - self.inner - .candidate_ready_ev - .wait(Timeout::Val(Duration::from_secs(timeout_secs))) - .map_err(stringify_err) - .map_err(WaitForWorkErr::Wait)?; - - let mut cur = self.inner.as_slice(); - let header = ValidationHeader::decode(&mut cur) - .map_err(|e| format!("{:?}", e)) - .map_err(WaitForWorkErr::FailedToDecode)?; - - let (params, cur) = cur.split_at(header.params_size as usize); - let (code, _) = cur.split_at(header.code_size as usize); - - Ok(WorkItem { params, code }) - } - - /// Report back the result of validation. - pub fn report_result(&mut self, result: ValidationResultHeader) -> Result<(), ReportResultErr> { - let mut cur = self.inner.as_slice_mut(); - result.encode_to(&mut cur); - self.inner - .result_ready_ev - .set(EventState::Signaled) - .map_err(stringify_err) - .map_err(ReportResultErr::Signal)?; - - Ok(()) - } -} - -/// An error that could be returned from [`HostHandle::wait_until_ready`]. -#[derive(Debug)] -pub enum WaitUntilReadyErr { - /// An error occured during waiting for the signal from the worker. - Wait(String), -} - -/// An error that could be returned from [`HostHandle::request_validation`]. -#[derive(Debug)] -pub enum RequestValidationErr { - /// The code passed exceeds the maximum allowed limit. - CodeTooLarge { actual: usize, max: usize }, - /// The call parameters exceed the maximum allowed limit. - ParamsTooLarge { actual: usize, max: usize }, - /// An error occured during writing either the code or the call params (the inner string specifies which) - WriteData(&'static str), - /// An error occured during signalling that the request is ready. - Signal(String), -} - -/// An error that could be returned from [`HostHandle::wait_for_result`] -#[derive(Debug)] -pub enum WaitForResultErr { - /// A error happened during waiting for the signal. Typically a timeout. - Wait(String), - /// Failed to decode the result header sent by the worker. - HeaderDecodeErr(String), -} - -/// A worker side handle to a workspace. -pub struct HostHandle { - inner: Inner, -} - -impl fmt::Debug for HostHandle { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "HostHandle") - } -} - -impl HostHandle { - /// Returns the OS specific ID for this workspace. - pub fn id(&self) -> &str { - self.inner.shmem.get_os_id() - } - - /// Wait until the worker is online and ready for accepting validation requests. - pub fn wait_until_ready(&self, timeout_secs: u64) -> Result<(), WaitUntilReadyErr> { - self.inner - .worker_ready_ev - .wait(Timeout::Val(Duration::from_secs(timeout_secs))) - .map_err(stringify_err) - .map_err(WaitUntilReadyErr::Wait)?; - Ok(()) - } - - /// Request validation with the given code and parameters. - pub fn request_validation( - &mut self, - code: &[u8], - params: ValidationParams, - ) -> Result<(), RequestValidationErr> { - if code.len() > MAX_CODE_MEM { - return Err(RequestValidationErr::CodeTooLarge { - actual: code.len(), - max: MAX_CODE_MEM, - }); - } - - let params = params.encode(); - if params.len() > MAX_PARAMS_MEM { - return Err(RequestValidationErr::ParamsTooLarge { - actual: params.len(), - max: MAX_PARAMS_MEM, - }); - } - - let mut cur = Cursor::new(self.inner.as_slice_mut()); - ValidationHeader { - code_size: code.len() as u64, - params_size: params.len() as u64, - } - .encode_to(&mut cur); - cur.write_all(¶ms) - .map_err(|_| RequestValidationErr::WriteData("params"))?; - cur.write_all(code) - .map_err(|_| RequestValidationErr::WriteData("code"))?; - - self.inner - .candidate_ready_ev - .set(EventState::Signaled) - .map_err(stringify_err) - .map_err(RequestValidationErr::Signal)?; - - Ok(()) - } - - /// Wait for the validation result from the worker with the given timeout. - /// - /// Returns `Ok` if the response was received within the deadline or error otherwise. An error - /// could also occur because of failing decoding the result from the worker. Returning - /// `Ok` doesn't mean that the candidate was successfully validated though, for that the client - /// needs to inspect the returned validation result header. - pub fn wait_for_result( - &self, - execution_timeout: u64, - ) -> Result { - self.inner - .result_ready_ev - .wait(Timeout::Val(Duration::from_secs(execution_timeout))) - .map_err(|e| WaitForResultErr::Wait(format!("{:?}", e)))?; - - let mut cur = self.inner.as_slice(); - let header = ValidationResultHeader::decode(&mut cur) - .map_err(|e| WaitForResultErr::HeaderDecodeErr(format!("{:?}", e)))?; - Ok(header) - } -} - -/// Create a new workspace and return a handle to it. -pub fn create() -> Result { - let shmem = ShmemConf::new() - .size(SHARED_WORKSPACE_SIZE) - .create() - .map_err(|e| format!("Error creating shared memory: {:?}", e))?; - - Ok(HostHandle { - inner: Inner::layout(shmem, Mode::Initialize), - }) -} - -/// Open a workspace with the given `id`. -/// -/// You can attach only once to a single workspace. -pub fn open(id: &str) -> Result { - let shmem = ShmemConf::new() - .os_id(id) - .open() - .map_err(|e| format!("Error opening shared memory: {:?}", e))?; - - #[cfg(unix)] - unlink_shmem(&id); - - let inner = Inner::layout(shmem, Mode::Attach); - if !inner.declare_exclusive_attached() { - return Err(format!("The workspace has been already attached to")); - } - - return Ok(WorkerHandle { inner }); - - #[cfg(unix)] - fn unlink_shmem(shmem_id: &str) { - // Unlink the shmem. Unlinking it from the filesystem will make it unaccessible for further - // opening, however, the kernel will still let the object live until the last reference dies - // out. - // - // There is still a chance that the shm stays on the fs, but that's a highly unlikely case - // that we don't address at this time. - - // shared-memory doesn't return file path to the shmem if get_flink_path is called, so we - // resort to `shm_unlink`. - // - // Additionally, even thouygh `fs::remove_file` is said to use `unlink` we still avoid relying on it, - // because the stdlib doesn't actually provide any gurantees on what syscalls will be called. - // (Not sure, what alternative it has though). - unsafe { - // must be in a local var in order to be not deallocated. - let shmem_id_cstr = - std::ffi::CString::new(shmem_id).expect("the shmmem id cannot have NUL in it; qed"); - - if libc::shm_unlink(shmem_id_cstr.as_ptr()) == -1 { - // failed to remove the shmem file nothing we can do ¯\_(ツ)_/¯ - log::warn!( - target: LOG_TARGET, - "failed to remove the shmem with id {}", - shmem_id, - ); - } - } - } -} - -#[cfg(test)] -mod tests { - use polkadot_core_primitives::OutboundHrmpMessage; - - use crate::primitives::BlockData; - - use super::*; - use std::thread; - - #[test] - fn wait_until_ready() { - let host = create().unwrap(); - - let worker_handle = thread::spawn({ - let id = host.id().to_string(); - move || { - let worker = open(&id).unwrap(); - worker.signal_ready().unwrap(); - } - }); - - host.wait_until_ready(1).unwrap(); - - worker_handle.join().unwrap(); - } - - #[test] - fn wait_until_ready_timeout() { - let host = create().unwrap(); - - let _worker_handle = thread::spawn({ - let id = host.id().to_string(); - move || { - let _worker = open(&id).unwrap(); - } - }); - - assert!(matches!( - host.wait_until_ready(1), - Err(WaitUntilReadyErr::Wait(_)) - )); - } - - #[test] - fn open_junk_id() { - assert!(open("").is_err()); - assert!(open("non_existent").is_err()); - assert!(open("☭").is_err()); - } - - #[test] - fn attach_twice() { - let host = create().unwrap(); - - thread::spawn({ - let id = host.id().to_string(); - move || { - let _worker1 = open(&id).unwrap(); - assert!(open(&id).is_err()); - } - }); - } - - #[test] - fn validation_works() { - let mut host = create().unwrap(); - - let worker_handle = thread::spawn({ - let id = host.id().to_string(); - move || { - let mut worker = open(&id).unwrap(); - worker.signal_ready().unwrap(); - - let work = worker.wait_for_work(3).unwrap(); - assert_eq!(work.code, b"\0asm\01\00\00\00"); - - worker - .report_result(ValidationResultHeader::Ok(ValidationResult { - head_data: Default::default(), - new_validation_code: None, - upward_messages: vec![], - horizontal_messages: vec![], - processed_downward_messages: 322, - hrmp_watermark: 0, - })) - .unwrap(); - } - }); - - host.wait_until_ready(1).unwrap(); - host.request_validation( - b"\0asm\01\00\00\00", - ValidationParams { - parent_head: Default::default(), - block_data: BlockData(b"hello world".to_vec()), - relay_parent_number: 228, - relay_parent_storage_root: Default::default(), - }, - ) - .unwrap(); - - match host.wait_for_result(3).unwrap() { - ValidationResultHeader::Ok(r) => { - assert_eq!(r.processed_downward_messages, 322); - } - _ => panic!(), - } - - worker_handle.join().unwrap(); - } - - #[test] - fn works_with_jumbo_sized_params() { - let mut host = create().unwrap(); - - let jumbo_code = vec![0x42; 16 * 1024 * 104]; - let fat_pov = vec![0x33; 16 * 1024 * 104]; - let big_params = ValidationParams { - parent_head: Default::default(), - block_data: BlockData(fat_pov), - relay_parent_number: 228, - relay_parent_storage_root: Default::default(), - // If modifying please make sure that this has a big size. - }; - let plump_result = ValidationResultHeader::Ok(ValidationResult { - head_data: Default::default(), - new_validation_code: Some(jumbo_code.clone().into()), - processed_downward_messages: 322, - hrmp_watermark: 0, - // We don't know about the limits here. Just make sure that those are reasonably big. - upward_messages: fill(|| vec![0x99; 8 * 1024], 64), - horizontal_messages: fill( - || OutboundHrmpMessage { - recipient: 1.into(), - data: vec![0x11; 8 * 1024], - }, - 64, - ), - // If modifying please make sure that this has a big size. - }); - - let _worker_handle = thread::spawn({ - let id = host.id().to_string(); - let jumbo_code = jumbo_code.clone(); - let big_params = big_params.clone(); - let plump_result = plump_result.clone(); - move || { - let mut worker = open(&id).unwrap(); - worker.signal_ready().unwrap(); - - let work = worker.wait_for_work(3).unwrap(); - assert_eq!(work.code, &jumbo_code); - assert_eq!(work.params, &big_params.encode()); - - worker.report_result(plump_result).unwrap(); - } - }); - - host.wait_until_ready(1).unwrap(); - host.request_validation(&jumbo_code, big_params).unwrap(); - - assert_eq!(host.wait_for_result(3).unwrap(), plump_result); - - fn fill T>(f: F, times: usize) -> Vec { - std::iter::repeat_with(f).take(times).collect() - } - } -} diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index 4068d3c3f9e9..d7f6497dd3a8 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -31,6 +31,7 @@ sc-service = { git = "https://github.com/paritytech/substrate", branch = "master [dev-dependencies] polkadot-parachain = { path = "../../.." } polkadot-test-service = { path = "../../../../node/test/service" } +polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/parachain/test-parachains/adder/collator/src/lib.rs b/parachain/test-parachains/adder/collator/src/lib.rs index bac6ced05650..747c2ef837bb 100644 --- a/parachain/test-parachains/adder/collator/src/lib.rs +++ b/parachain/test-parachains/adder/collator/src/lib.rs @@ -230,7 +230,7 @@ mod tests { use super::*; use futures::executor::block_on; - use polkadot_parachain::{primitives::ValidationParams, wasm_executor::IsolationStrategy}; + use polkadot_parachain::{primitives::{ValidationParams, ValidationResult}}; use polkadot_primitives::v1::PersistedValidationData; #[test] @@ -265,18 +265,19 @@ mod tests { parent_head: HeadData, collation: Collation, ) { - let ret = polkadot_parachain::wasm_executor::validate_candidate( + use polkadot_node_core_pvf::testing::validate_candidate; + + let ret_buf = validate_candidate( collator.validation_code(), - ValidationParams { + &ValidationParams { parent_head: parent_head.encode().into(), block_data: collation.proof_of_validity.block_data, relay_parent_number: 1, relay_parent_storage_root: Default::default(), - }, - &IsolationStrategy::InProcess, - sp_core::testing::TaskExecutor::new(), + }.encode(), ) .unwrap(); + let ret = ValidationResult::decode(&mut &ret_buf[..]).unwrap(); let new_head = HeadData::decode(&mut &ret.head_data.0[..]).unwrap(); assert_eq!( diff --git a/parachain/test-parachains/tests/adder/mod.rs b/parachain/test-parachains/tests/adder/mod.rs deleted file mode 100644 index 2dc581208106..000000000000 --- a/parachain/test-parachains/tests/adder/mod.rs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2017-2020 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot 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. - -// Polkadot 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 Polkadot. If not, see . - -//! Basic parachain that adds a number as part of its state. - -const WORKER_ARGS_TEST: &[&'static str] = &["--nocapture", "validation_worker"]; - -use parachain::{ - primitives::{ - RelayChainBlockNumber, - BlockData as GenericBlockData, - HeadData as GenericHeadData, - ValidationParams, - }, - wasm_executor::{ValidationPool, IsolationStrategy} -}; -use parity_scale_codec::{Decode, Encode}; -use adder::{HeadData, BlockData, hash_state}; - -fn isolation_strategy() -> IsolationStrategy { - IsolationStrategy::ExternalProcessCustomHost { - pool: ValidationPool::new(), - binary: std::env::current_exe().unwrap(), - args: WORKER_ARGS_TEST.iter().map(|x| x.to_string()).collect(), - } -} - -#[test] -fn execute_good_on_parent_with_inprocess_validation() { - let isolation_strategy = IsolationStrategy::InProcess; - execute_good_on_parent(isolation_strategy); -} - -#[test] -pub fn execute_good_on_parent_with_external_process_validation() { - let isolation_strategy = isolation_strategy(); - execute_good_on_parent(isolation_strategy); -} - -fn execute_good_on_parent(isolation_strategy: IsolationStrategy) { - let parent_head = HeadData { - number: 0, - parent_hash: [0; 32], - post_state: hash_state(0), - }; - - let block_data = BlockData { - state: 0, - add: 512, - }; - - let ret = parachain::wasm_executor::validate_candidate( - adder::wasm_binary_unwrap(), - ValidationParams { - parent_head: GenericHeadData(parent_head.encode()), - block_data: GenericBlockData(block_data.encode()), - relay_parent_number: 1, - relay_parent_storage_root: Default::default(), - }, - &isolation_strategy, - sp_core::testing::TaskExecutor::new(), - ).unwrap(); - - let new_head = HeadData::decode(&mut &ret.head_data.0[..]).unwrap(); - - assert_eq!(new_head.number, 1); - assert_eq!(new_head.parent_hash, parent_head.hash()); - assert_eq!(new_head.post_state, hash_state(512)); -} - -#[test] -fn execute_good_chain_on_parent() { - let mut number = 0; - let mut parent_hash = [0; 32]; - let mut last_state = 0; - let isolation_strategy = isolation_strategy(); - - for add in 0..10 { - let parent_head = HeadData { - number, - parent_hash, - post_state: hash_state(last_state), - }; - - let block_data = BlockData { - state: last_state, - add, - }; - - let ret = parachain::wasm_executor::validate_candidate( - adder::wasm_binary_unwrap(), - ValidationParams { - parent_head: GenericHeadData(parent_head.encode()), - block_data: GenericBlockData(block_data.encode()), - relay_parent_number: number as RelayChainBlockNumber + 1, - relay_parent_storage_root: Default::default(), - }, - &isolation_strategy, - sp_core::testing::TaskExecutor::new(), - ).unwrap(); - - let new_head = HeadData::decode(&mut &ret.head_data.0[..]).unwrap(); - - assert_eq!(new_head.number, number + 1); - assert_eq!(new_head.parent_hash, parent_head.hash()); - assert_eq!(new_head.post_state, hash_state(last_state + add)); - - number += 1; - parent_hash = new_head.hash(); - last_state += add; - } -} - -#[test] -fn execute_bad_on_parent() { - let isolation_strategy = isolation_strategy(); - - let parent_head = HeadData { - number: 0, - parent_hash: [0; 32], - post_state: hash_state(0), - }; - - let block_data = BlockData { - state: 256, // start state is wrong. - add: 256, - }; - - let _ret = parachain::wasm_executor::validate_candidate( - adder::wasm_binary_unwrap(), - ValidationParams { - parent_head: GenericHeadData(parent_head.encode()), - block_data: GenericBlockData(block_data.encode()), - relay_parent_number: 1, - relay_parent_storage_root: Default::default(), - }, - &isolation_strategy, - sp_core::testing::TaskExecutor::new(), - ).unwrap_err(); -} diff --git a/parachain/test-parachains/tests/wasm_executor/mod.rs b/parachain/test-parachains/tests/wasm_executor/mod.rs deleted file mode 100644 index a034ae5908f0..000000000000 --- a/parachain/test-parachains/tests/wasm_executor/mod.rs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2019-2020 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot 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. - -// Polkadot 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 Polkadot. If not, see . - -//! Basic parachain that adds a number as part of its state. - -const WORKER_ARGS_TEST: &[&'static str] = &["--nocapture", "validation_worker"]; - -use crate::adder; -use parachain::{ - primitives::{BlockData, ValidationParams}, - wasm_executor::{ValidationError, InvalidCandidate, EXECUTION_TIMEOUT_SEC, IsolationStrategy, ValidationPool}, -}; - -fn isolation_strategy() -> IsolationStrategy { - IsolationStrategy::ExternalProcessCustomHost { - pool: ValidationPool::new(), - binary: std::env::current_exe().unwrap(), - args: WORKER_ARGS_TEST.iter().map(|x| x.to_string()).collect(), - } -} - -#[test] -fn terminates_on_timeout() { - let isolation_strategy = isolation_strategy(); - - let result = parachain::wasm_executor::validate_candidate( - halt::wasm_binary_unwrap(), - ValidationParams { - block_data: BlockData(Vec::new()), - parent_head: Default::default(), - relay_parent_number: 1, - relay_parent_storage_root: Default::default(), - }, - &isolation_strategy, - sp_core::testing::TaskExecutor::new(), - ); - match result { - Err(ValidationError::InvalidCandidate(InvalidCandidate::Timeout)) => {}, - r => panic!("{:?}", r), - } - - // check that another parachain can validate normaly - adder::execute_good_on_parent_with_external_process_validation(); -} - -#[test] -fn parallel_execution() { - let isolation_strategy = isolation_strategy(); - let isolation_strategy_clone = isolation_strategy.clone(); - - let start = std::time::Instant::now(); - let thread = std::thread::spawn(move || - parachain::wasm_executor::validate_candidate( - halt::wasm_binary_unwrap(), - ValidationParams { - block_data: BlockData(Vec::new()), - parent_head: Default::default(), - relay_parent_number: 1, - relay_parent_storage_root: Default::default(), - }, - &isolation_strategy, - sp_core::testing::TaskExecutor::new(), - ).ok()); - let _ = parachain::wasm_executor::validate_candidate( - halt::wasm_binary_unwrap(), - ValidationParams { - block_data: BlockData(Vec::new()), - parent_head: Default::default(), - relay_parent_storage_root: Default::default(), - relay_parent_number: 1, - }, - &isolation_strategy_clone, - sp_core::testing::TaskExecutor::new(), - ); - thread.join().unwrap(); - // total time should be < 2 x EXECUTION_TIMEOUT_SEC - assert!( - std::time::Instant::now().duration_since(start) - < std::time::Duration::from_secs(EXECUTION_TIMEOUT_SEC * 2) - ); -} From ff2d3ff2e10c3b72d56fb556b41ba549f6c5f61b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 25 Mar 2021 14:25:45 +0000 Subject: [PATCH 02/50] WIP: Diener --- Cargo.lock | 381 +++++++----------- bridges/bin/millau/node/Cargo.toml | 44 +- bridges/bin/millau/runtime/Cargo.toml | 50 +-- bridges/bin/rialto/node/Cargo.toml | 46 +-- bridges/bin/rialto/runtime/Cargo.toml | 54 +-- bridges/bin/runtime-common/Cargo.toml | 12 +- bridges/modules/call-dispatch/Cargo.toml | 12 +- bridges/modules/currency-exchange/Cargo.toml | 14 +- .../ethereum-contract/builtin/Cargo.toml | 10 +- bridges/modules/ethereum/Cargo.toml | 12 +- bridges/modules/finality-verifier/Cargo.toml | 10 +- bridges/modules/message-lane/Cargo.toml | 16 +- bridges/modules/message-lane/rpc/Cargo.toml | 12 +- .../modules/shift-session-manager/Cargo.toml | 14 +- bridges/modules/substrate/Cargo.toml | 18 +- .../primitives/currency-exchange/Cargo.toml | 6 +- bridges/primitives/ethereum-poa/Cargo.toml | 8 +- bridges/primitives/header-chain/Cargo.toml | 10 +- bridges/primitives/kusama/Cargo.toml | 12 +- bridges/primitives/message-lane/Cargo.toml | 6 +- bridges/primitives/millau/Cargo.toml | 16 +- bridges/primitives/polkadot/Cargo.toml | 12 +- bridges/primitives/rialto/Cargo.toml | 12 +- bridges/primitives/runtime/Cargo.toml | 10 +- bridges/primitives/test-utils/Cargo.toml | 6 +- bridges/relays/ethereum/Cargo.toml | 12 +- bridges/relays/kusama-client/Cargo.toml | 12 +- bridges/relays/millau-client/Cargo.toml | 12 +- bridges/relays/polkadot-client/Cargo.toml | 12 +- bridges/relays/rialto-client/Cargo.toml | 12 +- bridges/relays/substrate-client/Cargo.toml | 18 +- bridges/relays/substrate/Cargo.toml | 10 +- bridges/relays/utils/Cargo.toml | 2 +- cli/Cargo.toml | 16 +- core-primitives/Cargo.toml | 6 +- erasure-coding/Cargo.toml | 4 +- node/collation-generation/Cargo.toml | 2 +- node/core/approval-voting/Cargo.toml | 20 +- node/core/av-store/Cargo.toml | 6 +- node/core/backing/Cargo.toml | 10 +- node/core/bitfield-signing/Cargo.toml | 2 +- node/core/candidate-selection/Cargo.toml | 4 +- node/core/candidate-validation/Cargo.toml | 4 +- node/core/chain-api/Cargo.toml | 4 +- node/core/proposer/Cargo.toml | 24 +- node/core/provisioner/Cargo.toml | 4 +- node/core/pvf/Cargo.toml | 14 +- node/core/runtime-api/Cargo.toml | 8 +- node/jaeger/Cargo.toml | 4 +- node/network/approval-distribution/Cargo.toml | 2 +- .../availability-distribution/Cargo.toml | 16 +- node/network/availability-recovery/Cargo.toml | 6 +- node/network/bitfield-distribution/Cargo.toml | 6 +- node/network/bridge/Cargo.toml | 8 +- node/network/collator-protocol/Cargo.toml | 4 +- node/network/pov-distribution/Cargo.toml | 4 +- node/network/protocol/Cargo.toml | 2 +- .../network/statement-distribution/Cargo.toml | 12 +- node/overseer/Cargo.toml | 4 +- node/primitives/Cargo.toml | 10 +- node/service/Cargo.toml | 82 ++-- node/subsystem-test-helpers/Cargo.toml | 4 +- node/subsystem-util/Cargo.toml | 10 +- node/subsystem/Cargo.toml | 6 +- node/test/client/Cargo.toml | 28 +- node/test/service/Cargo.toml | 62 +-- parachain/Cargo.toml | 6 +- parachain/test-parachains/Cargo.toml | 2 +- parachain/test-parachains/adder/Cargo.toml | 4 +- .../test-parachains/adder/collator/Cargo.toml | 14 +- primitives/Cargo.toml | 30 +- rpc/Cargo.toml | 40 +- runtime/common/Cargo.toml | 60 +-- runtime/kusama/Cargo.toml | 114 +++--- runtime/parachains/Cargo.toml | 60 +-- runtime/polkadot/Cargo.toml | 110 ++--- runtime/rococo/Cargo.toml | 66 +-- runtime/test-runtime/Cargo.toml | 76 ++-- runtime/westend/Cargo.toml | 112 ++--- statement-table/Cargo.toml | 2 +- xcm/xcm-builder/Cargo.toml | 10 +- xcm/xcm-executor/Cargo.toml | 12 +- 82 files changed, 959 insertions(+), 1050 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40482e51f1cc..5cb61852c70d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1671,6 +1671,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", ] @@ -1688,6 +1689,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1706,6 +1708,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "chrono", @@ -1728,6 +1731,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1740,6 +1744,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1755,6 +1760,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -1765,6 +1771,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "bitflags", "frame-metadata", @@ -1790,6 +1797,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1801,6 +1809,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -1812,6 +1821,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro2", "quote", @@ -1821,6 +1831,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-metadata", "frame-support", @@ -1841,6 +1852,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1857,6 +1869,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -1870,6 +1883,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -1878,6 +1892,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "parity-scale-codec", @@ -4204,6 +4219,7 @@ checksum = "13370dae44474229701bb69b90b4f4dca6404cb0357a2d50d635f1171dc3aa7b" [[package]] name = "pallet-authority-discovery" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4219,6 +4235,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4233,6 +4250,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4256,6 +4274,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4270,6 +4289,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4284,6 +4304,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4300,6 +4321,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4314,6 +4336,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4334,6 +4357,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4349,6 +4373,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4370,6 +4395,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4385,6 +4411,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4404,6 +4431,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4420,6 +4448,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4433,6 +4462,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4448,6 +4478,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4461,6 +4492,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4476,6 +4508,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4497,6 +4530,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4512,6 +4546,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4524,6 +4559,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-support", @@ -4538,6 +4574,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4553,6 +4590,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4572,6 +4610,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4587,6 +4626,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4600,6 +4640,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4624,6 +4665,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4634,6 +4676,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4647,6 +4690,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4665,6 +4709,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4679,6 +4724,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4694,6 +4740,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4710,6 +4757,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4720,6 +4768,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4735,6 +4784,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4750,6 +4800,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6930,6 +6981,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "env_logger 0.8.2", "hex-literal", @@ -7186,6 +7238,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -7213,6 +7266,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7235,6 +7289,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7250,6 +7305,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7270,6 +7326,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7280,6 +7337,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "fdlimit", @@ -7317,6 +7375,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "fnv", @@ -7350,6 +7409,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "blake2-rfc", "hash-db", @@ -7379,6 +7439,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7389,6 +7450,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "fork-tree", @@ -7434,6 +7496,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7457,6 +7520,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7469,6 +7533,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7495,6 +7560,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sc-client-api", @@ -7508,6 +7574,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "lazy_static", @@ -7536,6 +7603,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "parity-scale-codec", @@ -7552,6 +7620,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -7566,6 +7635,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -7582,6 +7652,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "dyn-clone", @@ -7620,6 +7691,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "finality-grandpa", @@ -7643,6 +7715,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7663,6 +7736,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7680,6 +7754,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -7699,6 +7774,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "lazy_static", @@ -7717,6 +7793,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-std", "async-trait", @@ -7769,6 +7846,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7785,6 +7863,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "bytes 0.5.6", "fnv", @@ -7812,6 +7891,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "libp2p", @@ -7824,6 +7904,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7832,6 +7913,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "hash-db", @@ -7865,6 +7947,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7888,6 +7971,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.1.29", "jsonrpc-core", @@ -7905,6 +7989,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "directories", "exit-future", @@ -7967,6 +8052,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -7981,6 +8067,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8000,6 +8087,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "futures 0.3.12", @@ -8019,6 +8107,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8045,6 +8134,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8055,6 +8145,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -8076,6 +8167,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -8476,6 +8568,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sp-core", @@ -8487,6 +8580,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "log", @@ -8503,6 +8597,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8514,6 +8609,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -8525,6 +8621,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "integer-sqrt", "num-traits", @@ -8537,6 +8634,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8548,6 +8646,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8558,6 +8657,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8569,6 +8669,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "log", @@ -8586,6 +8687,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "serde_json", @@ -8594,6 +8696,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8619,6 +8722,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "merlin", "parity-scale-codec", @@ -8639,6 +8743,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8648,6 +8753,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8659,6 +8765,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "base58", "blake2-rfc", @@ -8702,6 +8809,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8710,6 +8818,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro2", "quote", @@ -8719,6 +8828,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "environmental", "parity-scale-codec", @@ -8729,6 +8839,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "finality-grandpa", "log", @@ -8745,6 +8856,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8756,6 +8868,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "hash-db", @@ -8779,6 +8892,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "lazy_static", "sp-core", @@ -8789,6 +8903,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -8805,6 +8920,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -8817,6 +8933,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8827,6 +8944,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "sp-api", "sp-core", @@ -8836,6 +8954,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "backtrace", ] @@ -8843,6 +8962,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "sp-core", @@ -8851,6 +8971,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "either", "hash256-std-hasher", @@ -8871,6 +8992,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8887,6 +9009,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -8898,6 +9021,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "serde_json", @@ -8906,6 +9030,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8918,6 +9043,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8927,6 +9053,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "log", @@ -8948,10 +9075,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" [[package]] name = "sp-storage" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8964,6 +9093,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sp-core", @@ -8976,6 +9106,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8988,6 +9119,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -9000,6 +9132,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -9015,6 +9148,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "memory-db", @@ -9028,6 +9162,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-core", @@ -9039,6 +9174,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9050,6 +9186,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9206,6 +9343,7 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "console_error_panic_hook", @@ -9231,6 +9369,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "platforms", ] @@ -9238,6 +9377,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -9260,6 +9400,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-std", "derive_more", @@ -9273,6 +9414,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.1.29", "futures 0.3.12", @@ -9300,6 +9442,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "substrate-test-utils-derive", @@ -9309,6 +9452,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "quote", @@ -9992,6 +10136,7 @@ checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" [[package]] name = "try-runtime-cli" version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-try-runtime", "log", @@ -10917,239 +11062,3 @@ dependencies = [ "itertools 0.9.0", "libc", ] - -[[patch.unused]] -name = "chain-spec-builder" -version = "2.0.0" - -[[patch.unused]] -name = "node-bench" -version = "0.8.0" - -[[patch.unused]] -name = "node-browser-testing" -version = "2.0.0" - -[[patch.unused]] -name = "node-cli" -version = "2.0.0" - -[[patch.unused]] -name = "node-executor" -version = "2.0.0" - -[[patch.unused]] -name = "node-inspect" -version = "0.8.0" - -[[patch.unused]] -name = "node-primitives" -version = "2.0.0" - -[[patch.unused]] -name = "node-rpc" -version = "2.0.0" - -[[patch.unused]] -name = "node-rpc-client" -version = "2.0.0" - -[[patch.unused]] -name = "node-runtime" -version = "2.0.1" - -[[patch.unused]] -name = "node-template" -version = "2.0.0" - -[[patch.unused]] -name = "node-template-runtime" -version = "2.0.0" - -[[patch.unused]] -name = "node-testing" -version = "2.0.0" - -[[patch.unused]] -name = "pallet-assets" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-atomic-swap" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-aura" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-contracts" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-contracts-primitives" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-contracts-proc-macro" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-contracts-rpc" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-contracts-rpc-runtime-api" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-elections" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-example" -version = "2.0.0" - -[[patch.unused]] -name = "pallet-example-offchain-worker" -version = "2.0.1" - -[[patch.unused]] -name = "pallet-example-parallel" -version = "2.0.1" - -[[patch.unused]] -name = "pallet-gilt" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-lottery" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-mmr" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-mmr-primitives" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-mmr-rpc" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-node-authorization" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-scored-pool" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-staking-reward-fn" -version = "3.0.0" - -[[patch.unused]] -name = "pallet-template" -version = "2.0.0" - -[[patch.unused]] -name = "sc-consensus-aura" -version = "0.9.0" - -[[patch.unused]] -name = "sc-consensus-manual-seal" -version = "0.9.0" - -[[patch.unused]] -name = "sc-consensus-pow" -version = "0.9.0" - -[[patch.unused]] -name = "sc-network-test" -version = "0.8.0" - -[[patch.unused]] -name = "sc-runtime-test" -version = "2.0.0" - -[[patch.unused]] -name = "sc-service-test" -version = "2.0.0" - -[[patch.unused]] -name = "sp-api-test" -version = "2.0.1" - -[[patch.unused]] -name = "sp-application-crypto-test" -version = "2.0.0" - -[[patch.unused]] -name = "sp-arithmetic-fuzzer" -version = "2.0.0" - -[[patch.unused]] -name = "sp-consensus-aura" -version = "0.9.0" - -[[patch.unused]] -name = "sp-consensus-pow" -version = "0.9.0" - -[[patch.unused]] -name = "sp-npos-elections-fuzzer" -version = "2.0.0-alpha.5" - -[[patch.unused]] -name = "sp-runtime-interface-test" -version = "2.0.0" - -[[patch.unused]] -name = "sp-runtime-interface-test-wasm" -version = "2.0.0" - -[[patch.unused]] -name = "sp-runtime-interface-test-wasm-deprecated" -version = "2.0.0" - -[[patch.unused]] -name = "sp-sandbox" -version = "0.9.0" - -[[patch.unused]] -name = "sp-test-primitives" -version = "2.0.0" - -[[patch.unused]] -name = "subkey" -version = "2.0.0" - -[[patch.unused]] -name = "substrate-frame-cli" -version = "3.0.0" - -[[patch.unused]] -name = "substrate-frame-rpc-support" -version = "3.0.0" - -[[patch.unused]] -name = "substrate-test-runtime" -version = "2.0.0" - -[[patch.unused]] -name = "substrate-test-runtime-client" -version = "2.0.0" - -[[patch.unused]] -name = "substrate-test-runtime-transaction-pool" -version = "2.0.0" - -[[patch.unused]] -name = "substrate-test-utils-test-crate" -version = "0.1.0" - -[[patch.unused]] -name = "substrate-wasm-builder" -version = "4.0.0" diff --git a/bridges/bin/millau/node/Cargo.toml b/bridges/bin/millau/node/Cargo.toml index 6f7aa94e6ffa..d21ed89f73f9 100644 --- a/bridges/bin/millau/node/Cargo.toml +++ b/bridges/bin/millau/node/Cargo.toml @@ -24,31 +24,31 @@ pallet-message-lane-rpc = { path = "../../../modules/message-lane/rpc" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [build-dependencies] build-script-utils = { package = "substrate-build-script-utils", version = "2.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } vergen = "3.1.0" [features] diff --git a/bridges/bin/millau/runtime/Cargo.toml b/bridges/bin/millau/runtime/Cargo.toml index d163661284b6..c09e85756287 100644 --- a/bridges/bin/millau/runtime/Cargo.toml +++ b/bridges/bin/millau/runtime/Cargo.toml @@ -28,31 +28,31 @@ pallet-substrate-bridge = { path = "../../../modules/substrate", default-feature # Substrate Dependencies -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [build-dependencies] wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "2.0.0" } diff --git a/bridges/bin/rialto/node/Cargo.toml b/bridges/bin/rialto/node/Cargo.toml index f99178c77aea..b55d1d7a2899 100644 --- a/bridges/bin/rialto/node/Cargo.toml +++ b/bridges/bin/rialto/node/Cargo.toml @@ -24,32 +24,32 @@ rialto-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [build-dependencies] build-script-utils = { package = "substrate-build-script-utils", version = "2.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } vergen = "3.1.0" [features] diff --git a/bridges/bin/rialto/runtime/Cargo.toml b/bridges/bin/rialto/runtime/Cargo.toml index 517ddff9cb67..a162074ffb00 100644 --- a/bridges/bin/rialto/runtime/Cargo.toml +++ b/bridges/bin/rialto/runtime/Cargo.toml @@ -34,33 +34,33 @@ pallet-shift-session-manager = { path = "../../../modules/shift-session-manager" # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] libsecp256k1 = { version = "0.3.4", features = ["hmac"] } diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml index 69b618e7daa5..a8d8d340dd89 100644 --- a/bridges/bin/runtime-common/Cargo.toml +++ b/bridges/bin/runtime-common/Cargo.toml @@ -23,12 +23,12 @@ pallet-substrate-bridge = { path = "../../modules/substrate", default-features = # Substrate dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/modules/call-dispatch/Cargo.toml b/bridges/modules/call-dispatch/Cargo.toml index 64910df861c3..4a471fe50052 100644 --- a/bridges/modules/call-dispatch/Cargo.toml +++ b/bridges/modules/call-dispatch/Cargo.toml @@ -16,14 +16,14 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } serde = "1.0" [features] diff --git a/bridges/modules/currency-exchange/Cargo.toml b/bridges/modules/currency-exchange/Cargo.toml index cf58b5e81c34..4ef84e269d6a 100644 --- a/bridges/modules/currency-exchange/Cargo.toml +++ b/bridges/modules/currency-exchange/Cargo.toml @@ -17,15 +17,15 @@ bp-header-chain = { path = "../../primitives/header-chain", default-features = f # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/modules/ethereum-contract/builtin/Cargo.toml b/bridges/modules/ethereum-contract/builtin/Cargo.toml index d17b0ba7e118..383632f96822 100644 --- a/bridges/modules/ethereum-contract/builtin/Cargo.toml +++ b/bridges/modules/ethereum-contract/builtin/Cargo.toml @@ -19,10 +19,10 @@ rialto-runtime = { path = "../../../bin/rialto/runtime" } # Substrate Dependencies -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/modules/ethereum/Cargo.toml b/bridges/modules/ethereum/Cargo.toml index 1912f45babb5..44f611574bca 100644 --- a/bridges/modules/ethereum/Cargo.toml +++ b/bridges/modules/ethereum/Cargo.toml @@ -17,12 +17,12 @@ bp-eth-poa = { path = "../../primitives/ethereum-poa", default-features = false # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] libsecp256k1 = { version = "0.3.4", features = ["hmac"] } diff --git a/bridges/modules/finality-verifier/Cargo.toml b/bridges/modules/finality-verifier/Cargo.toml index 35d4d6880aa9..8c336e12f1fd 100644 --- a/bridges/modules/finality-verifier/Cargo.toml +++ b/bridges/modules/finality-verifier/Cargo.toml @@ -19,15 +19,15 @@ bp-header-chain = { path = "../../primitives/header-chain", default-features = f # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] bp-test-utils = {path = "../../primitives/test-utils" } pallet-substrate-bridge = { path = "../../modules/substrate" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] diff --git a/bridges/modules/message-lane/Cargo.toml b/bridges/modules/message-lane/Cargo.toml index abbfb6076124..e4ecb4da8449 100644 --- a/bridges/modules/message-lane/Cargo.toml +++ b/bridges/modules/message-lane/Cargo.toml @@ -19,17 +19,17 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] hex-literal = "0.3" -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/modules/message-lane/rpc/Cargo.toml b/bridges/modules/message-lane/rpc/Cargo.toml index 23dac80b407c..8b4ea74a6294 100644 --- a/bridges/modules/message-lane/rpc/Cargo.toml +++ b/bridges/modules/message-lane/rpc/Cargo.toml @@ -21,9 +21,9 @@ bp-message-lane = { path = "../../../primitives/message-lane" } # Substrate Dependencies -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/modules/shift-session-manager/Cargo.toml b/bridges/modules/shift-session-manager/Cargo.toml index 6dac97ddde60..bafe79b4d46e 100644 --- a/bridges/modules/shift-session-manager/Cargo.toml +++ b/bridges/modules/shift-session-manager/Cargo.toml @@ -11,15 +11,15 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features = # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } serde = "1.0" [features] diff --git a/bridges/modules/substrate/Cargo.toml b/bridges/modules/substrate/Cargo.toml index 490aa2098b9f..740dd69af6f0 100644 --- a/bridges/modules/substrate/Cargo.toml +++ b/bridges/modules/substrate/Cargo.toml @@ -20,18 +20,18 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] bp-test-utils = {path = "../../primitives/test-utils" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/currency-exchange/Cargo.toml b/bridges/primitives/currency-exchange/Cargo.toml index 43367ba7992b..9ed3dce7f22b 100644 --- a/bridges/primitives/currency-exchange/Cargo.toml +++ b/bridges/primitives/currency-exchange/Cargo.toml @@ -11,9 +11,9 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features = # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/ethereum-poa/Cargo.toml b/bridges/primitives/ethereum-poa/Cargo.toml index cd2c3a97a0f3..b0a473b0fbf8 100644 --- a/bridges/primitives/ethereum-poa/Cargo.toml +++ b/bridges/primitives/ethereum-poa/Cargo.toml @@ -24,10 +24,10 @@ triehash = { version = "0.8.2", default-features = false } # Substrate Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] hex-literal = "0.2" diff --git a/bridges/primitives/header-chain/Cargo.toml b/bridges/primitives/header-chain/Cargo.toml index dc58dafb979e..22c37c412d5f 100644 --- a/bridges/primitives/header-chain/Cargo.toml +++ b/bridges/primitives/header-chain/Cargo.toml @@ -13,11 +13,11 @@ serde = { version = "1.0", optional = true } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] bp-test-utils = { path = "../test-utils" } diff --git a/bridges/primitives/kusama/Cargo.toml b/bridges/primitives/kusama/Cargo.toml index 784f0b013289..ec1e8ee4a009 100644 --- a/bridges/primitives/kusama/Cargo.toml +++ b/bridges/primitives/kusama/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/message-lane/Cargo.toml b/bridges/primitives/message-lane/Cargo.toml index cbddcb161460..99626494986e 100644 --- a/bridges/primitives/message-lane/Cargo.toml +++ b/bridges/primitives/message-lane/Cargo.toml @@ -15,9 +15,9 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/millau/Cargo.toml b/bridges/primitives/millau/Cargo.toml index 124d8199e2c2..399dbaa31661 100644 --- a/bridges/primitives/millau/Cargo.toml +++ b/bridges/primitives/millau/Cargo.toml @@ -21,14 +21,14 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/polkadot/Cargo.toml b/bridges/primitives/polkadot/Cargo.toml index f7c9b9717d1c..edfefb7ed138 100644 --- a/bridges/primitives/polkadot/Cargo.toml +++ b/bridges/primitives/polkadot/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/rialto/Cargo.toml b/bridges/primitives/rialto/Cargo.toml index d6c12fc84809..19f4dcbca3a1 100644 --- a/bridges/primitives/rialto/Cargo.toml +++ b/bridges/primitives/rialto/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/runtime/Cargo.toml b/bridges/primitives/runtime/Cargo.toml index b8e511fa56f8..ce2cf6cbfec6 100644 --- a/bridges/primitives/runtime/Cargo.toml +++ b/bridges/primitives/runtime/Cargo.toml @@ -12,11 +12,11 @@ num-traits = { version = "0.2", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [features] default = ["std"] diff --git a/bridges/primitives/test-utils/Cargo.toml b/bridges/primitives/test-utils/Cargo.toml index 396e0e764635..320c7ad35ff4 100644 --- a/bridges/primitives/test-utils/Cargo.toml +++ b/bridges/primitives/test-utils/Cargo.toml @@ -8,6 +8,6 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" [dependencies] finality-grandpa = { version = "0.14.0" } bp-header-chain = { path = "../header-chain" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/ethereum/Cargo.toml b/bridges/relays/ethereum/Cargo.toml index 860c0815e2e8..8da80d9f9f9e 100644 --- a/bridges/relays/ethereum/Cargo.toml +++ b/bridges/relays/ethereum/Cargo.toml @@ -40,9 +40,9 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/kusama-client/Cargo.toml b/bridges/relays/kusama-client/Cargo.toml index 04958cf2b361..5df407c4cebb 100644 --- a/bridges/relays/kusama-client/Cargo.toml +++ b/bridges/relays/kusama-client/Cargo.toml @@ -17,9 +17,9 @@ bp-kusama = { path = "../../primitives/kusama" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/millau-client/Cargo.toml b/bridges/relays/millau-client/Cargo.toml index 5f9cbd170c93..7ddd9d2bbdd1 100644 --- a/bridges/relays/millau-client/Cargo.toml +++ b/bridges/relays/millau-client/Cargo.toml @@ -17,9 +17,9 @@ millau-runtime = { path = "../../bin/millau/runtime" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/polkadot-client/Cargo.toml b/bridges/relays/polkadot-client/Cargo.toml index 8764b6509b24..dbf4bada44e1 100644 --- a/bridges/relays/polkadot-client/Cargo.toml +++ b/bridges/relays/polkadot-client/Cargo.toml @@ -17,9 +17,9 @@ bp-polkadot = { path = "../../primitives/polkadot" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/rialto-client/Cargo.toml b/bridges/relays/rialto-client/Cargo.toml index 6142ba05c963..1f6058d7eaf7 100644 --- a/bridges/relays/rialto-client/Cargo.toml +++ b/bridges/relays/rialto-client/Cargo.toml @@ -17,9 +17,9 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/substrate-client/Cargo.toml b/bridges/relays/substrate-client/Cargo.toml index 016a7d7d3371..89b5742e83a3 100644 --- a/bridges/relays/substrate-client/Cargo.toml +++ b/bridges/relays/substrate-client/Cargo.toml @@ -23,15 +23,15 @@ relay-utils = { path = "../utils" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } #[dev-dependencies] futures = "0.3.7" diff --git a/bridges/relays/substrate/Cargo.toml b/bridges/relays/substrate/Cargo.toml index 120501e511fe..5162968a7c99 100644 --- a/bridges/relays/substrate/Cargo.toml +++ b/bridges/relays/substrate/Cargo.toml @@ -42,8 +42,8 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/bridges/relays/utils/Cargo.toml b/bridges/relays/utils/Cargo.toml index ce6a20bbc4fe..071237c313ca 100644 --- a/bridges/relays/utils/Cargo.toml +++ b/bridges/relays/utils/Cargo.toml @@ -19,4 +19,4 @@ time = "0.2" # Substrate dependencies -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index fc0f5e0890ad..7afd12c32663 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -24,19 +24,19 @@ futures = "0.3.12" service = { package = "polkadot-service", path = "../node/service", default-features = false, optional = true } polkadot-node-core-pvf = { path = "../node/core/pvf", optional = true } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -browser-utils = { package = "substrate-browser-utils", git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sc-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +browser-utils = { package = "substrate-browser-utils", git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } # this crate is used only to enable `trie-memory-tracker` feature # see https://github.com/paritytech/substrate/pull/6745 -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] default = [ "wasmtime", "db", "cli", "full-node", "trie-memory-tracker" ] diff --git a/core-primitives/Cargo.toml b/core-primitives/Cargo.toml index 4007c9a90037..828910c09ead 100644 --- a/core-primitives/Cargo.toml +++ b/core-primitives/Cargo.toml @@ -5,9 +5,9 @@ authors = ["Parity Technologies "] edition = "2018" [dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } parity-scale-codec = { version = "2.0.0", default-features = false, features = [ "derive" ] } parity-util-mem = { version = "0.9.0", default-features = false, optional = true } diff --git a/erasure-coding/Cargo.toml b/erasure-coding/Cargo.toml index c1ea7f33fb8a..c2263ff2f615 100644 --- a/erasure-coding/Cargo.toml +++ b/erasure-coding/Cargo.toml @@ -8,6 +8,6 @@ edition = "2018" primitives = { package = "polkadot-primitives", path = "../primitives" } novelpoly = { package = "reed-solomon-novelpoly", version = "=0.0.3" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["std", "derive"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } thiserror = "1.0.23" diff --git a/node/collation-generation/Cargo.toml b/node/collation-generation/Cargo.toml index fdcfa6ae1fd7..1f27bdbf843f 100644 --- a/node/collation-generation/Cargo.toml +++ b/node/collation-generation/Cargo.toml @@ -12,7 +12,7 @@ polkadot-node-primitives = { path = "../primitives" } polkadot-node-subsystem = { path = "../subsystem" } polkadot-node-subsystem-util = { path = "../subsystem-util" } polkadot-primitives = { path = "../../primitives" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } thiserror = "1.0.23" [dev-dependencies] diff --git a/node/core/approval-voting/Cargo.toml b/node/core/approval-voting/Cargo.toml index f3fe0fcb0396..52c16d7255d5 100644 --- a/node/core/approval-voting/Cargo.toml +++ b/node/core/approval-voting/Cargo.toml @@ -23,20 +23,20 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["full_crypto"] } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-consensus-slots = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", default-features = false, features = ["full_crypto"] , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] parking_lot = "0.11.1" rand_core = "0.5.1" # should match schnorrkel -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } maplit = "1.0.2" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } assert_matches = "1.4.0" diff --git a/node/core/av-store/Cargo.toml b/node/core/av-store/Cargo.toml index 00572ca58bc2..7b0aca3d1bae 100644 --- a/node/core/av-store/Cargo.toml +++ b/node/core/av-store/Cargo.toml @@ -20,7 +20,7 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-overseer = { path = "../../overseer" } polkadot-primitives = { path = "../../../primitives" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sc-service = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } [dev-dependencies] log = "0.4.13" @@ -28,8 +28,8 @@ env_logger = "0.8.2" assert_matches = "1.4.0" kvdb-memorydb = "0.9.0" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } parking_lot = "0.11.1" diff --git a/node/core/backing/Cargo.toml b/node/core/backing/Cargo.toml index a6b04c03ae92..eafad6748895 100644 --- a/node/core/backing/Cargo.toml +++ b/node/core/backing/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" [dependencies] futures = "0.3.12" -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } @@ -18,10 +18,10 @@ tracing = "0.1.25" thiserror = "1.0.23" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } futures = { version = "0.3.12", features = ["thread-pool"] } assert_matches = "1.4.0" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/core/bitfield-signing/Cargo.toml b/node/core/bitfield-signing/Cargo.toml index e336af9522c1..0e2da805c715 100644 --- a/node/core/bitfield-signing/Cargo.toml +++ b/node/core/bitfield-signing/Cargo.toml @@ -10,6 +10,6 @@ tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } wasm-timer = "0.2.5" thiserror = "1.0.23" diff --git a/node/core/candidate-selection/Cargo.toml b/node/core/candidate-selection/Cargo.toml index ee58baa1f802..21dec1769e80 100644 --- a/node/core/candidate-selection/Cargo.toml +++ b/node/core/candidate-selection/Cargo.toml @@ -9,7 +9,7 @@ futures = "0.3.12" tracing = "0.1.25" thiserror = "1.0.23" -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } @@ -17,4 +17,4 @@ polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/core/candidate-validation/Cargo.toml b/node/core/candidate-validation/Cargo.toml index 2bed6553e463..112cf4d6675d 100644 --- a/node/core/candidate-validation/Cargo.toml +++ b/node/core/candidate-validation/Cargo.toml @@ -22,8 +22,8 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-core-pvf = { path = "../pvf" } [dev-dependencies] -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } futures = { version = "0.3.12", features = ["thread-pool"] } assert_matches = "1.4.0" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/core/chain-api/Cargo.toml b/node/core/chain-api/Cargo.toml index 707fa812f004..b6bb1332f297 100644 --- a/node/core/chain-api/Cargo.toml +++ b/node/core/chain-api/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" [dependencies] futures = "0.3.12" tracing = "0.1.25" -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-primitives = { path = "../../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } @@ -16,4 +16,4 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } futures = { version = "0.3.12", features = ["thread-pool"] } maplit = "1.0.2" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/core/proposer/Cargo.toml b/node/core/proposer/Cargo.toml index f2532d61d1cd..5c61e9de6fae 100644 --- a/node/core/proposer/Cargo.toml +++ b/node/core/proposer/Cargo.toml @@ -11,15 +11,15 @@ tracing = "0.1.25" polkadot-node-subsystem = { path = "../../subsystem" } polkadot-overseer = { path = "../../overseer" } polkadot-primitives = { path = "../../../primitives" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/core/provisioner/Cargo.toml b/node/core/provisioner/Cargo.toml index bff63e230af0..cf718f204d47 100644 --- a/node/core/provisioner/Cargo.toml +++ b/node/core/provisioner/Cargo.toml @@ -15,5 +15,5 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } futures-timer = "3.0.2" [dev-dependencies] -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index 99bed2cf1cec..487385f82a8f 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -26,13 +26,13 @@ rand = "0.8.3" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } polkadot-parachain = { path = "../../../parachain" } polkadot-core-primitives = { path = "../../../core-primitives" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor-wasmtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor-wasmtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] adder = { package = "test-parachain-adder", path = "../../../parachain/test-parachains/adder" } diff --git a/node/core/runtime-api/Cargo.toml b/node/core/runtime-api/Cargo.toml index 5d0889bf5a5d..9600e7c524d5 100644 --- a/node/core/runtime-api/Cargo.toml +++ b/node/core/runtime-api/Cargo.toml @@ -10,16 +10,16 @@ tracing = "0.1.25" memory-lru = "0.1.0" parity-util-mem = { version = "0.9.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-primitives = { path = "../../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } futures = { version = "0.3.12", features = ["thread-pool"] } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-node-primitives = { path = "../../primitives" } diff --git a/node/jaeger/Cargo.toml b/node/jaeger/Cargo.toml index 32aa4491f980..35f14fe876fd 100644 --- a/node/jaeger/Cargo.toml +++ b/node/jaeger/Cargo.toml @@ -11,8 +11,8 @@ mick-jaeger = "0.1.4" lazy_static = "1.4" parking_lot = "0.11.1" polkadot-primitives = { path = "../../primitives" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } thiserror = "1.0.23" log = "0.4.13" parity-scale-codec = { version = "2.0.0", default-features = false } diff --git a/node/network/approval-distribution/Cargo.toml b/node/network/approval-distribution/Cargo.toml index 900582aa988e..4e6439a78854 100644 --- a/node/network/approval-distribution/Cargo.toml +++ b/node/network/approval-distribution/Cargo.toml @@ -15,7 +15,7 @@ futures = "0.3.8" tracing = "0.1.25" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } +sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/network/availability-distribution/Cargo.toml b/node/network/availability-distribution/Cargo.toml index 85fa6c549f7c..5855f07a563e 100644 --- a/node/network/availability-distribution/Cargo.toml +++ b/node/network/availability-distribution/Cargo.toml @@ -14,20 +14,20 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsys polkadot-node-network-protocol = { path = "../../network/protocol" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-core-runtime-api = { path = "../../core/runtime-api" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } thiserror = "1.0.23" rand = "0.8.3" lru = "0.6.5" [dev-dependencies] polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } futures-timer = "3.0.2" assert_matches = "1.4.0" maplit = "1.0" diff --git a/node/network/availability-recovery/Cargo.toml b/node/network/availability-recovery/Cargo.toml index 78f0f37cda67..c14379df8248 100644 --- a/node/network/availability-recovery/Cargo.toml +++ b/node/network/availability-recovery/Cargo.toml @@ -26,8 +26,8 @@ futures-timer = "3.0.2" log = "0.4.11" smallvec = "1.5.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } diff --git a/node/network/bitfield-distribution/Cargo.toml b/node/network/bitfield-distribution/Cargo.toml index f19807a91bea..cab6f1b7d839 100644 --- a/node/network/bitfield-distribution/Cargo.toml +++ b/node/network/bitfield-distribution/Cargo.toml @@ -16,9 +16,9 @@ polkadot-node-network-protocol = { path = "../../network/protocol" } [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } bitvec = { version = "0.20.1", default-features = false, features = ["alloc"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } maplit = "1.0.2" log = "0.4.13" env_logger = "0.8.2" diff --git a/node/network/bridge/Cargo.toml b/node/network/bridge/Cargo.toml index 8afa884cf1d5..9b7a6a7c328a 100644 --- a/node/network/bridge/Cargo.toml +++ b/node/network/bridge/Cargo.toml @@ -10,8 +10,8 @@ futures = "0.3.12" tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-network-protocol = { path = "../protocol" } strum = "0.20.0" @@ -21,5 +21,5 @@ assert_matches = "1.4.0" parking_lot = "0.11.1" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-node-subsystem-util = { path = "../../subsystem-util"} -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/network/collator-protocol/Cargo.toml b/node/network/collator-protocol/Cargo.toml index 9f95fb94ac3a..2a67bf67a2ad 100644 --- a/node/network/collator-protocol/Cargo.toml +++ b/node/network/collator-protocol/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.13" env_logger = "0.8.2" assert_matches = "1.4.0" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } diff --git a/node/network/pov-distribution/Cargo.toml b/node/network/pov-distribution/Cargo.toml index ae405638c4c6..293ffe8749c2 100644 --- a/node/network/pov-distribution/Cargo.toml +++ b/node/network/pov-distribution/Cargo.toml @@ -19,7 +19,7 @@ assert_matches = "1.4.0" env_logger = "0.8.1" log = "0.4.13" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/network/protocol/Cargo.toml b/node/network/protocol/Cargo.toml index f7a0c72b2a08..f47c5c32977f 100644 --- a/node/network/protocol/Cargo.toml +++ b/node/network/protocol/Cargo.toml @@ -10,6 +10,6 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } strum = { version = "0.20", features = ["derive"] } futures = "0.3.12" diff --git a/node/network/statement-distribution/Cargo.toml b/node/network/statement-distribution/Cargo.toml index 5bcae793a348..af39abbc3270 100644 --- a/node/network/statement-distribution/Cargo.toml +++ b/node/network/statement-distribution/Cargo.toml @@ -9,7 +9,7 @@ edition = "2018" futures = "0.3.12" tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } @@ -20,8 +20,8 @@ indexmap = "1.6.1" [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } assert_matches = "1.4.0" -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/overseer/Cargo.toml b/node/overseer/Cargo.toml index 9a3ef00c6402..d87dbb168ebc 100644 --- a/node/overseer/Cargo.toml +++ b/node/overseer/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" [dependencies] async-trait = "0.1.42" -client = { package = "sc-client-api", git = "https://github.com/paritytech/substrate", branch = "master" } +client = { package = "sc-client-api", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } futures = "0.3.12" futures-timer = "3.0.2" oorandom = "11.1.3" @@ -17,7 +17,7 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../subsystem tracing = "0.1.25" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } polkadot-node-network-protocol = { path = "../network/protocol" } futures = { version = "0.3.12", features = ["thread-pool"] } futures-timer = "3.0.2" diff --git a/node/primitives/Cargo.toml b/node/primitives/Cargo.toml index 6259d114269c..b7a8d5fa659f 100644 --- a/node/primitives/Cargo.toml +++ b/node/primitives/Cargo.toml @@ -10,10 +10,10 @@ futures = "0.3.12" polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-vrf = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-vrf = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } schnorrkel = "0.9.1" thiserror = "1.0.22" diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 8f7863c053ef..7ff0ca0b3923 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -6,53 +6,53 @@ edition = "2018" [dependencies] # Substrate Client -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } -grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa-warp-sync = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -service = { package = "sc-service", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -telemetry = { package = "sc-telemetry", git = "https://github.com/paritytech/substrate", branch = "master" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa-warp-sync = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +service = { package = "sc-service", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +telemetry = { package = "sc-telemetry", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } # Substrate Primitives -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } -consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } -grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-storage = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } # Substrate Pallets -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } # Substrate Other -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } # External Crates futures = "0.3.12" diff --git a/node/subsystem-test-helpers/Cargo.toml b/node/subsystem-test-helpers/Cargo.toml index a1751146c9b5..6b71c9a334b6 100644 --- a/node/subsystem-test-helpers/Cargo.toml +++ b/node/subsystem-test-helpers/Cargo.toml @@ -18,9 +18,9 @@ polkadot-node-subsystem = { path = "../subsystem" } polkadot-node-subsystem-util = { path = "../subsystem-util" } polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } smallvec = "1.6.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] polkadot-overseer = { path = "../overseer" } diff --git a/node/subsystem-util/Cargo.toml b/node/subsystem-util/Cargo.toml index abd04d3cc40a..98c8284e2083 100644 --- a/node/subsystem-util/Cargo.toml +++ b/node/subsystem-util/Cargo.toml @@ -23,11 +23,11 @@ polkadot-node-network-protocol = { path = "../network/protocol" } polkadot-primitives = { path = "../../primitives" } metered-channel = { path = "../metered-channel"} -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] assert_matches = "1.4.0" diff --git a/node/subsystem/Cargo.toml b/node/subsystem/Cargo.toml index 590af20343e8..dfc324521966 100644 --- a/node/subsystem/Cargo.toml +++ b/node/subsystem/Cargo.toml @@ -23,10 +23,10 @@ polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } polkadot-node-jaeger = { path = "../jaeger" } polkadot-procmacro-subsystem-dispatch-gen = { path = "dispatch-gen" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } smallvec = "1.6.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } thiserror = "1.0.23" log = "0.4.13" diff --git a/node/test/client/Cargo.toml b/node/test/client/Cargo.toml index 40b0cf054af6..0d68de5c3a0f 100644 --- a/node/test/client/Cargo.toml +++ b/node/test/client/Cargo.toml @@ -14,19 +14,19 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } # Substrate dependencies -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/node/test/service/Cargo.toml b/node/test/service/Cargo.toml index b8edc0bed965..046387cde524 100644 --- a/node/test/service/Cargo.toml +++ b/node/test/service/Cargo.toml @@ -25,38 +25,38 @@ polkadot-test-runtime = { path = "../../../runtime/test-runtime" } polkadot-runtime-parachains = { path = "../../../runtime/parachains" } # Substrate dependencies -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } -consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } -grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } -grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } -service = { package = "sc-service", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +service = { package = "sc-service", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } serde_json = "1.0.61" -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } tokio = { version = "0.2", features = ["macros"] } diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index 883ed1955d1c..3dd8c8be8619 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -11,9 +11,9 @@ edition = "2018" # various unnecessary Substrate-specific endpoints. parity-scale-codec = { version = "2.0.0", default-features = false, features = [ "derive" ] } parity-util-mem = { version = "0.9.0", optional = true } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } polkadot-core-primitives = { path = "../core-primitives", default-features = false } derive_more = "0.99.11" diff --git a/parachain/test-parachains/Cargo.toml b/parachain/test-parachains/Cargo.toml index 75069345e2d7..2bb23a1e2bc4 100644 --- a/parachain/test-parachains/Cargo.toml +++ b/parachain/test-parachains/Cargo.toml @@ -14,7 +14,7 @@ adder = { package = "test-parachain-adder", path = "adder" } halt = { package = "test-parachain-halt", path = "halt" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] default = [ "std" ] diff --git a/parachain/test-parachains/adder/Cargo.toml b/parachain/test-parachains/adder/Cargo.toml index 221cdb1b769f..f81d9dfea259 100644 --- a/parachain/test-parachains/adder/Cargo.toml +++ b/parachain/test-parachains/adder/Cargo.toml @@ -9,12 +9,12 @@ build = "build.rs" [dependencies] parachain = { package = "polkadot-parachain", path = "../../", default-features = false, features = [ "wasm-api" ] } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } tiny-keccak = { version = "2.0.2", features = ["keccak"] } dlmalloc = { version = "0.2.1", features = [ "global" ] } # We need to make sure the global allocator is disabled until we have support of full substrate externalities -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = [ "disable_allocator" ] } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, features = [ "disable_allocator" ] , branch = "ser-instrument" } [build-dependencies] substrate-wasm-builder = "3.0.0" diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index d7f6497dd3a8..fcc9b68a9601 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -23,19 +23,19 @@ polkadot-service = { path = "../../../../node/service" } polkadot-node-primitives = { path = "../../../../node/primitives" } polkadot-node-subsystem = { path = "../../../../node/subsystem" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [dev-dependencies] polkadot-parachain = { path = "../../.." } polkadot-test-service = { path = "../../../../node/test/service" } polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } tokio = { version = "0.2", features = ["macros"] } diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 0c887ece5023..543eb085edf0 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -7,23 +7,23 @@ edition = "2018" [dependencies] serde = { version = "1.0.123", optional = true, features = ["derive"] } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["bit-vec", "derive"] } -primitives = { package = "sp-core", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -application-crypto = { package = "sp-application-crypto", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +primitives = { package = "sp-core", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +application-crypto = { package = "sp-application-crypto", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } polkadot-parachain = { path = "../parachain", default-features = false } polkadot-core-primitives = { path = "../core-primitives", default-features = false } -trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } bitvec = { version = "0.20.1", default-features = false, features = ["alloc"] } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } hex-literal = "0.3.1" parity-util-mem = { version = "0.9.0", default-features = false, optional = true } thiserror = "1.0.23" @@ -32,7 +32,7 @@ thiserror = "1.0.23" zstd = "0.5.0" [dev-dependencies] -sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } pretty_assertions = "0.6.1" [features] diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 9485af21d063..399725aaf903 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -7,24 +7,24 @@ edition = "2018" [dependencies] jsonrpc-core = "15.1.0" polkadot-primitives = { path = "../primitives" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master"} -sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"} -sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "master"} -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master"} -sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"} -txpool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master" } -frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +txpool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } parity-scale-codec = { version = "2.0.0", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index 30dcae2cdeee..e096eb2eac1f 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -14,29 +14,29 @@ serde = { version = "1.0.123", default-features = false } serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features=false, optional = true } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features=false, optional = true , branch = "ser-instrument" } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } libsecp256k1 = { version = "0.3.5", default-features = false, optional = true } @@ -46,15 +46,15 @@ xcm = { path = "../../xcm", default-features = false } [dev-dependencies] hex-literal = "0.3.1" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } trie-db = "0.22.3" serde_json = "1.0.61" libsecp256k1 = "0.3.5" diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index 5c2fec3e6987..86041b3c1f7a 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -15,63 +15,63 @@ serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-bounties = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-recovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-society = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-bounties = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-recovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-society = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-tips = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -81,8 +81,8 @@ primitives = { package = "polkadot-primitives", path = "../../primitives", defau hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } separator = "0.4.1" serde_json = "1.0.61" diff --git a/runtime/parachains/Cargo.toml b/runtime/parachains/Cargo.toml index 8899f96dc579..bb9df8f6a84c 100644 --- a/runtime/parachains/Cargo.toml +++ b/runtime/parachains/Cargo.toml @@ -12,27 +12,27 @@ rustc-hex = { version = "2.1.0", default-features = false } serde = { version = "1.0.123", features = [ "derive" ], optional = true } derive_more = "0.99.11" -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } xcm = { package = "xcm", path = "../../xcm", default-features = false } xcm-executor = { package = "xcm-executor", path = "../../xcm/xcm-executor", default-features = false } @@ -45,18 +45,18 @@ rand_chacha = { version = "0.3.0", default-features = false } [dev-dependencies] futures = "0.3.12" hex-literal = "0.3.1" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } serde_json = "1.0.61" libsecp256k1 = "0.3.5" -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master"} +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } [features] diff --git a/runtime/polkadot/Cargo.toml b/runtime/polkadot/Cargo.toml index 1dc4c5f615fb..83ec2d4bde99 100644 --- a/runtime/polkadot/Cargo.toml +++ b/runtime/polkadot/Cargo.toml @@ -15,61 +15,61 @@ serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-bounties = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-bounties = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-tips = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -79,8 +79,8 @@ primitives = { package = "polkadot-primitives", path = "../../primitives", defau hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } trie-db = "0.22.3" serde_json = "1.0.61" separator = "0.4.1" diff --git a/runtime/rococo/Cargo.toml b/runtime/rococo/Cargo.toml index b109aa2b46f1..4b7b07c922a8 100644 --- a/runtime/rococo/Cargo.toml +++ b/runtime/rococo/Cargo.toml @@ -13,42 +13,42 @@ smallvec = "1.6.1" hex-literal = "0.3.1" log = { version = "0.4.14", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "master" } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } diff --git a/runtime/test-runtime/Cargo.toml b/runtime/test-runtime/Cargo.toml index b1cb371d96ac..4461ad1d64b9 100644 --- a/runtime/test-runtime/Cargo.toml +++ b/runtime/test-runtime/Cargo.toml @@ -14,43 +14,43 @@ serde = { version = "1.0.123", default-features = false } serde_derive = { version = "1.0.117", optional = true } smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-election-provider-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-election-provider-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } @@ -61,8 +61,8 @@ polkadot-runtime-parachains = { path = "../parachains", default-features = false hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } serde_json = "1.0.61" [build-dependencies] diff --git a/runtime/westend/Cargo.toml b/runtime/westend/Cargo.toml index 183c5453a15e..56d197475f99 100644 --- a/runtime/westend/Cargo.toml +++ b/runtime/westend/Cargo.toml @@ -15,62 +15,62 @@ serde_derive = { version = "1.0.117", optional = true } smallvec = "1.6.1" static_assertions = "1.1.0" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-elections-phragmen = { package = "pallet-elections-phragmen", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-recovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-society = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-elections-phragmen = { package = "pallet-elections-phragmen", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-recovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-society = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -82,8 +82,8 @@ runtime-parachains = { package = "polkadot-runtime-parachains", path = "../parac hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } serde_json = "1.0.61" [build-dependencies] diff --git a/statement-table/Cargo.toml b/statement-table/Cargo.toml index 1827b483cfbc..a454335d5d22 100644 --- a/statement-table/Cargo.toml +++ b/statement-table/Cargo.toml @@ -6,5 +6,5 @@ edition = "2018" [dependencies] parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } primitives = { package = "polkadot-primitives", path = "../primitives" } diff --git a/xcm/xcm-builder/Cargo.toml b/xcm/xcm-builder/Cargo.toml index fc57e0f1fc8c..1937491e2721 100644 --- a/xcm/xcm-builder/Cargo.toml +++ b/xcm/xcm-builder/Cargo.toml @@ -9,11 +9,11 @@ version = "0.8.22" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } xcm-executor = { path = "../xcm-executor", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } # Polkadot dependencies polkadot-parachain = { path = "../../parachain", default-features = false } diff --git a/xcm/xcm-executor/Cargo.toml b/xcm/xcm-executor/Cargo.toml index 2dfacf0c2291..15682fa3827f 100644 --- a/xcm/xcm-executor/Cargo.toml +++ b/xcm/xcm-executor/Cargo.toml @@ -9,12 +9,12 @@ version = "0.8.22" impl-trait-for-tuples = "0.2.0" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } log = { version = "0.4.14", default-features = false } [features] From d0603dceb30b6fb028b9a548dd60acd62d8bfc5a Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 25 Mar 2021 14:28:22 +0000 Subject: [PATCH 03/50] Increase the alloted compilation time --- node/core/pvf/src/prepare/worker.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 3f0d4d0fa5f3..129c292391bf 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -34,7 +34,7 @@ use std::{sync::Arc, time::Duration}; const NICENESS_BACKGROUND: i32 = 10; const NICENESS_FOREGROUND: i32 = 0; -const COMPILATION_TIMEOUT: Duration = Duration::from_secs(5); +const COMPILATION_TIMEOUT: Duration = Duration::from_secs(10); pub async fn spawn( program_path: &Path, From 3f1087af9d81966b0bca7097ab5b574aea3a4585 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 13:14:55 +0000 Subject: [PATCH 04/50] Add more comments --- node/core/pvf/src/artifacts.rs | 8 +++++++- node/core/pvf/src/execute/mod.rs | 6 ++++++ node/core/pvf/src/execute/worker.rs | 11 +++++++++++ node/core/pvf/src/executor_intf.rs | 5 ++++- node/core/pvf/src/host.rs | 19 +++++++++++++++++++ node/core/pvf/src/prepare/mod.rs | 8 ++++++++ node/core/pvf/src/prepare/pool.rs | 2 ++ node/core/pvf/src/prepare/queue.rs | 10 ++++++++++ node/core/pvf/src/prepare/worker.rs | 3 +++ node/core/pvf/src/worker_common.rs | 9 ++++++++- 10 files changed, 78 insertions(+), 3 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 0a6308dc5730..bd8c0618a764 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -117,6 +117,7 @@ pub enum ArtifactState { Preparing, } +/// A container of all known artifact ids. pub struct Artifacts { artifacts: HashMap, } @@ -197,10 +198,15 @@ impl Artifacts { } } +/// Goes over all files in the given directory, collecting all recognizable artifacts. All files +/// that do not look like artifacts are removed. +/// +/// All recognized artifacts will be created with the current datetime. async fn scan_for_known_artifacts( cache_path: &Path, ) -> io::Result> { let mut result = HashMap::new(); + let now = SystemTime::now(); let mut dir = async_std::fs::read_dir(cache_path).await?; while let Some(res) = dir.next().await { @@ -255,7 +261,7 @@ async fn scan_for_known_artifacts( result.insert( artifact_id, ArtifactState::Prepared { - last_time_needed: SystemTime::now(), + last_time_needed: now, }, ); } diff --git a/node/core/pvf/src/execute/mod.rs b/node/core/pvf/src/execute/mod.rs index 4b139a98e51c..abcf70ce31b7 100644 --- a/node/core/pvf/src/execute/mod.rs +++ b/node/core/pvf/src/execute/mod.rs @@ -14,6 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +//! Execution part of the pipeline. +//! +//! The validation host [runs the queue][`start`] communicating with it by sending [`ToQueue`] +//! messages. The queue will spawn workers in new processes. Those processes should jump to +//! [`worker_entrypoint`]. + mod queue; mod worker; diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index b65f0e19f734..9647a4de28bd 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -29,6 +29,9 @@ use futures_timer::Delay; use polkadot_parachain::primitives::ValidationResult; use parity_scale_codec::{Encode, Decode}; +/// Spawns a new worker with the given program path that acts as the worker and the spawn timeout. +/// +/// The program should be able to handle ` execute-worker ` invocation. pub async fn spawn( program_path: &Path, spawn_timeout_secs: u64, @@ -43,17 +46,25 @@ pub async fn spawn( .await } +/// Outcome of PVF execution. pub enum Outcome { + /// PVF execution completed successfully and the result is returned. The worker is ready for + /// another job. Ok { result_descriptor: ValidationResult, duration_ms: u64, idle_worker: IdleWorker, }, + /// The candidate validation failed. It may be for example because the preparation processe + /// produced an error or the wasm execution triggered a trap. InvalidCandidate { err: String, idle_worker: IdleWorker, }, + /// The execution time exceeded the hard limit. The worker is terminated. HardTimeout, + /// An I/O error happened during communication with the worker. This may mean that the worker + /// process already died. The token is not returned in any case. IoErr, } diff --git a/node/core/pvf/src/executor_intf.rs b/node/core/pvf/src/executor_intf.rs index 7be61e67eb0c..0054823c213b 100644 --- a/node/core/pvf/src/executor_intf.rs +++ b/node/core/pvf/src/executor_intf.rs @@ -41,7 +41,10 @@ const CONFIG: Config = Config { /// Runs the prevaldation on the given code. Returns a [`RuntimeBlob`] if it succeeds. pub fn prevalidate(code: &[u8]) -> Result { let blob = RuntimeBlob::new(code)?; - // TODO: prevalidation + // It's assumed this function will take care of any prevalidation logic + // that needs to be done. + // + // Do nothing for now. Ok(blob) } diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index 09747153238c..b9a24ade264f 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -14,6 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +//! Validation host - is the primary interface for this crate. It allows the clients to enqueue +//! jobs for PVF execution or preparation. +//! +//! The validation host is represented by a future/task that runs an event-loop and by a handle, +//! [`ValidationHost`], that allows communication with that event-loop. + use crate::{ Priority, Pvf, ValidationError, artifacts::{Artifacts, ArtifactState, ArtifactId}, @@ -143,6 +149,10 @@ impl Config { /// /// Returns a [handle][`ValidationHost`] to the started validation host and the future. The future /// must be polled in order for validation host to function. +/// +/// The future should not return normally but if it does then that indicates an unrecoverable error. +/// In that case all pending requests will be cancelled, dropping the result senders and new ones +/// will be rejected. pub fn start(config: Config) -> (ValidationHost, impl Future) { let (to_host_tx, to_host_rx) = mpsc::channel(10); @@ -206,12 +216,16 @@ pub fn start(config: Config) -> (ValidationHost, impl Future) { (validation_host, run) } +/// An execution request that should execute the PVF (known in the context) and send the results +/// to the given result sender. #[derive(Debug)] struct PendingExecutionRequest { params: Vec, result_tx: ResultSender, } +/// A mapping from an artifact ID which is in preparation state to the list of pending exeuction +/// requests that should be executed once the artifact's prepration is finished. #[derive(Default)] struct AwaitingPrepare(HashMap>); @@ -311,6 +325,11 @@ async fn run( break; }, () = cleanup_pulse.select_next_some() => { + // `select_next_some` because we don't expect this to fail, but if it does, we + // still don't fail. The tradeoff is that the compiled cache will start growing + // in size. That is, however, rather a slow process and hopefully the operator + // will notice it. + break_if_fatal!(handle_cleanup_pulse( &cache_path, &mut to_sweeper_tx, diff --git a/node/core/pvf/src/prepare/mod.rs b/node/core/pvf/src/prepare/mod.rs index c871f771bd2f..19cd2ddecefb 100644 --- a/node/core/pvf/src/prepare/mod.rs +++ b/node/core/pvf/src/prepare/mod.rs @@ -14,6 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +//! Preparation part of pipeline +//! +//! The validation host spins up two processes: the queue (by running [`start_queue`]) and the pool +//! (by running [`start_pool`]). +//! +//! The pool will spawn workers in new processes and those should execute pass control to +//! [`worker_entrypoint`]. + mod queue; mod worker; mod pool; diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs index b99dd2bf477b..6e4322d06df0 100644 --- a/node/core/pvf/src/prepare/pool.rs +++ b/node/core/pvf/src/prepare/pool.rs @@ -68,6 +68,7 @@ pub enum ToPool { }, } +/// A message sent from pool to its client. #[derive(Debug)] pub enum FromPool { /// The given worker was just spawned and is ready to be used. @@ -305,6 +306,7 @@ fn reply(from_pool: &mut mpsc::UnboundedSender, m: FromPool) -> Result from_pool.unbounded_send(m).map_err(|_| Fatal) } +/// Spins up the pool and returns the future that should be polled to make the pool functional. pub fn start( program_path: PathBuf, spawn_timeout_secs: u64, diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index b18d25238303..ccaddf9f160d 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +//! A queue that handles requests for PVF preparation. + use super::{ pool::{self, Worker}, }; @@ -23,18 +25,26 @@ use std::collections::{HashMap, VecDeque}; use async_std::path::PathBuf; use always_assert::{always, never}; +/// A request to pool. #[derive(Debug)] pub enum ToQueue { + /// This schedules preparation of the given PVF. + /// + /// Note that it is incorrect to enqueue the same PVF again without first receiving the + /// [`FromQueue::Prepared`] response. In case there is a need to bump the priority, use + /// [`ToQueue::Amend`]. Enqueue { priority: Priority, pvf: Pvf, }, + /// Amends the priority for the given [`ArtifactId`] if it is running. If it's not, then it's noop. Amend { priority: Priority, artifact_id: ArtifactId, }, } +/// A response from queue. #[derive(Debug, PartialEq, Eq)] pub enum FromQueue { Prepared(ArtifactId), diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 129c292391bf..16d466a2af26 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -36,6 +36,9 @@ const NICENESS_FOREGROUND: i32 = 0; const COMPILATION_TIMEOUT: Duration = Duration::from_secs(10); +/// Spawns a new worker with the given program path that acts as the worker and the spawn timeout. +/// +/// The program should be able to handle ` prepare-worker ` invocation. pub async fn spawn( program_path: &Path, spawn_timeout_secs: u64, diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index 78cbbca579e7..9dde0edf209d 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +//! Common logic for implementation of worker processes. + use crate::LOG_TARGET; use async_std::{ io, @@ -126,6 +128,10 @@ where ); } +/// A struct that represents an idle worker. +/// +/// This struct is supposed to be used as a token that is passed by move into a subroutine that +/// initiates a job. If the worker dies on the duty, then the token is not returned back. #[derive(Debug)] pub struct IdleWorker { /// The stream to which the child process is connected. @@ -151,7 +157,8 @@ pub enum SpawnErr { /// This is a representation of a potentially running worker. Drop it and the process will be killed. /// /// A worker's handle is also a future that resolves when it's detected that the worker's process -/// has been terminated. +/// has been terminated. Since the worker is running in another process it is obviously not necessarily +/// to poll this future to make the worker run, it's only for termination detection. /// /// This future relies on the fact that a child process's stdout fd is closed upon it's termination. #[pin_project] From 9413fac5fb7692e3731b2eb27481be214794c38f Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 13:18:50 +0000 Subject: [PATCH 05/50] Minor clean up --- node/core/pvf/src/execute/worker.rs | 2 +- node/core/pvf/src/executor_intf.rs | 10 ++++------ node/core/pvf/src/host.rs | 6 +++--- node/core/pvf/src/prepare/queue.rs | 2 +- node/core/pvf/src/pvf.rs | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 9647a4de28bd..0a6e59bceef3 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -120,7 +120,7 @@ async fn recv_request(stream: &mut UnixStream) -> io::Result<(PathBuf, Vec)> let artifact_path = bytes_to_path(&artifact_path).ok_or_else(|| { io::Error::new( io::ErrorKind::Other, - format!("execute pvf recv_request: non utf-8 artifact path"), + "execute pvf recv_request: non utf-8 artifact path".to_string(), ) })?; let params = framed_recv(stream).await?; diff --git a/node/core/pvf/src/executor_intf.rs b/node/core/pvf/src/executor_intf.rs index 0054823c213b..ab77fac3a76a 100644 --- a/node/core/pvf/src/executor_intf.rs +++ b/node/core/pvf/src/executor_intf.rs @@ -67,18 +67,16 @@ pub fn execute( let mut ext = ValidationExternalities(extensions); - let result = sc_executor::with_externalities_safe(&mut ext, || { + sc_executor::with_externalities_safe(&mut ext, || { let runtime = sc_executor_wasmtime::create_runtime( sc_executor_wasmtime::CodeSupplyMode::Artifact { compiled_artifact }, CONFIG, HostFunctions::host_functions(), )?; - Ok(runtime + runtime .new_instance()? - .call(InvokeMethod::Export("validate_block"), params)?) - })?; - - result + .call(InvokeMethod::Export("validate_block"), params) + })? } type HostFunctions = sp_io::SubstrateHostFunctions; diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index b9a24ade264f..f81e9a4d1736 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -73,7 +73,7 @@ impl ValidationHost { result_tx, }) .await - .map_err(|_| format!("the inner loop hung up")) + .map_err(|_| "the inner loop hung up".to_string()) } /// Sends a signal to the validation host requesting to prepare a list of the given PVFs. @@ -88,7 +88,7 @@ impl ValidationHost { .await .send(ToHost::HeadsUp { active_pvfs }) .await - .map_err(|_| format!("the inner loop hung up")) + .map_err(|_| "the inner loop hung up".to_string()) } } @@ -480,7 +480,7 @@ async fn handle_heads_up( ArtifactState::Prepared { last_time_needed, .. } => { - *last_time_needed = now.clone(); + *last_time_needed = now; } ArtifactState::Preparing => { // Already preparing. We don't need to send a priority amend either because diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index ccaddf9f160d..4b653aaeed2c 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -183,8 +183,8 @@ impl Queue { cache_path, spawn_inflight: 0, limits: Limits { - soft_capacity, hard_capacity, + soft_capacity, }, jobs: slotmap::SlotMap::with_key(), unscheduled: Unscheduled::default(), diff --git a/node/core/pvf/src/pvf.rs b/node/core/pvf/src/pvf.rs index 4f2a457479b8..d26db52b62da 100644 --- a/node/core/pvf/src/pvf.rs +++ b/node/core/pvf/src/pvf.rs @@ -51,6 +51,6 @@ impl Pvf { /// Returns the artifact ID that corresponds to this PVF. pub(crate) fn as_artifact_id(&self) -> ArtifactId { - ArtifactId::new(self.code_hash.clone()) + ArtifactId::new(self.code_hash) } } From d73db14cf7c599c6f5cf745c9d011f986d647d45 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 16:53:00 +0200 Subject: [PATCH 06/50] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- node/core/candidate-validation/Cargo.toml | 1 - node/core/pvf/Cargo.toml | 2 +- node/core/pvf/src/artifacts.rs | 2 +- node/core/pvf/src/execute/queue.rs | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/node/core/candidate-validation/Cargo.toml b/node/core/candidate-validation/Cargo.toml index 112cf4d6675d..0defd51bbf67 100644 --- a/node/core/candidate-validation/Cargo.toml +++ b/node/core/candidate-validation/Cargo.toml @@ -6,7 +6,6 @@ edition = "2018" [dependencies] async-trait = "0.1.42" - futures = "0.3.12" tracing = "0.1.25" diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index 487385f82a8f..f0ce8f52e92b 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -12,7 +12,7 @@ path = "bin/puppet_worker.rs" name = "it" [dependencies] -always-assert = { version = "0.1" } +always-assert = "0.1" async-std = { version = "1.8.0", features = ["attributes"] } async-process = "1.0.1" assert_matches = "1.4.0" diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index bd8c0618a764..453936efeeee 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -105,7 +105,7 @@ pub enum ArtifactState { /// The artifact is ready to be used by the executor. /// /// That means that the artifact should be accessible through the path obtained by the artifact - /// id under (unless, it was removed externally). + /// id (unless, it was removed externally). Prepared { /// The time when the artifact was the last time needed. /// diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 16f3ac9fa580..1d7a1dc61089 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -154,7 +154,7 @@ impl Queue { async fn purge_dead(workers: &mut Workers) { let mut to_remove = vec![]; for (worker, data) in workers.running.iter_mut() { - if let Poll::Ready(()) = futures::poll!(&mut data.handle) { + if futures::poll!(&mut data.handle).is_ready() { // a resolved future means that the worker has terminated. Weed it out. to_remove.push(worker); } From 3fec90851f4bc4fbfb0753d26c22c39b8d58c7f0 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 15:21:09 +0000 Subject: [PATCH 07/50] Fix pruning artifact removal --- node/core/pvf/src/artifacts.rs | 4 ++++ node/core/pvf/src/execute/queue.rs | 2 +- node/core/pvf/src/host.rs | 28 ++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 453936efeeee..7e537084bfa3 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -194,6 +194,10 @@ impl Artifacts { } } + for artifact in &to_remove { + self.artifacts.remove(artifact); + } + to_remove } } diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 1d7a1dc61089..edf07d601e49 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -22,7 +22,7 @@ use crate::{ LOG_TARGET, InvalidCandidate, ValidationError, }; use super::worker::Outcome; -use std::{collections::VecDeque, fmt, task::Poll}; +use std::{collections::VecDeque, fmt}; use futures::{ Future, FutureExt, channel::mpsc, diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index f81e9a4d1736..73d2034dde20 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -761,6 +761,24 @@ mod tests { ) .await } + + async fn poll_ensure_to_sweeper_is_empty(&mut self) { + use futures_timer::Delay; + + let to_sweeper_rx = &mut self.to_sweeper_rx; + run_until( + &mut self.run, + async { + futures::select! { + _ = Delay::new(Duration::from_millis(500)).fuse() => (), + msg = to_sweeper_rx.next().fuse() => { + panic!("the sweeper supposed to be empty, but received: {:?}", msg) + } + } + }.boxed(), + ) + .await + } } async fn run_until( @@ -813,8 +831,7 @@ mod tests { let host = test.host_handle(); host.heads_up(vec![Pvf::from_discriminator(1)]) - .now_or_never() - .unwrap() + .await .unwrap(); let to_sweeper_rx = &mut test.to_sweeper_rx; @@ -826,6 +843,13 @@ mod tests { .boxed(), ) .await; + + // Extend TTL for the first artifact and make sure we don't receive another file removal + // request. + host.heads_up(vec![Pvf::from_discriminator(1)]) + .await + .unwrap(); + test.poll_ensure_to_sweeper_is_empty().await; } #[async_std::test] From b9d0b6bad5fb6ca473d2bb4a0648451dbd23646d Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 15:33:43 +0000 Subject: [PATCH 08/50] Fix formatting and newlines --- node/core/pvf/src/artifacts.rs | 4 +--- node/core/pvf/src/error.rs | 2 +- node/core/pvf/src/execute/mod.rs | 2 +- node/core/pvf/src/execute/worker.rs | 8 ++++++-- node/core/pvf/src/prepare/mod.rs | 2 +- node/core/pvf/src/prepare/queue.rs | 25 +++++++++++++++---------- 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 7e537084bfa3..3461b3a2ea49 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -40,9 +40,7 @@ pub enum Artifact { /// or were killed. This state is reported by the validation host (not by the worker). DidntMakeIt, /// The PVF passed all the checks and is ready for execution. - Compiled { - compiled_artifact: Vec, - }, + Compiled { compiled_artifact: Vec }, } impl Artifact { diff --git a/node/core/pvf/src/error.rs b/node/core/pvf/src/error.rs index 17f76375cb60..320eeac31c2c 100644 --- a/node/core/pvf/src/error.rs +++ b/node/core/pvf/src/error.rs @@ -19,7 +19,7 @@ pub enum ValidationError { /// The error was raised because the candidate is invalid. InvalidCandidate(InvalidCandidate), - /// This error is raised due to inability to serve the request. + /// This error is raised due to inability to serve the request. InternalError(String), } diff --git a/node/core/pvf/src/execute/mod.rs b/node/core/pvf/src/execute/mod.rs index abcf70ce31b7..f1580f9d668e 100644 --- a/node/core/pvf/src/execute/mod.rs +++ b/node/core/pvf/src/execute/mod.rs @@ -24,4 +24,4 @@ mod queue; mod worker; pub use queue::{ToQueue, start}; -pub use worker::worker_entrypoint; \ No newline at end of file +pub use worker::worker_entrypoint; diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 0a6e59bceef3..b6f1d026dfae 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -14,10 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use crate::{artifacts::Artifact, executor_intf::TaskExecutor, worker_common::{ +use crate::{ + artifacts::Artifact, + executor_intf::TaskExecutor, + worker_common::{ IdleWorker, SpawnErr, WorkerHandle, bytes_to_path, framed_recv, framed_send, path_to_bytes, spawn_with_program_path, worker_event_loop, - }}; + }, +}; use std::time::{Duration, Instant}; use async_std::{ io, diff --git a/node/core/pvf/src/prepare/mod.rs b/node/core/pvf/src/prepare/mod.rs index 19cd2ddecefb..080dd069e29d 100644 --- a/node/core/pvf/src/prepare/mod.rs +++ b/node/core/pvf/src/prepare/mod.rs @@ -22,9 +22,9 @@ //! The pool will spawn workers in new processes and those should execute pass control to //! [`worker_entrypoint`]. +mod pool; mod queue; mod worker; -mod pool; pub use queue::{ToQueue, FromQueue, start as start_queue}; pub use pool::start as start_pool; diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index 4b653aaeed2c..188b94092c24 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -33,10 +33,7 @@ pub enum ToQueue { /// Note that it is incorrect to enqueue the same PVF again without first receiving the /// [`FromQueue::Prepared`] response. In case there is a need to bump the priority, use /// [`ToQueue::Amend`]. - Enqueue { - priority: Priority, - pvf: Pvf, - }, + Enqueue { priority: Priority, pvf: Pvf }, /// Amends the priority for the given [`ArtifactId`] if it is running. If it's not, then it's noop. Amend { priority: Priority, @@ -382,10 +379,14 @@ async fn handle_worker_rip(queue: &mut Queue, worker: Worker) -> Result<(), Fata if let Some(WorkerData { job: Some(job), .. }) = worker_data { // This is an edge case where the worker ripped after we send assignment but before it // was received by the pool. - let priority = queue.jobs.get(job).map(|data| data.priority).unwrap_or_else(|| { - never!(); - Priority::Normal - }); + let priority = queue + .jobs + .get(job) + .map(|data| data.priority) + .unwrap_or_else(|| { + never!(); + Priority::Normal + }); queue.unscheduled.readd(priority, job); } @@ -604,7 +605,8 @@ mod tests { panic!("to pool supposed to be empty") } } - }.boxed(), + } + .boxed(), ) .await } @@ -789,7 +791,10 @@ mod tests { // Since there is still work, the queue requested one extra worker to spawn to handle the // remaining enqueued work items. assert_eq!(test.poll_and_recv_to_pool().await, pool::ToPool::Spawn); - assert_eq!(test.poll_and_recv_from_queue().await, FromQueue::Prepared(pvf(1).as_artifact_id())); + assert_eq!( + test.poll_and_recv_from_queue().await, + FromQueue::Prepared(pvf(1).as_artifact_id()) + ); } #[async_std::test] From aa3ef8e7e5eebd6fd34f371150c8fae499d2f85b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 15:51:28 +0000 Subject: [PATCH 09/50] Fix the thread pool --- node/core/pvf/src/executor_intf.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/node/core/pvf/src/executor_intf.rs b/node/core/pvf/src/executor_intf.rs index ab77fac3a76a..4718569e69c3 100644 --- a/node/core/pvf/src/executor_intf.rs +++ b/node/core/pvf/src/executor_intf.rs @@ -220,7 +220,10 @@ pub(crate) struct TaskExecutor(futures::executor::ThreadPool); impl TaskExecutor { pub(crate) fn new() -> Result { - futures::executor::ThreadPool::new() + futures::executor::ThreadPoolBuilder::new() + .pool_size(4) + .name_prefix("pvf-task-executor") + .create() .map_err(|e| e.to_string()) .map(Self) } From f4c3a5eadaaf6457b316c8ff3fce66bd0f378479 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 17:52:39 +0200 Subject: [PATCH 10/50] Update node/core/pvf/src/executor_intf.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- node/core/pvf/src/executor_intf.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/node/core/pvf/src/executor_intf.rs b/node/core/pvf/src/executor_intf.rs index 4718569e69c3..5318589da074 100644 --- a/node/core/pvf/src/executor_intf.rs +++ b/node/core/pvf/src/executor_intf.rs @@ -81,8 +81,7 @@ pub fn execute( type HostFunctions = sp_io::SubstrateHostFunctions; -/// The validation externalities that will panic on any storage related access. They just provide -/// access to the parachain extension. +/// The validation externalities that will panic on any storage related access. struct ValidationExternalities(sp_externalities::Extensions); impl sp_externalities::Externalities for ValidationExternalities { From 83082ddf18cb128f4672b325e577ab7f2df6fd6d Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 15:54:22 +0000 Subject: [PATCH 11/50] Remove redundant test declaration --- node/core/pvf/Cargo.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index f0ce8f52e92b..2cffc9b0bf59 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -8,9 +8,6 @@ edition = "2018" name = "puppet_worker" path = "bin/puppet_worker.rs" -[[test]] -name = "it" - [dependencies] always-assert = "0.1" async-std = { version = "1.8.0", features = ["attributes"] } From f4f43835358504b6ba2f4aede4a206dbff62b4f3 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 16:02:52 +0000 Subject: [PATCH 12/50] Don't convert the path into an intermediate string --- node/core/pvf/src/execute/worker.rs | 3 +-- node/core/pvf/src/prepare/worker.rs | 3 +-- node/core/pvf/src/worker_common.rs | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index b6f1d026dfae..eb832a77b7c0 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -40,10 +40,9 @@ pub async fn spawn( program_path: &Path, spawn_timeout_secs: u64, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { - let program_path = program_path.to_string_lossy(); spawn_with_program_path( "execute", - &program_path, + program_path, &["execute-worker"], spawn_timeout_secs, ) diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 16d466a2af26..6890c9da6353 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -43,10 +43,9 @@ pub async fn spawn( program_path: &Path, spawn_timeout_secs: u64, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { - let program_path = program_path.to_string_lossy(); spawn_with_program_path( "prepare", - &program_path, + program_path, &["prepare-worker"], spawn_timeout_secs, ) diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index 9dde0edf209d..8a9203ca6bbd 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -40,19 +40,19 @@ use pin_project::pin_project; #[doc(hidden)] pub async fn spawn_with_program_path( debug_id: &'static str, - program_path: &str, + program_path: impl Into, extra_args: &'static [&'static str], spawn_timeout_secs: u64, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { + let program_path = program_path.into(); with_transient_socket_path(debug_id, |socket_path| { let socket_path = socket_path.to_owned(); - let program_path = PathBuf::from(program_path); async move { let listener = UnixListener::bind(&socket_path) .await .map_err(|_| SpawnErr::Bind)?; - let handle = WorkerHandle::spawn(&program_path, extra_args, socket_path) + let handle = WorkerHandle::spawn(program_path, extra_args, socket_path) .map_err(|_| SpawnErr::ProcessSpawn)?; futures::select! { From 54f6ac0b90e6eba23423d9d1d7ca206642668abe Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Mon, 29 Mar 2021 17:18:18 +0000 Subject: [PATCH 13/50] Try to workaround the test failure --- node/service/src/lib.rs | 10 +++++++++- node/test/service/src/lib.rs | 25 ++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 034dddc8ecd3..957454c73ef0 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -654,6 +654,7 @@ pub fn new_full( grandpa_pause: Option<(u32, u32)>, jaeger_agent: Option, telemetry_worker_handle: Option, + program_path: Option, ) -> Result>>, Error> where RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, @@ -813,7 +814,10 @@ pub fn new_full( .path() .ok_or(Error::DatabasePathRequired)? .join("pvf-artifacts"), - program_path: std::env::current_exe()?, + program_path: match program_path { + None => std::env::current_exe()?, + Some(p) => p, + }, }; let rpc_handlers = service::spawn_tasks(service::SpawnTasksParams { @@ -1230,6 +1234,7 @@ pub fn build_full( grandpa_pause, jaeger_agent, telemetry_worker_handle, + None, ).map(|full| full.with_client(Client::Rococo)) } else if config.chain_spec.is_kusama() { new_full::( @@ -1238,6 +1243,7 @@ pub fn build_full( grandpa_pause, jaeger_agent, telemetry_worker_handle, + None, ).map(|full| full.with_client(Client::Kusama)) } else if config.chain_spec.is_westend() { new_full::( @@ -1246,6 +1252,7 @@ pub fn build_full( grandpa_pause, jaeger_agent, telemetry_worker_handle, + None, ).map(|full| full.with_client(Client::Westend)) } else { new_full::( @@ -1254,6 +1261,7 @@ pub fn build_full( grandpa_pause, jaeger_agent, telemetry_worker_handle, + None, ).map(|full| full.with_client(Client::Polkadot)) } } diff --git a/node/test/service/src/lib.rs b/node/test/service/src/lib.rs index da2012477dec..080f5937161e 100644 --- a/node/test/service/src/lib.rs +++ b/node/test/service/src/lib.rs @@ -53,7 +53,7 @@ use sp_blockchain::HeaderBackend; use sp_keyring::Sr25519Keyring; use sp_runtime::{codec::Encode, generic, traits::IdentifyAccount, MultiSigner}; use sp_state_machine::BasicExternalities; -use std::sync::Arc; +use std::{sync::Arc, env, path::PathBuf}; use substrate_test_client::{BlockchainEventsExt, RpcHandlersExt, RpcTransactionOutput, RpcTransactionError}; native_executor_instance!( @@ -83,9 +83,32 @@ pub fn new_full( None, None, None, + Some(guess_puppet_worker_path()), ) } +fn guess_puppet_worker_path() -> PathBuf { + // This is wholly inspired by `cargo` + // + // https://github.com/rust-lang/cargo/blob/a4f0988ef87c1dedbeef3d39a85f3caf9241d6e7/crates/cargo-test-support/src/lib.rs#L429-L429 + let bin_path = env::var_os("CARGO_BIN_PATH") + .map(PathBuf::from) + .or_else(|| { + env::current_exe().ok().map(|mut path| { + path.pop(); + if path.ends_with("deps") { + path.pop(); + } + path + }) + }) + .unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set. Cannot continue running test")); + + let puppet_worker_path = bin_path.join(format!("puppet_worker{}", env::consts::EXE_SUFFIX)); + assert!(puppet_worker_path.exists()); + puppet_worker_path +} + /// A wrapper for the test client that implements `ClientHandle`. pub struct TestClient(pub Arc); From 393a1d73820f6b3a94b86011192a94615f860e73 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 14:56:26 +0000 Subject: [PATCH 14/50] Use the puppet_worker trick again --- node/test/service/src/lib.rs | 32 +++------------ node/test/service/tests/build-blocks.rs | 2 + node/test/service/tests/call-function.rs | 2 +- .../test-parachains/adder/collator/Cargo.toml | 14 ++++++- .../adder/collator/bin/puppet_worker.rs | 39 +++++++++++++++++++ .../adder/collator/tests/integration.rs | 13 ++++++- 6 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 parachain/test-parachains/adder/collator/bin/puppet_worker.rs diff --git a/node/test/service/src/lib.rs b/node/test/service/src/lib.rs index 080f5937161e..3e49bcda5400 100644 --- a/node/test/service/src/lib.rs +++ b/node/test/service/src/lib.rs @@ -53,7 +53,7 @@ use sp_blockchain::HeaderBackend; use sp_keyring::Sr25519Keyring; use sp_runtime::{codec::Encode, generic, traits::IdentifyAccount, MultiSigner}; use sp_state_machine::BasicExternalities; -use std::{sync::Arc, env, path::PathBuf}; +use std::{sync::Arc, path::PathBuf}; use substrate_test_client::{BlockchainEventsExt, RpcHandlersExt, RpcTransactionOutput, RpcTransactionError}; native_executor_instance!( @@ -73,6 +73,7 @@ pub use polkadot_service::FullBackend; pub fn new_full( config: Configuration, is_collator: IsCollator, + worker_program_path: Option, ) -> Result< NewFull>, Error, @@ -83,32 +84,10 @@ pub fn new_full( None, None, None, - Some(guess_puppet_worker_path()), + worker_program_path, ) } -fn guess_puppet_worker_path() -> PathBuf { - // This is wholly inspired by `cargo` - // - // https://github.com/rust-lang/cargo/blob/a4f0988ef87c1dedbeef3d39a85f3caf9241d6e7/crates/cargo-test-support/src/lib.rs#L429-L429 - let bin_path = env::var_os("CARGO_BIN_PATH") - .map(PathBuf::from) - .or_else(|| { - env::current_exe().ok().map(|mut path| { - path.pop(); - if path.ends_with("deps") { - path.pop(); - } - path - }) - }) - .unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set. Cannot continue running test")); - - let puppet_worker_path = bin_path.join(format!("puppet_worker{}", env::consts::EXE_SUFFIX)); - assert!(puppet_worker_path.exists()); - puppet_worker_path -} - /// A wrapper for the test client that implements `ClientHandle`. pub struct TestClient(pub Arc); @@ -236,11 +215,12 @@ pub fn run_validator_node( key: Sr25519Keyring, storage_update_func: impl Fn(), boot_nodes: Vec, + worker_program_path: Option, ) -> PolkadotTestNode { let config = node_config(storage_update_func, task_executor, key, boot_nodes, true); let multiaddr = config.network.listen_addresses[0].clone(); let NewFull { task_manager, client, network, rpc_handlers, overseer_handler, .. } = - new_full(config, IsCollator::No).expect("could not create Polkadot test service"); + new_full(config, IsCollator::No, worker_program_path).expect("could not create Polkadot test service"); let overseer_handler = overseer_handler.expect("test node must have an overseer handler"); let peer_id = network.local_peer_id().clone(); @@ -277,7 +257,7 @@ pub fn run_collator_node( let config = node_config(storage_update_func, task_executor, key, boot_nodes, false); let multiaddr = config.network.listen_addresses[0].clone(); let NewFull { task_manager, client, network, rpc_handlers, overseer_handler, .. } = - new_full(config, IsCollator::Yes(collator_id)).expect("could not create Polkadot test service"); + new_full(config, IsCollator::Yes(collator_id), None).expect("could not create Polkadot test service"); let overseer_handler = overseer_handler.expect("test node must have an overseer handler"); let peer_id = network.local_peer_id().clone(); diff --git a/node/test/service/tests/build-blocks.rs b/node/test/service/tests/build-blocks.rs index 9eb9f4ff328c..b563a6e46a7e 100644 --- a/node/test/service/tests/build-blocks.rs +++ b/node/test/service/tests/build-blocks.rs @@ -30,12 +30,14 @@ async fn ensure_test_service_build_blocks(task_executor: TaskExecutor) { Sr25519Keyring::Alice, || {}, Vec::new(), + None, ); let mut bob = run_validator_node( task_executor.clone(), Sr25519Keyring::Bob, || {}, vec![alice.addr.clone()], + None, ); { diff --git a/node/test/service/tests/call-function.rs b/node/test/service/tests/call-function.rs index c6802234c9c8..fa9a161923e6 100644 --- a/node/test/service/tests/call-function.rs +++ b/node/test/service/tests/call-function.rs @@ -20,7 +20,7 @@ use sp_keyring::Sr25519Keyring::{Alice, Bob}; #[substrate_test_utils::test] async fn call_function_actually_work(task_executor: TaskExecutor) { - let alice = run_validator_node(task_executor, Alice, || {}, Vec::new()); + let alice = run_validator_node(task_executor, Alice, || {}, Vec::new(), None); let function = polkadot_test_runtime::Call::Balances(pallet_balances::Call::transfer( Default::default(), diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index fcc9b68a9601..fcc991e499d9 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -9,6 +9,10 @@ edition = "2018" name = "adder-collator" path = "src/main.rs" +[[bin]] +name = "puppet_worker" +path = "bin/puppet_worker.rs" + [dependencies] parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } futures = "0.3.12" @@ -28,16 +32,22 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instr sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +# This one is tricky. Even though it is not used directly by the collator, we still need it for the +# `puppet_worker` binary, which is required for the integration test. However, this shouldn't be +# a big problem since it is used transitively, at least when built with `real-overseer`. +polkadot-node-core-pvf = { path = "../../../../node/core/pvf", optional = true } + [dev-dependencies] polkadot-parachain = { path = "../../.." } polkadot-test-service = { path = "../../../../node/test/service" } -polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } + tokio = { version = "0.2", features = ["macros"] } [features] -real-overseer = [ "polkadot-service/real-overseer" ] +real-overseer = [ "polkadot-service/real-overseer", "polkadot-node-core-pvf" ] diff --git a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs new file mode 100644 index 000000000000..2c35dad88ba6 --- /dev/null +++ b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs @@ -0,0 +1,39 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +#![cfg(feature = "real-overseer")] + +//! A simple binary that allows mocking the behavior of the real worker. + +fn main() { + let args = std::env::args().collect::>(); + if args.len() < 2 { + panic!("wrong number of arguments"); + } + + let subcommand = &args[1]; + match subcommand.as_ref() { + "prepare-worker" => { + let socket_path = &args[2]; + polkadot_node_core_pvf::prepare_worker_entrypoint(socket_path); + } + "execute-worker" => { + let socket_path = &args[2]; + polkadot_node_core_pvf::execute_worker_entrypoint(socket_path); + } + other => panic!("unknown subcommand: {}", other), + } +} diff --git a/parachain/test-parachains/adder/collator/tests/integration.rs b/parachain/test-parachains/adder/collator/tests/integration.rs index fbc20867525e..25d55c665bd9 100644 --- a/parachain/test-parachains/adder/collator/tests/integration.rs +++ b/parachain/test-parachains/adder/collator/tests/integration.rs @@ -17,9 +17,12 @@ //! Integration test that ensures that we can build and include parachain //! blocks of the adder parachain. +#![cfg(feature = "real-overseer")] + +const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_puppet_worker"); + // If this test is failing, make sure to run all tests with the `real-overseer` feature being enabled. #[substrate_test_utils::test] -#[cfg(feature = "real-overseer")] async fn collating_using_adder_collator(task_executor: sc_service::TaskExecutor) { use sp_keyring::AccountKeyring::*; use futures::join; @@ -32,7 +35,12 @@ async fn collating_using_adder_collator(task_executor: sc_service::TaskExecutor) let para_id = ParaId::from(100); // start alice - let alice = polkadot_test_service::run_validator_node(task_executor.clone(), Alice, || {}, vec![]); + let alice = polkadot_test_service::run_validator_node( + task_executor.clone(), + Alice, || {}, + vec![], + Some(PUPPET_EXE.into()), + ); // start bob let bob = polkadot_test_service::run_validator_node( @@ -40,6 +48,7 @@ async fn collating_using_adder_collator(task_executor: sc_service::TaskExecutor) Bob, || {}, vec![alice.addr.clone()], + Some(PUPPET_EXE.into()), ); let collator = test_parachain_adder_collator::Collator::new(); From 14828789d8d8892c622b6195bbe790589cfafd6b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 15:07:02 +0000 Subject: [PATCH 15/50] Fix a blip --- node/core/pvf/src/worker_common.rs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index 8a9203ca6bbd..04895af98c7e 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -30,7 +30,6 @@ use rand::Rng; use std::{ fmt, mem, pin::Pin, - str::FromStr, task::{Context, Poll}, time::Duration, }; @@ -253,14 +252,7 @@ pub fn path_to_bytes(path: &Path) -> &[u8] { /// a proper utf-8 string. pub fn bytes_to_path(bytes: &[u8]) -> Option { let str_buf = std::str::from_utf8(bytes).ok()?; - - match PathBuf::from_str(&str_buf) { - Ok(path) => Some(path), - Err(never) => { - // std::convert::Infallible doesn't allow for irrefutable patterns for some reason. - match never {} - } - } + Some(PathBuf::from(str_buf)) } pub async fn framed_send(w: &mut (impl AsyncWrite + Unpin), buf: &[u8]) -> io::Result<()> { From 01e572c57cf58dd090582eeb0276c17073cda363 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 15:08:20 +0000 Subject: [PATCH 16/50] Move `ensure_wasmtime_version` under the tests mod --- node/core/pvf/src/artifacts.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 3461b3a2ea49..0bc0a236e11e 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -86,19 +86,6 @@ impl ArtifactId { } } -#[test] -fn ensure_wasmtime_version() { - assert_eq!( - wasmtime_jit::VERSION, - "0.22.0", - "wasmtime version is updated. Check the prefix.", - ); - // If the version bump is significant, change `ArtifactId::PREFIX`. - // - // If in doubt bump it. This will lead to removal of the existing artifacts in the on-disk cache - // and recompilation. -} - pub enum ArtifactState { /// The artifact is ready to be used by the executor. /// @@ -276,6 +263,19 @@ async fn scan_for_known_artifacts( mod tests { use super::ArtifactId; + #[test] + fn ensure_wasmtime_version() { + assert_eq!( + wasmtime_jit::VERSION, + "0.22.0", + "wasmtime version is updated. Check the prefix.", + ); + // If the version bump is significant, change `ArtifactId::PREFIX`. + // + // If in doubt bump it. This will lead to removal of the existing artifacts in the on-disk cache + // and recompilation. + } + #[test] fn from_file_name() { assert!(ArtifactId::from_file_name("").is_none()); From fd16b2bb8479038e937a88aa707b82dd47ec9a14 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 15:16:39 +0000 Subject: [PATCH 17/50] Add a macro for puppet_workers --- node/core/pvf/bin/puppet_worker.rs | 27 +---------------- node/core/pvf/src/testing.rs | 30 +++++++++++++++++++ .../adder/collator/bin/puppet_worker.rs | 22 +------------- .../adder/collator/tests/integration.rs | 4 +-- 4 files changed, 34 insertions(+), 49 deletions(-) diff --git a/node/core/pvf/bin/puppet_worker.rs b/node/core/pvf/bin/puppet_worker.rs index 3c335d191ad2..4b026e96a809 100644 --- a/node/core/pvf/bin/puppet_worker.rs +++ b/node/core/pvf/bin/puppet_worker.rs @@ -14,29 +14,4 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -//! A simple binary that allows mocking the behavior of the real worker. - -use std::time::Duration; - -fn main() { - let args = std::env::args().collect::>(); - if args.len() < 2 { - panic!("wrong number of arguments"); - } - - let subcommand = &args[1]; - match subcommand.as_ref() { - "sleep" => { - std::thread::sleep(Duration::from_secs(5)); - } - "prepare-worker" => { - let socket_path = &args[2]; - polkadot_node_core_pvf::prepare_worker_entrypoint(socket_path); - } - "execute-worker" => { - let socket_path = &args[2]; - polkadot_node_core_pvf::execute_worker_entrypoint(socket_path); - } - other => panic!("unknown subcommand: {}", other), - } -} +polkadot_node_core_pvf::decl_puppet_worker_main!(); diff --git a/node/core/pvf/src/testing.rs b/node/core/pvf/src/testing.rs index 2048e9df74fd..2288c259ba8c 100644 --- a/node/core/pvf/src/testing.rs +++ b/node/core/pvf/src/testing.rs @@ -38,3 +38,33 @@ pub fn validate_candidate( Ok(result) } + +/// Use this macro to declare a `fn main() {}` that will check the arguments and dispatch them to +/// the appropriate worker, making the executable that can be used for spawning workers. +#[macro_export] +macro_rules! decl_puppet_worker_main { + () => { + fn main() { + let args = std::env::args().collect::>(); + if args.len() < 2 { + panic!("wrong number of arguments"); + } + + let subcommand = &args[1]; + match subcommand.as_ref() { + "sleep" => { + std::thread::sleep(std::time::Duration::from_secs(5)); + } + "prepare-worker" => { + let socket_path = &args[2]; + $crate::prepare_worker_entrypoint(socket_path); + } + "execute-worker" => { + let socket_path = &args[2]; + $crate::execute_worker_entrypoint(socket_path); + } + other => panic!("unknown subcommand: {}", other), + } + } + }; +} \ No newline at end of file diff --git a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs index 2c35dad88ba6..45d8ef2bf53f 100644 --- a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs +++ b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs @@ -16,24 +16,4 @@ #![cfg(feature = "real-overseer")] -//! A simple binary that allows mocking the behavior of the real worker. - -fn main() { - let args = std::env::args().collect::>(); - if args.len() < 2 { - panic!("wrong number of arguments"); - } - - let subcommand = &args[1]; - match subcommand.as_ref() { - "prepare-worker" => { - let socket_path = &args[2]; - polkadot_node_core_pvf::prepare_worker_entrypoint(socket_path); - } - "execute-worker" => { - let socket_path = &args[2]; - polkadot_node_core_pvf::execute_worker_entrypoint(socket_path); - } - other => panic!("unknown subcommand: {}", other), - } -} +polkadot_node_core_pvf::decl_puppet_worker_main!(); diff --git a/parachain/test-parachains/adder/collator/tests/integration.rs b/parachain/test-parachains/adder/collator/tests/integration.rs index 25d55c665bd9..a0dbaff16782 100644 --- a/parachain/test-parachains/adder/collator/tests/integration.rs +++ b/parachain/test-parachains/adder/collator/tests/integration.rs @@ -17,12 +17,12 @@ //! Integration test that ensures that we can build and include parachain //! blocks of the adder parachain. -#![cfg(feature = "real-overseer")] - +#[cfg(feature = "real-overseer")] const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_puppet_worker"); // If this test is failing, make sure to run all tests with the `real-overseer` feature being enabled. #[substrate_test_utils::test] +#[cfg(feature = "real-overseer")] async fn collating_using_adder_collator(task_executor: sc_service::TaskExecutor) { use sp_keyring::AccountKeyring::*; use futures::join; From 0df8f39bb29d170e3050f4606e40363782a83f6a Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 15:37:54 +0000 Subject: [PATCH 18/50] fix build for not real-overseer --- .../test-parachains/adder/collator/bin/puppet_worker.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs index 45d8ef2bf53f..b6a23d585262 100644 --- a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs +++ b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -#![cfg(feature = "real-overseer")] - +#[cfg(feature = "real-overseer")] polkadot_node_core_pvf::decl_puppet_worker_main!(); + +#[cfg(not(feature = "real-overseer"))] +fn main() {} From bb7b05a02f5373da3783b2fac59bc4d9299be55f Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 16:52:54 +0000 Subject: [PATCH 19/50] Rename the puppet worker for adder collator --- parachain/test-parachains/adder/collator/Cargo.toml | 2 +- parachain/test-parachains/adder/collator/tests/integration.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index fcc991e499d9..327f2312ba45 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -10,7 +10,7 @@ name = "adder-collator" path = "src/main.rs" [[bin]] -name = "puppet_worker" +name = "adder-collator-puppet-worker" path = "bin/puppet_worker.rs" [dependencies] diff --git a/parachain/test-parachains/adder/collator/tests/integration.rs b/parachain/test-parachains/adder/collator/tests/integration.rs index a0dbaff16782..3c8885170f29 100644 --- a/parachain/test-parachains/adder/collator/tests/integration.rs +++ b/parachain/test-parachains/adder/collator/tests/integration.rs @@ -18,7 +18,7 @@ //! blocks of the adder parachain. #[cfg(feature = "real-overseer")] -const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_puppet_worker"); +const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_adder_collator_puppet_worker"); // If this test is failing, make sure to run all tests with the `real-overseer` feature being enabled. #[substrate_test_utils::test] From 4270358ae15fdb7448c2289465583393e299ee37 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 30 Mar 2021 17:47:33 +0000 Subject: [PATCH 20/50] play it safe with the name of adder puppet worker --- parachain/test-parachains/adder/collator/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index 327f2312ba45..2792b46227c7 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -10,7 +10,7 @@ name = "adder-collator" path = "src/main.rs" [[bin]] -name = "adder-collator-puppet-worker" +name = "adder_collator_puppet_worker" path = "bin/puppet_worker.rs" [dependencies] From 91545347b2fbf292059ae461183738b9ac1c164e Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 11:25:22 +0000 Subject: [PATCH 21/50] Typo: triggered --- node/core/pvf/src/error.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/error.rs b/node/core/pvf/src/error.rs index 320eeac31c2c..71377cdf3dc2 100644 --- a/node/core/pvf/src/error.rs +++ b/node/core/pvf/src/error.rs @@ -38,7 +38,7 @@ pub enum InvalidCandidate { /// the host machine ran out of free memory and the OOM killer started killing the processes, /// and in order to save the parent it will "sacrifice child" first. /// - /// (b) The candidate trigerred a code path that has lead to the process death. For example, + /// (b) The candidate triggered a code path that has lead to the process death. For example, /// the PVF found a way to consume unbounded amount of resources and then it either exceeded /// an rlimit (if set) or, again, invited OOM killer. Another possibility is a bug in /// wasmtime allowed the PVF to gain control over the execution worker. From 1bd24e23422874c2fe959fc42b2dd4d704ceefc0 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 11:50:11 +0000 Subject: [PATCH 22/50] Add more comments --- node/core/pvf/src/artifacts.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 0bc0a236e11e..c7165537dd1f 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -55,8 +55,8 @@ impl Artifact { } } -/// NOTE if we get to multiple engine implementations the artifact ID should include the engine -/// type as well. +/// Identifier of an artifact. Right now it only encodes a code hash of the PVF. But if we get to +/// multiple engine implementations the artifact ID should include the engine type as well. #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct ArtifactId { code_hash: Hash, @@ -65,6 +65,7 @@ pub struct ArtifactId { impl ArtifactId { const PREFIX: &'static str = "wasmtime_1_"; + /// Creates a new artifact ID with the given hash. pub fn new(code_hash: Hash) -> Self { Self { code_hash } } @@ -102,7 +103,7 @@ pub enum ArtifactState { Preparing, } -/// A container of all known artifact ids. +/// A container of all known artifact ids and their states. pub struct Artifacts { artifacts: HashMap, } From bd4d06cc7bda9fe568480220baf459ea1cb68b2a Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 15:07:44 +0000 Subject: [PATCH 23/50] Do not kill exec worker on every error --- node/core/pvf/src/execute/queue.rs | 4 +++ node/core/pvf/src/execute/worker.rs | 46 ++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index edf07d601e49..71920f4170ec 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -227,6 +227,10 @@ fn handle_job_finish(queue: &mut Queue, worker: Worker, outcome: Outcome, result InvalidCandidate::WorkerReportedError(err), )), ), + Outcome::InternalError { err, idle_worker } => ( + Some(idle_worker), + Err(ValidationError::InternalError(err)), + ), Outcome::HardTimeout => ( None, Err(ValidationError::InvalidCandidate( diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index eb832a77b7c0..032b9c52e23b 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -58,12 +58,18 @@ pub enum Outcome { duration_ms: u64, idle_worker: IdleWorker, }, - /// The candidate validation failed. It may be for example because the preparation processe + /// The candidate validation failed. It may be for example because the preparation process /// produced an error or the wasm execution triggered a trap. InvalidCandidate { err: String, idle_worker: IdleWorker, }, + /// An internal error happened during the validation. Such an error is most likely related to + /// some transient glitch. + InternalError { + err: String, + idle_worker: IdleWorker, + }, /// The execution time exceeded the hard limit. The worker is terminated. HardTimeout, /// An I/O error happened during communication with the worker. This may mean that the worker @@ -105,6 +111,10 @@ pub async fn start_work( err, idle_worker: IdleWorker { stream, pid }, }, + Response::InternalError(err) => Outcome::InternalError { + err, + idle_worker: IdleWorker { stream, pid }, + }, } } @@ -153,6 +163,7 @@ enum Response { duration_ms: u64, }, InvalidCandidate(String), + InternalError(String), } impl Response { @@ -177,21 +188,34 @@ pub fn worker_entrypoint(socket_path: &str) { })?; loop { let (artifact_path, params) = recv_request(&mut stream).await?; - let artifact_bytes = async_std::fs::read(&artifact_path).await?; - let artifact = Artifact::deserialize(&artifact_bytes).map_err(|e| { - io::Error::new( - io::ErrorKind::Other, - format!("artifact deserialization error: {}", e), - ) - })?; - let response = validate_using_artifact(&artifact, ¶ms, &executor); + let response = validate_using_artifact(&artifact_path, ¶ms, &executor).await; send_response(&mut stream, response).await?; } }); } -fn validate_using_artifact(artifact: &Artifact, params: &[u8], spawner: &TaskExecutor) -> Response { - let compiled_artifact = match artifact { +async fn validate_using_artifact( + artifact_path: &Path, + params: &[u8], + spawner: &TaskExecutor, +) -> Response { + let artifact_bytes = match async_std::fs::read(artifact_path).await { + Err(e) => { + return Response::InternalError(format!( + "failed to read the artifact at {}: {:?}", + artifact_path.display(), + e, + )) + } + Ok(b) => b, + }; + + let artifact = match Artifact::deserialize(&artifact_bytes) { + Err(e) => return Response::InternalError(format!("artifact deserialization: {:?}", e)), + Ok(a) => a, + }; + + let compiled_artifact = match &artifact { Artifact::PrevalidationErr(msg) => { return Response::format_invalid("prevalidation", msg); } From cd2916aaa4754f749375b136472dc5b2706d4ff3 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 16:04:59 +0000 Subject: [PATCH 24/50] Plumb Duration for timeouts --- node/core/pvf/src/execute/queue.rs | 19 +++++++++---------- node/core/pvf/src/execute/worker.rs | 4 ++-- node/core/pvf/src/host.rs | 8 ++++---- node/core/pvf/src/prepare/pool.rs | 21 ++++++++++----------- node/core/pvf/src/prepare/worker.rs | 4 ++-- node/core/pvf/src/worker_common.rs | 4 ++-- node/core/pvf/tests/it/worker_common.rs | 20 ++++++++++++++++---- 7 files changed, 45 insertions(+), 35 deletions(-) diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 71920f4170ec..8a8132c9f672 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -22,7 +22,7 @@ use crate::{ LOG_TARGET, InvalidCandidate, ValidationError, }; use super::worker::Outcome; -use std::{collections::VecDeque, fmt}; +use std::{collections::VecDeque, fmt, time::Duration}; use futures::{ Future, FutureExt, channel::mpsc, @@ -104,7 +104,7 @@ struct Queue { to_queue_rx: mpsc::Receiver, program_path: PathBuf, - spawn_timeout_secs: u64, + spawn_timeout: Duration, /// The queue of jobs that are waiting for a worker to pick up. queue: VecDeque, @@ -116,12 +116,12 @@ impl Queue { fn new( program_path: PathBuf, worker_capacity: usize, - spawn_timeout_secs: u64, + spawn_timeout: Duration, to_queue_rx: mpsc::Receiver, ) -> Self { Self { program_path, - spawn_timeout_secs, + spawn_timeout, to_queue_rx, queue: VecDeque::new(), mux: Mux::new(), @@ -279,16 +279,15 @@ fn handle_job_finish(queue: &mut Queue, worker: Worker, outcome: Outcome, result fn spawn_extra_worker(queue: &mut Queue) { queue .mux - .push(spawn_worker_task(queue.program_path.clone(), queue.spawn_timeout_secs).boxed()); + .push(spawn_worker_task(queue.program_path.clone(), queue.spawn_timeout).boxed()); queue.workers.spawn_inflight += 1; } -async fn spawn_worker_task(program_path: PathBuf, spawn_timeout_secs: u64) -> QueueEvent { +async fn spawn_worker_task(program_path: PathBuf, spawn_timeout: Duration) -> QueueEvent { use futures_timer::Delay; - use std::time::Duration; loop { - match super::worker::spawn(&program_path, spawn_timeout_secs).await { + match super::worker::spawn(&program_path, spawn_timeout).await { Ok((idle, handle)) => break QueueEvent::Spawn((idle, handle)), Err(err) => { tracing::warn!( @@ -319,13 +318,13 @@ fn assign(queue: &mut Queue, worker: Worker, job: ExecuteJob) { pub fn start( program_path: PathBuf, worker_capacity: usize, - spawn_timeout_secs: u64, + spawn_timeout: Duration, ) -> (mpsc::Sender, impl Future) { let (to_queue_tx, to_queue_rx) = mpsc::channel(20); let run = Queue::new( program_path, worker_capacity, - spawn_timeout_secs, + spawn_timeout, to_queue_rx, ) .run(); diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 032b9c52e23b..0095266a29b9 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -38,13 +38,13 @@ use parity_scale_codec::{Encode, Decode}; /// The program should be able to handle ` execute-worker ` invocation. pub async fn spawn( program_path: &Path, - spawn_timeout_secs: u64, + spawn_timeout: Duration, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { spawn_with_program_path( "execute", program_path, &["execute-worker"], - spawn_timeout_secs, + spawn_timeout, ) .await } diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index 73d2034dde20..e1f0597003c5 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -111,7 +111,7 @@ pub struct Config { /// The path to the program that can be used to spawn the prepare workers. pub prepare_worker_program_path: PathBuf, /// The time alloted for a prepare worker to spawn and report to the host. - pub prepare_worker_spawn_timeout: u64, + pub prepare_worker_spawn_timeout: Duration, /// The maximum number of workers that can be spawned in the prepare pool for tasks with the /// priority below crticial. pub prepare_workers_soft_max_num: usize, @@ -120,7 +120,7 @@ pub struct Config { /// The path to the program that can be used to spawn the execute workers. pub execute_worker_program_path: PathBuf, /// The time alloted for an execute worker to spawn and report to the host. - pub execute_worker_spawn_timeout: u64, + pub execute_worker_spawn_timeout: Duration, /// The maximum number of execute workers that can run at the same time. pub execute_workers_max_num: usize, } @@ -135,11 +135,11 @@ impl Config { Self { cache_path, prepare_worker_program_path: program_path.clone(), - prepare_worker_spawn_timeout: 3, + prepare_worker_spawn_timeout: Duration::from_secs(3), prepare_workers_soft_max_num: 8, prepare_workers_hard_max_num: 5, execute_worker_program_path: program_path, - execute_worker_spawn_timeout: 3, + execute_worker_spawn_timeout: Duration::from_secs(3), execute_workers_max_num: 5, } } diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs index 6e4322d06df0..cffe48aa8c69 100644 --- a/node/core/pvf/src/prepare/pool.rs +++ b/node/core/pvf/src/prepare/pool.rs @@ -21,7 +21,7 @@ use crate::{ use super::{ worker::{self, Outcome}, }; -use std::{fmt, sync::Arc, task::Poll}; +use std::{fmt, sync::Arc, task::Poll, time::Duration}; use async_std::path::{Path, PathBuf}; use futures::{ Future, FutureExt, StreamExt, channel::mpsc, future::BoxFuture, stream::FuturesUnordered, @@ -102,7 +102,7 @@ type Mux = FuturesUnordered>; struct Pool { program_path: PathBuf, - spawn_timeout_secs: u64, + spawn_timeout: Duration, to_pool: mpsc::Receiver, from_pool: mpsc::UnboundedSender, spawned: HopSlotMap, @@ -115,7 +115,7 @@ struct Fatal; async fn run( Pool { program_path, - spawn_timeout_secs, + spawn_timeout, to_pool, mut from_pool, mut spawned, @@ -139,7 +139,7 @@ async fn run( let to_pool = break_if_fatal!(to_pool.ok_or(Fatal)); handle_to_pool( &program_path, - spawn_timeout_secs, + spawn_timeout, &mut spawned, &mut mux, to_pool, @@ -179,14 +179,14 @@ async fn purge_dead( fn handle_to_pool( program_path: &Path, - spawn_timeout_secs: u64, + spawn_timeout: Duration, spawned: &mut HopSlotMap, mux: &mut Mux, to_pool: ToPool, ) { match to_pool { ToPool::Spawn => { - mux.push(spawn_worker_task(program_path.to_owned(), spawn_timeout_secs).boxed()); + mux.push(spawn_worker_task(program_path.to_owned(), spawn_timeout).boxed()); } ToPool::StartWork { worker, @@ -221,12 +221,11 @@ fn handle_to_pool( } } -async fn spawn_worker_task(program_path: PathBuf, spawn_timeout_secs: u64) -> PoolEvent { +async fn spawn_worker_task(program_path: PathBuf, spawn_timeout: Duration) -> PoolEvent { use futures_timer::Delay; - use std::time::Duration; loop { - match worker::spawn(&program_path, spawn_timeout_secs).await { + match worker::spawn(&program_path, spawn_timeout).await { Ok((idle, handle)) => break PoolEvent::Spawn(idle, handle), Err(err) => { tracing::warn!( @@ -309,7 +308,7 @@ fn reply(from_pool: &mut mpsc::UnboundedSender, m: FromPool) -> Result /// Spins up the pool and returns the future that should be polled to make the pool functional. pub fn start( program_path: PathBuf, - spawn_timeout_secs: u64, + spawn_timeout: Duration, ) -> ( mpsc::Sender, mpsc::UnboundedReceiver, @@ -320,7 +319,7 @@ pub fn start( let run = run(Pool { program_path, - spawn_timeout_secs, + spawn_timeout, to_pool: to_pool_rx, from_pool: from_pool_tx, spawned: HopSlotMap::with_capacity_and_key(20), diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 6890c9da6353..40a5a5cc3107 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -41,13 +41,13 @@ const COMPILATION_TIMEOUT: Duration = Duration::from_secs(10); /// The program should be able to handle ` prepare-worker ` invocation. pub async fn spawn( program_path: &Path, - spawn_timeout_secs: u64, + spawn_timeout: Duration, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { spawn_with_program_path( "prepare", program_path, &["prepare-worker"], - spawn_timeout_secs, + spawn_timeout, ) .await } diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index 04895af98c7e..22a999e4646b 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -41,7 +41,7 @@ pub async fn spawn_with_program_path( debug_id: &'static str, program_path: impl Into, extra_args: &'static [&'static str], - spawn_timeout_secs: u64, + spawn_timeout: Duration, ) -> Result<(IdleWorker, WorkerHandle), SpawnErr> { let program_path = program_path.into(); with_transient_socket_path(debug_id, |socket_path| { @@ -59,7 +59,7 @@ pub async fn spawn_with_program_path( let (stream, _) = accept_result.map_err(|_| SpawnErr::Accept)?; Ok((IdleWorker { stream, pid: handle.id() }, handle)) } - _ = Delay::new(Duration::from_secs(spawn_timeout_secs)).fuse() => { + _ = Delay::new(spawn_timeout).fuse() => { Err(SpawnErr::AcceptTimeout) } } diff --git a/node/core/pvf/tests/it/worker_common.rs b/node/core/pvf/tests/it/worker_common.rs index ee575a6bed19..ec77bd710441 100644 --- a/node/core/pvf/tests/it/worker_common.rs +++ b/node/core/pvf/tests/it/worker_common.rs @@ -16,16 +16,28 @@ use crate::PUPPET_EXE; use polkadot_node_core_pvf::testing::worker_common::{spawn_with_program_path, SpawnErr}; +use std::time::Duration; #[async_std::test] async fn spawn_timeout() { - let result = spawn_with_program_path("integration-test", PUPPET_EXE, &["sleep"], 2).await; + let result = spawn_with_program_path( + "integration-test", + PUPPET_EXE, + &["sleep"], + Duration::from_secs(2), + ) + .await; assert!(matches!(result, Err(SpawnErr::AcceptTimeout))); } #[async_std::test] async fn should_connect() { - let _ = spawn_with_program_path("integration-test", PUPPET_EXE, &["prepare-worker"], 2) - .await - .unwrap(); + let _ = spawn_with_program_path( + "integration-test", + PUPPET_EXE, + &["prepare-worker"], + Duration::from_secs(2), + ) + .await + .unwrap(); } From 031e2723c612a6fba54daf959655d2630766b17b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 16:05:31 +0000 Subject: [PATCH 25/50] typo: critical --- node/core/pvf/src/host.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index e1f0597003c5..d75022145106 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -113,7 +113,7 @@ pub struct Config { /// The time alloted for a prepare worker to spawn and report to the host. pub prepare_worker_spawn_timeout: Duration, /// The maximum number of workers that can be spawned in the prepare pool for tasks with the - /// priority below crticial. + /// priority below critical. pub prepare_workers_soft_max_num: usize, /// The absolute number of workers that can be spawned in the prepare pool. pub prepare_workers_hard_max_num: usize, From d895900b722b77379a7fc9c17b43f53f51642349 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 17:45:43 +0000 Subject: [PATCH 26/50] Add proofs --- node/core/pvf/src/artifacts.rs | 17 +++++++++++- node/core/pvf/src/execute/queue.rs | 3 ++- node/core/pvf/src/host.rs | 18 ++++++++++--- node/core/pvf/src/prepare/pool.rs | 12 ++++++--- node/core/pvf/src/prepare/queue.rs | 42 +++++++++++++++++++++++++++--- 5 files changed, 80 insertions(+), 12 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index c7165537dd1f..e76b5e002299 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -144,7 +144,11 @@ impl Artifacts { } /// Inform the table about the artifact with the given ID. The state will be set to "preparing". + /// + /// This function must be used only for brand new artifacts and should never be used for + /// replacing existing ones. pub fn insert_preparing(&mut self, artifact_id: ArtifactId) { + // See the precondition. always!(self .artifacts .insert(artifact_id, ArtifactState::Preparing) @@ -152,8 +156,12 @@ impl Artifacts { } /// Insert an artifact with the given ID as "prepared". + /// + /// This function must be used only for brand new artifacts and should never be used for + /// replacing existing ones. #[cfg(test)] pub fn insert_prepared(&mut self, artifact_id: ArtifactId, last_time_needed: SystemTime) { + // See the precondition. always!(self .artifacts .insert(artifact_id, ArtifactState::Prepared { last_time_needed }) @@ -247,13 +255,20 @@ async fn scan_for_known_artifacts( }; // A sanity check so that we really can access the artifact through the artifact id. - if always!(artifact_id.path(cache_path).is_file().await) { + if artifact_id.path(cache_path).is_file().await { result.insert( artifact_id, ArtifactState::Prepared { last_time_needed: now, }, ); + } else { + tracing::warn!( + target: LOG_TARGET, + "{} is not accessible by artifact_id {:?}", + cache_path.display(), + artifact_id, + ); } } diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 8a8132c9f672..422295c0687d 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -265,7 +265,8 @@ fn handle_job_finish(queue: &mut Queue, worker: Worker, outcome: Outcome, result } } } else { - always!(queue.workers.running.remove(worker).is_some()); + // Note it's possible that the worker was purged already by `purge_dead` + queue.workers.running.remove(worker); if !queue.queue.is_empty() { // The worker has died and we still have work we have to do. Request an extra worker. diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index d75022145106..c49631406c31 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -309,19 +309,19 @@ async fn run( loop { futures::select_biased! { _ = prepare_queue => { - never!(); + never!("prepare_pool: long-running task never concludes; qed"); break; }, _ = prepare_pool => { - never!(); + never!("prepare_pool: long-running task never concludes; qed"); break; }, _ = execute_queue => { - never!(); + never!("execute_queue: long-running task never concludes; qed"); break; }, _ = sweeper => { - never!(); + never!("sweeper: long-running task never concludes; qed"); break; }, () = cleanup_pulse.select_next_some() => { @@ -515,10 +515,20 @@ async fn handle_prepare_done( // Make some sanity checks and extract the current state. let state = match artifacts.artifact_state_mut(&artifact_id) { None => { + // before sending request to prepare, the artifact is inserted with `preparing` state; + // the requests are deduplicated for the same artifact id; + // there is only one possible state change: prepare is done; + // thus the artifact cannot be unknown, only preparing; + // qed. never!("an unknown artifact was prepared: {:?}", artifact_id); return Ok(()); } Some(ArtifactState::Prepared { .. }) => { + // before sending request to prepare, the artifact is inserted with `preparing` state; + // the requests are deduplicated for the same artifact id; + // there is only one possible state change: prepare is done; + // thus the artifact cannot be prepared, only preparing; + // qed. never!("the artifact is already prepared: {:?}", artifact_id); return Ok(()); } diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs index cffe48aa8c69..799c89a4e3bc 100644 --- a/node/core/pvf/src/prepare/pool.rs +++ b/node/core/pvf/src/prepare/pool.rs @@ -60,6 +60,8 @@ pub enum ToPool { /// Request the given worker to start working on the given code. /// /// Once the job either succeeded or failed, a [`FromPool::Concluded`] message will be sent back. + /// + /// This should not be sent again until the concluded message is received. StartWork { worker: Worker, code: Arc>, @@ -201,6 +203,11 @@ fn handle_to_pool( .boxed(), ); } else { + // idle token is present after spawn and after a job is concluded; + // the precondition for `StartWork` is it should be sent only if all previous work + // items concluded; + // thus idle token is Some; + // qed. never!(); } } else { @@ -209,13 +216,12 @@ fn handle_to_pool( } } ToPool::Kill(worker) => { - always!(spawned.remove(worker).is_some()); + // It may be absent if it were previously already removed by `purge_dead`. + let _ = spawned.remove(worker); } ToPool::BumpPriority(worker) => { if let Some(data) = spawned.get(worker) { worker::bump_priority(&data.handle); - } else { - never!() } } } diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index 188b94092c24..0f463235875d 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -229,7 +229,10 @@ async fn handle_to_queue(queue: &mut Queue, to_queue: ToQueue) -> Result<(), Fat async fn handle_enqueue(queue: &mut Queue, priority: Priority, pvf: Pvf) -> Result<(), Fatal> { let artifact_id = pvf.as_artifact_id(); if never!(queue.artifact_id_to_job.contains_key(&artifact_id)) { - // We already know about this artifact yet it was still enqueued. + // This function is called in response to a `Enqueue` message; + // Precondtion for `Enqueue` is that it is sent only once for a PVF; + // Thus this should always be `false`; + // qed. tracing::warn!( target: LOG_TARGET, "duplicate `enqueue` command received for {:?}", @@ -326,6 +329,9 @@ async fn handle_worker_concluded( match $expr { Some(v) => v, None => { + // Precondition of calling this is that the $expr is never none; + // Assume the conditions holds, then this never is not hit; + // qed. never!("never_none, {}", stringify!($expr)); return Ok(()); } @@ -334,8 +340,31 @@ async fn handle_worker_concluded( } // Find out on which artifact was the worker working. + + // workers are registered upon spawn and removed in one of the following cases: + // 1. received rip signal + // 2. received concluded signal with rip=true; + // concluded signal only comes from a spawned worker and only once; + // rip signal is not sent after conclusion with rip=true; + // the worker should be registered; + // this can't be None; + // qed. let worker_data = never_none!(queue.workers.get_mut(worker)); + + // worker_data.job is set only by `assign` and removed only here for a worker; + // concluded signal only comes for a worker that was previously assigned and only once; + // the worker should have the job; + // this can't be None; + // qed. let job = never_none!(worker_data.job.take()); + + // job_data is inserted upon enqueue and removed only here; + // as was established above, this worker was previously `assign`ed to the job; + // that implies that the job was enqueued; + // conclude signal only comes once; + // we are just to remove the job for the first and the only time; + // this can't be None; + // qed. let job_data = never_none!(queue.jobs.remove(job)); let artifact_id = job_data.pvf.as_artifact_id(); @@ -346,7 +375,8 @@ async fn handle_worker_concluded( // Figure out what to do with the worker. if rip { let worker_data = queue.workers.remove(worker); - // worker should exist, it's asserted above. + // worker should exist, it's asserted above; + // qed. always!(worker_data.is_some()); if !queue.unscheduled.is_empty() { @@ -377,13 +407,19 @@ async fn handle_worker_rip(queue: &mut Queue, worker: Worker) -> Result<(), Fata let worker_data = queue.workers.remove(worker); if let Some(WorkerData { job: Some(job), .. }) = worker_data { - // This is an edge case where the worker ripped after we send assignment but before it + // This is an edge case where the worker ripped after we sent assignment but before it // was received by the pool. let priority = queue .jobs .get(job) .map(|data| data.priority) .unwrap_or_else(|| { + // job is inserted upon enqueue and removed on concluded signal; + // this is enclosed in the if statement that narrows the situation to before + // conclusion; + // that means that the job still exists and is known; + // this path cannot be hit; + // qed. never!(); Priority::Normal }); From 0b40ebe659ecb10640996ca00de80b3fae6153d4 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 6 Apr 2021 17:48:43 +0000 Subject: [PATCH 27/50] Clean unused imports --- node/core/pvf/src/execute/queue.rs | 1 - node/core/pvf/src/prepare/pool.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 422295c0687d..12464505e52f 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -31,7 +31,6 @@ use futures::{ }; use async_std::path::PathBuf; use slotmap::HopSlotMap; -use always_assert::always; slotmap::new_key_type! { struct Worker; } diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs index 799c89a4e3bc..034b8c4e9820 100644 --- a/node/core/pvf/src/prepare/pool.rs +++ b/node/core/pvf/src/prepare/pool.rs @@ -28,7 +28,7 @@ use futures::{ }; use slotmap::HopSlotMap; use assert_matches::assert_matches; -use always_assert::{never, always}; +use always_assert::never; slotmap::new_key_type! { pub struct Worker; } From 540e8fdfb5c5b1018aaea3dc30a4541a7a2a9d50 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 09:25:17 +0000 Subject: [PATCH 28/50] Revert "WIP: Diener" This reverts commit ff2d3ff2e10c3b72d56fb556b41ba549f6c5f61b. --- Cargo.lock | 381 +++++++++++------- bridges/bin/millau/node/Cargo.toml | 44 +- bridges/bin/millau/runtime/Cargo.toml | 50 +-- bridges/bin/rialto/node/Cargo.toml | 46 +-- bridges/bin/rialto/runtime/Cargo.toml | 54 +-- bridges/bin/runtime-common/Cargo.toml | 12 +- bridges/modules/call-dispatch/Cargo.toml | 12 +- bridges/modules/currency-exchange/Cargo.toml | 14 +- .../ethereum-contract/builtin/Cargo.toml | 10 +- bridges/modules/ethereum/Cargo.toml | 12 +- bridges/modules/finality-verifier/Cargo.toml | 10 +- bridges/modules/message-lane/Cargo.toml | 16 +- bridges/modules/message-lane/rpc/Cargo.toml | 12 +- .../modules/shift-session-manager/Cargo.toml | 14 +- bridges/modules/substrate/Cargo.toml | 18 +- .../primitives/currency-exchange/Cargo.toml | 6 +- bridges/primitives/ethereum-poa/Cargo.toml | 8 +- bridges/primitives/header-chain/Cargo.toml | 10 +- bridges/primitives/kusama/Cargo.toml | 12 +- bridges/primitives/message-lane/Cargo.toml | 6 +- bridges/primitives/millau/Cargo.toml | 16 +- bridges/primitives/polkadot/Cargo.toml | 12 +- bridges/primitives/rialto/Cargo.toml | 12 +- bridges/primitives/runtime/Cargo.toml | 10 +- bridges/primitives/test-utils/Cargo.toml | 6 +- bridges/relays/ethereum/Cargo.toml | 12 +- bridges/relays/kusama-client/Cargo.toml | 12 +- bridges/relays/millau-client/Cargo.toml | 12 +- bridges/relays/polkadot-client/Cargo.toml | 12 +- bridges/relays/rialto-client/Cargo.toml | 12 +- bridges/relays/substrate-client/Cargo.toml | 18 +- bridges/relays/substrate/Cargo.toml | 10 +- bridges/relays/utils/Cargo.toml | 2 +- cli/Cargo.toml | 16 +- core-primitives/Cargo.toml | 6 +- erasure-coding/Cargo.toml | 4 +- node/collation-generation/Cargo.toml | 2 +- node/core/approval-voting/Cargo.toml | 20 +- node/core/av-store/Cargo.toml | 6 +- node/core/backing/Cargo.toml | 10 +- node/core/bitfield-signing/Cargo.toml | 2 +- node/core/candidate-selection/Cargo.toml | 4 +- node/core/candidate-validation/Cargo.toml | 4 +- node/core/chain-api/Cargo.toml | 4 +- node/core/proposer/Cargo.toml | 24 +- node/core/provisioner/Cargo.toml | 4 +- node/core/pvf/Cargo.toml | 14 +- node/core/runtime-api/Cargo.toml | 8 +- node/jaeger/Cargo.toml | 4 +- node/network/approval-distribution/Cargo.toml | 2 +- .../availability-distribution/Cargo.toml | 16 +- node/network/availability-recovery/Cargo.toml | 6 +- node/network/bitfield-distribution/Cargo.toml | 6 +- node/network/bridge/Cargo.toml | 8 +- node/network/collator-protocol/Cargo.toml | 4 +- node/network/pov-distribution/Cargo.toml | 4 +- node/network/protocol/Cargo.toml | 2 +- .../network/statement-distribution/Cargo.toml | 12 +- node/overseer/Cargo.toml | 4 +- node/primitives/Cargo.toml | 10 +- node/service/Cargo.toml | 82 ++-- node/subsystem-test-helpers/Cargo.toml | 4 +- node/subsystem-util/Cargo.toml | 10 +- node/subsystem/Cargo.toml | 6 +- node/test/client/Cargo.toml | 28 +- node/test/service/Cargo.toml | 62 +-- parachain/Cargo.toml | 6 +- parachain/test-parachains/Cargo.toml | 2 +- parachain/test-parachains/adder/Cargo.toml | 4 +- .../test-parachains/adder/collator/Cargo.toml | 14 +- primitives/Cargo.toml | 30 +- rpc/Cargo.toml | 40 +- runtime/common/Cargo.toml | 60 +-- runtime/kusama/Cargo.toml | 114 +++--- runtime/parachains/Cargo.toml | 60 +-- runtime/polkadot/Cargo.toml | 110 ++--- runtime/rococo/Cargo.toml | 66 +-- runtime/test-runtime/Cargo.toml | 76 ++-- runtime/westend/Cargo.toml | 112 ++--- statement-table/Cargo.toml | 2 +- xcm/xcm-builder/Cargo.toml | 10 +- xcm/xcm-executor/Cargo.toml | 12 +- 82 files changed, 1050 insertions(+), 959 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5cb61852c70d..40482e51f1cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1671,7 +1671,6 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", ] @@ -1689,7 +1688,6 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1708,7 +1706,6 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "chrono", @@ -1731,7 +1728,6 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1744,7 +1740,6 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -1760,7 +1755,6 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -1771,7 +1765,6 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "bitflags", "frame-metadata", @@ -1797,7 +1790,6 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1809,7 +1801,6 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -1821,7 +1812,6 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro2", "quote", @@ -1831,7 +1821,6 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-metadata", "frame-support", @@ -1852,7 +1841,6 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1869,7 +1857,6 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -1883,7 +1870,6 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -1892,7 +1878,6 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "parity-scale-codec", @@ -4219,7 +4204,6 @@ checksum = "13370dae44474229701bb69b90b4f4dca6404cb0357a2d50d635f1171dc3aa7b" [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4235,7 +4219,6 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4250,7 +4233,6 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4274,7 +4256,6 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4289,7 +4270,6 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4304,7 +4284,6 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4321,7 +4300,6 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4336,7 +4314,6 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4357,7 +4334,6 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4373,7 +4349,6 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4395,7 +4370,6 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4411,7 +4385,6 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4431,7 +4404,6 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4448,7 +4420,6 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4462,7 +4433,6 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4478,7 +4448,6 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4492,7 +4461,6 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4508,7 +4476,6 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4530,7 +4497,6 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4546,7 +4512,6 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4559,7 +4524,6 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-support", @@ -4574,7 +4538,6 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4590,7 +4553,6 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4610,7 +4572,6 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4626,7 +4587,6 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4640,7 +4600,6 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4665,7 +4624,6 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4676,7 +4634,6 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4690,7 +4647,6 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4709,7 +4665,6 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4724,7 +4679,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-support", "frame-system", @@ -4740,7 +4694,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4757,7 +4710,6 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4768,7 +4720,6 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4784,7 +4735,6 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4800,7 +4750,6 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6981,7 +6930,6 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "env_logger 0.8.2", "hex-literal", @@ -7238,7 +7186,6 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -7266,7 +7213,6 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7289,7 +7235,6 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7305,7 +7250,6 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7326,7 +7270,6 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7337,7 +7280,6 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "fdlimit", @@ -7375,7 +7317,6 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "fnv", @@ -7409,7 +7350,6 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "blake2-rfc", "hash-db", @@ -7439,7 +7379,6 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7450,7 +7389,6 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "fork-tree", @@ -7496,7 +7434,6 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7520,7 +7457,6 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7533,7 +7469,6 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7560,7 +7495,6 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sc-client-api", @@ -7574,7 +7508,6 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "lazy_static", @@ -7603,7 +7536,6 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "parity-scale-codec", @@ -7620,7 +7552,6 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -7635,7 +7566,6 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -7652,7 +7582,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "dyn-clone", @@ -7691,7 +7620,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "finality-grandpa", @@ -7715,7 +7643,6 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7736,7 +7663,6 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7754,7 +7680,6 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -7774,7 +7699,6 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "lazy_static", @@ -7793,7 +7717,6 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-std", "async-trait", @@ -7846,7 +7769,6 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7863,7 +7785,6 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "bytes 0.5.6", "fnv", @@ -7891,7 +7812,6 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "libp2p", @@ -7904,7 +7824,6 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7913,7 +7832,6 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "hash-db", @@ -7947,7 +7865,6 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -7971,7 +7888,6 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.1.29", "jsonrpc-core", @@ -7989,7 +7905,6 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "directories", "exit-future", @@ -8052,7 +7967,6 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -8067,7 +7981,6 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8087,7 +8000,6 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "futures 0.3.12", @@ -8107,7 +8019,6 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8134,7 +8045,6 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8145,7 +8055,6 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -8167,7 +8076,6 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -8568,7 +8476,6 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sp-core", @@ -8580,7 +8487,6 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "log", @@ -8597,7 +8503,6 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8609,7 +8514,6 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -8621,7 +8525,6 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "integer-sqrt", "num-traits", @@ -8634,7 +8537,6 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8646,7 +8548,6 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8657,7 +8558,6 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -8669,7 +8569,6 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "log", @@ -8687,7 +8586,6 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "serde_json", @@ -8696,7 +8594,6 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8722,7 +8619,6 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "merlin", "parity-scale-codec", @@ -8743,7 +8639,6 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8753,7 +8648,6 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8765,7 +8659,6 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "base58", "blake2-rfc", @@ -8809,7 +8702,6 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8818,7 +8710,6 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro2", "quote", @@ -8828,7 +8719,6 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "environmental", "parity-scale-codec", @@ -8839,7 +8729,6 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "finality-grandpa", "log", @@ -8856,7 +8745,6 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8868,7 +8756,6 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "hash-db", @@ -8892,7 +8779,6 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "lazy_static", "sp-core", @@ -8903,7 +8789,6 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-trait", "derive_more", @@ -8920,7 +8805,6 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "serde", @@ -8933,7 +8817,6 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8944,7 +8827,6 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "sp-api", "sp-core", @@ -8954,7 +8836,6 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "backtrace", ] @@ -8962,7 +8843,6 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "sp-core", @@ -8971,7 +8851,6 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "either", "hash256-std-hasher", @@ -8992,7 +8871,6 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9009,7 +8887,6 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9021,7 +8898,6 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "serde", "serde_json", @@ -9030,7 +8906,6 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -9043,7 +8918,6 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9053,7 +8927,6 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "log", @@ -9075,12 +8948,10 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9093,7 +8964,6 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "sp-core", @@ -9106,7 +8976,6 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "parity-scale-codec", "sp-api", @@ -9119,7 +8988,6 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "log", "parity-scale-codec", @@ -9132,7 +9000,6 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "derive_more", "futures 0.3.12", @@ -9148,7 +9015,6 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "hash-db", "memory-db", @@ -9162,7 +9028,6 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "futures-core", @@ -9174,7 +9039,6 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9186,7 +9050,6 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9343,7 +9206,6 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "chrono", "console_error_panic_hook", @@ -9369,7 +9231,6 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "platforms", ] @@ -9377,7 +9238,6 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -9400,7 +9260,6 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "async-std", "derive_more", @@ -9414,7 +9273,6 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.1.29", "futures 0.3.12", @@ -9442,7 +9300,6 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "futures 0.3.12", "substrate-test-utils-derive", @@ -9452,7 +9309,6 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "proc-macro-crate 1.0.0", "quote", @@ -10136,7 +9992,6 @@ checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=ser-instrument#0dff2434555ae54e460309643e0690bf9c85d7f5" dependencies = [ "frame-try-runtime", "log", @@ -11062,3 +10917,239 @@ dependencies = [ "itertools 0.9.0", "libc", ] + +[[patch.unused]] +name = "chain-spec-builder" +version = "2.0.0" + +[[patch.unused]] +name = "node-bench" +version = "0.8.0" + +[[patch.unused]] +name = "node-browser-testing" +version = "2.0.0" + +[[patch.unused]] +name = "node-cli" +version = "2.0.0" + +[[patch.unused]] +name = "node-executor" +version = "2.0.0" + +[[patch.unused]] +name = "node-inspect" +version = "0.8.0" + +[[patch.unused]] +name = "node-primitives" +version = "2.0.0" + +[[patch.unused]] +name = "node-rpc" +version = "2.0.0" + +[[patch.unused]] +name = "node-rpc-client" +version = "2.0.0" + +[[patch.unused]] +name = "node-runtime" +version = "2.0.1" + +[[patch.unused]] +name = "node-template" +version = "2.0.0" + +[[patch.unused]] +name = "node-template-runtime" +version = "2.0.0" + +[[patch.unused]] +name = "node-testing" +version = "2.0.0" + +[[patch.unused]] +name = "pallet-assets" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-atomic-swap" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-aura" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-primitives" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-proc-macro" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-rpc" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-contracts-rpc-runtime-api" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-elections" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-example" +version = "2.0.0" + +[[patch.unused]] +name = "pallet-example-offchain-worker" +version = "2.0.1" + +[[patch.unused]] +name = "pallet-example-parallel" +version = "2.0.1" + +[[patch.unused]] +name = "pallet-gilt" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-lottery" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr-primitives" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-mmr-rpc" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-node-authorization" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-scored-pool" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-staking-reward-fn" +version = "3.0.0" + +[[patch.unused]] +name = "pallet-template" +version = "2.0.0" + +[[patch.unused]] +name = "sc-consensus-aura" +version = "0.9.0" + +[[patch.unused]] +name = "sc-consensus-manual-seal" +version = "0.9.0" + +[[patch.unused]] +name = "sc-consensus-pow" +version = "0.9.0" + +[[patch.unused]] +name = "sc-network-test" +version = "0.8.0" + +[[patch.unused]] +name = "sc-runtime-test" +version = "2.0.0" + +[[patch.unused]] +name = "sc-service-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-api-test" +version = "2.0.1" + +[[patch.unused]] +name = "sp-application-crypto-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-arithmetic-fuzzer" +version = "2.0.0" + +[[patch.unused]] +name = "sp-consensus-aura" +version = "0.9.0" + +[[patch.unused]] +name = "sp-consensus-pow" +version = "0.9.0" + +[[patch.unused]] +name = "sp-npos-elections-fuzzer" +version = "2.0.0-alpha.5" + +[[patch.unused]] +name = "sp-runtime-interface-test" +version = "2.0.0" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm" +version = "2.0.0" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm-deprecated" +version = "2.0.0" + +[[patch.unused]] +name = "sp-sandbox" +version = "0.9.0" + +[[patch.unused]] +name = "sp-test-primitives" +version = "2.0.0" + +[[patch.unused]] +name = "subkey" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-frame-cli" +version = "3.0.0" + +[[patch.unused]] +name = "substrate-frame-rpc-support" +version = "3.0.0" + +[[patch.unused]] +name = "substrate-test-runtime" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-runtime-client" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-runtime-transaction-pool" +version = "2.0.0" + +[[patch.unused]] +name = "substrate-test-utils-test-crate" +version = "0.1.0" + +[[patch.unused]] +name = "substrate-wasm-builder" +version = "4.0.0" diff --git a/bridges/bin/millau/node/Cargo.toml b/bridges/bin/millau/node/Cargo.toml index d21ed89f73f9..6f7aa94e6ffa 100644 --- a/bridges/bin/millau/node/Cargo.toml +++ b/bridges/bin/millau/node/Cargo.toml @@ -24,31 +24,31 @@ pallet-message-lane-rpc = { path = "../../../modules/message-lane/rpc" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "ser-instrument" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" } [build-dependencies] build-script-utils = { package = "substrate-build-script-utils", version = "2.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } vergen = "3.1.0" [features] diff --git a/bridges/bin/millau/runtime/Cargo.toml b/bridges/bin/millau/runtime/Cargo.toml index c09e85756287..d163661284b6 100644 --- a/bridges/bin/millau/runtime/Cargo.toml +++ b/bridges/bin/millau/runtime/Cargo.toml @@ -28,31 +28,31 @@ pallet-substrate-bridge = { path = "../../../modules/substrate", default-feature # Substrate Dependencies -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [build-dependencies] wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "2.0.0" } diff --git a/bridges/bin/rialto/node/Cargo.toml b/bridges/bin/rialto/node/Cargo.toml index b55d1d7a2899..f99178c77aea 100644 --- a/bridges/bin/rialto/node/Cargo.toml +++ b/bridges/bin/rialto/node/Cargo.toml @@ -24,32 +24,32 @@ rialto-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "ser-instrument" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" } [build-dependencies] build-script-utils = { package = "substrate-build-script-utils", version = "2.0" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } vergen = "3.1.0" [features] diff --git a/bridges/bin/rialto/runtime/Cargo.toml b/bridges/bin/rialto/runtime/Cargo.toml index a162074ffb00..517ddff9cb67 100644 --- a/bridges/bin/rialto/runtime/Cargo.toml +++ b/bridges/bin/rialto/runtime/Cargo.toml @@ -34,33 +34,33 @@ pallet-shift-session-manager = { path = "../../../modules/shift-session-manager" # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] libsecp256k1 = { version = "0.3.4", features = ["hmac"] } diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml index a8d8d340dd89..69b618e7daa5 100644 --- a/bridges/bin/runtime-common/Cargo.toml +++ b/bridges/bin/runtime-common/Cargo.toml @@ -23,12 +23,12 @@ pallet-substrate-bridge = { path = "../../modules/substrate", default-features = # Substrate dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/modules/call-dispatch/Cargo.toml b/bridges/modules/call-dispatch/Cargo.toml index 4a471fe50052..64910df861c3 100644 --- a/bridges/modules/call-dispatch/Cargo.toml +++ b/bridges/modules/call-dispatch/Cargo.toml @@ -16,14 +16,14 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } serde = "1.0" [features] diff --git a/bridges/modules/currency-exchange/Cargo.toml b/bridges/modules/currency-exchange/Cargo.toml index 4ef84e269d6a..cf58b5e81c34 100644 --- a/bridges/modules/currency-exchange/Cargo.toml +++ b/bridges/modules/currency-exchange/Cargo.toml @@ -17,15 +17,15 @@ bp-header-chain = { path = "../../primitives/header-chain", default-features = f # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] default = ["std"] diff --git a/bridges/modules/ethereum-contract/builtin/Cargo.toml b/bridges/modules/ethereum-contract/builtin/Cargo.toml index 383632f96822..d17b0ba7e118 100644 --- a/bridges/modules/ethereum-contract/builtin/Cargo.toml +++ b/bridges/modules/ethereum-contract/builtin/Cargo.toml @@ -19,10 +19,10 @@ rialto-runtime = { path = "../../../bin/rialto/runtime" } # Substrate Dependencies -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/modules/ethereum/Cargo.toml b/bridges/modules/ethereum/Cargo.toml index 44f611574bca..1912f45babb5 100644 --- a/bridges/modules/ethereum/Cargo.toml +++ b/bridges/modules/ethereum/Cargo.toml @@ -17,12 +17,12 @@ bp-eth-poa = { path = "../../primitives/ethereum-poa", default-features = false # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] libsecp256k1 = { version = "0.3.4", features = ["hmac"] } diff --git a/bridges/modules/finality-verifier/Cargo.toml b/bridges/modules/finality-verifier/Cargo.toml index 8c336e12f1fd..35d4d6880aa9 100644 --- a/bridges/modules/finality-verifier/Cargo.toml +++ b/bridges/modules/finality-verifier/Cargo.toml @@ -19,15 +19,15 @@ bp-header-chain = { path = "../../primitives/header-chain", default-features = f # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] bp-test-utils = {path = "../../primitives/test-utils" } pallet-substrate-bridge = { path = "../../modules/substrate" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] diff --git a/bridges/modules/message-lane/Cargo.toml b/bridges/modules/message-lane/Cargo.toml index e4ecb4da8449..abbfb6076124 100644 --- a/bridges/modules/message-lane/Cargo.toml +++ b/bridges/modules/message-lane/Cargo.toml @@ -19,17 +19,17 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false, optional = true } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] hex-literal = "0.3" -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] default = ["std"] diff --git a/bridges/modules/message-lane/rpc/Cargo.toml b/bridges/modules/message-lane/rpc/Cargo.toml index 8b4ea74a6294..23dac80b407c 100644 --- a/bridges/modules/message-lane/rpc/Cargo.toml +++ b/bridges/modules/message-lane/rpc/Cargo.toml @@ -21,9 +21,9 @@ bp-message-lane = { path = "../../../primitives/message-lane" } # Substrate Dependencies -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/modules/shift-session-manager/Cargo.toml b/bridges/modules/shift-session-manager/Cargo.toml index bafe79b4d46e..6dac97ddde60 100644 --- a/bridges/modules/shift-session-manager/Cargo.toml +++ b/bridges/modules/shift-session-manager/Cargo.toml @@ -11,15 +11,15 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features = # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } serde = "1.0" [features] diff --git a/bridges/modules/substrate/Cargo.toml b/bridges/modules/substrate/Cargo.toml index 740dd69af6f0..490aa2098b9f 100644 --- a/bridges/modules/substrate/Cargo.toml +++ b/bridges/modules/substrate/Cargo.toml @@ -20,18 +20,18 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] bp-test-utils = {path = "../../primitives/test-utils" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] default = ["std"] diff --git a/bridges/primitives/currency-exchange/Cargo.toml b/bridges/primitives/currency-exchange/Cargo.toml index 9ed3dce7f22b..43367ba7992b 100644 --- a/bridges/primitives/currency-exchange/Cargo.toml +++ b/bridges/primitives/currency-exchange/Cargo.toml @@ -11,9 +11,9 @@ codec = { package = "parity-scale-codec", version = "2.0.0", default-features = # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/ethereum-poa/Cargo.toml b/bridges/primitives/ethereum-poa/Cargo.toml index b0a473b0fbf8..cd2c3a97a0f3 100644 --- a/bridges/primitives/ethereum-poa/Cargo.toml +++ b/bridges/primitives/ethereum-poa/Cargo.toml @@ -24,10 +24,10 @@ triehash = { version = "0.8.2", default-features = false } # Substrate Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] hex-literal = "0.2" diff --git a/bridges/primitives/header-chain/Cargo.toml b/bridges/primitives/header-chain/Cargo.toml index 22c37c412d5f..dc58dafb979e 100644 --- a/bridges/primitives/header-chain/Cargo.toml +++ b/bridges/primitives/header-chain/Cargo.toml @@ -13,11 +13,11 @@ serde = { version = "1.0", optional = true } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [dev-dependencies] bp-test-utils = { path = "../test-utils" } diff --git a/bridges/primitives/kusama/Cargo.toml b/bridges/primitives/kusama/Cargo.toml index ec1e8ee4a009..784f0b013289 100644 --- a/bridges/primitives/kusama/Cargo.toml +++ b/bridges/primitives/kusama/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/message-lane/Cargo.toml b/bridges/primitives/message-lane/Cargo.toml index 99626494986e..cbddcb161460 100644 --- a/bridges/primitives/message-lane/Cargo.toml +++ b/bridges/primitives/message-lane/Cargo.toml @@ -15,9 +15,9 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/millau/Cargo.toml b/bridges/primitives/millau/Cargo.toml index 399dbaa31661..124d8199e2c2 100644 --- a/bridges/primitives/millau/Cargo.toml +++ b/bridges/primitives/millau/Cargo.toml @@ -21,14 +21,14 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/polkadot/Cargo.toml b/bridges/primitives/polkadot/Cargo.toml index edfefb7ed138..f7c9b9717d1c 100644 --- a/bridges/primitives/polkadot/Cargo.toml +++ b/bridges/primitives/polkadot/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/rialto/Cargo.toml b/bridges/primitives/rialto/Cargo.toml index 19f4dcbca3a1..d6c12fc84809 100644 --- a/bridges/primitives/rialto/Cargo.toml +++ b/bridges/primitives/rialto/Cargo.toml @@ -15,12 +15,12 @@ bp-runtime = { path = "../runtime", default-features = false } # Substrate Based Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/runtime/Cargo.toml b/bridges/primitives/runtime/Cargo.toml index ce2cf6cbfec6..b8e511fa56f8 100644 --- a/bridges/primitives/runtime/Cargo.toml +++ b/bridges/primitives/runtime/Cargo.toml @@ -12,11 +12,11 @@ num-traits = { version = "0.2", default-features = false } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/test-utils/Cargo.toml b/bridges/primitives/test-utils/Cargo.toml index 320c7ad35ff4..396e0e764635 100644 --- a/bridges/primitives/test-utils/Cargo.toml +++ b/bridges/primitives/test-utils/Cargo.toml @@ -8,6 +8,6 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" [dependencies] finality-grandpa = { version = "0.14.0" } bp-header-chain = { path = "../header-chain" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/ethereum/Cargo.toml b/bridges/relays/ethereum/Cargo.toml index 8da80d9f9f9e..860c0815e2e8 100644 --- a/bridges/relays/ethereum/Cargo.toml +++ b/bridges/relays/ethereum/Cargo.toml @@ -40,9 +40,9 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/kusama-client/Cargo.toml b/bridges/relays/kusama-client/Cargo.toml index 5df407c4cebb..04958cf2b361 100644 --- a/bridges/relays/kusama-client/Cargo.toml +++ b/bridges/relays/kusama-client/Cargo.toml @@ -17,9 +17,9 @@ bp-kusama = { path = "../../primitives/kusama" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/millau-client/Cargo.toml b/bridges/relays/millau-client/Cargo.toml index 7ddd9d2bbdd1..5f9cbd170c93 100644 --- a/bridges/relays/millau-client/Cargo.toml +++ b/bridges/relays/millau-client/Cargo.toml @@ -17,9 +17,9 @@ millau-runtime = { path = "../../bin/millau/runtime" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/polkadot-client/Cargo.toml b/bridges/relays/polkadot-client/Cargo.toml index dbf4bada44e1..8764b6509b24 100644 --- a/bridges/relays/polkadot-client/Cargo.toml +++ b/bridges/relays/polkadot-client/Cargo.toml @@ -17,9 +17,9 @@ bp-polkadot = { path = "../../primitives/polkadot" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/rialto-client/Cargo.toml b/bridges/relays/rialto-client/Cargo.toml index 1f6058d7eaf7..6142ba05c963 100644 --- a/bridges/relays/rialto-client/Cargo.toml +++ b/bridges/relays/rialto-client/Cargo.toml @@ -17,9 +17,9 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/substrate-client/Cargo.toml b/bridges/relays/substrate-client/Cargo.toml index 89b5742e83a3..016a7d7d3371 100644 --- a/bridges/relays/substrate-client/Cargo.toml +++ b/bridges/relays/substrate-client/Cargo.toml @@ -23,15 +23,15 @@ relay-utils = { path = "../utils" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" } #[dev-dependencies] futures = "0.3.7" diff --git a/bridges/relays/substrate/Cargo.toml b/bridges/relays/substrate/Cargo.toml index 5162968a7c99..120501e511fe 100644 --- a/bridges/relays/substrate/Cargo.toml +++ b/bridges/relays/substrate/Cargo.toml @@ -42,8 +42,8 @@ rialto-runtime = { path = "../../bin/rialto/runtime" } # Substrate Dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/bridges/relays/utils/Cargo.toml b/bridges/relays/utils/Cargo.toml index 071237c313ca..ce6a20bbc4fe 100644 --- a/bridges/relays/utils/Cargo.toml +++ b/bridges/relays/utils/Cargo.toml @@ -19,4 +19,4 @@ time = "0.2" # Substrate dependencies -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 7afd12c32663..fc0f5e0890ad 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -24,19 +24,19 @@ futures = "0.3.12" service = { package = "polkadot-service", path = "../node/service", default-features = false, optional = true } polkadot-node-core-pvf = { path = "../node/core/pvf", optional = true } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -sc-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -browser-utils = { package = "substrate-browser-utils", git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +browser-utils = { package = "substrate-browser-utils", git = "https://github.com/paritytech/substrate", branch = "master", optional = true } # this crate is used only to enable `trie-memory-tracker` feature # see https://github.com/paritytech/substrate/pull/6745 -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] default = [ "wasmtime", "db", "cli", "full-node", "trie-memory-tracker" ] diff --git a/core-primitives/Cargo.toml b/core-primitives/Cargo.toml index 828910c09ead..4007c9a90037 100644 --- a/core-primitives/Cargo.toml +++ b/core-primitives/Cargo.toml @@ -5,9 +5,9 @@ authors = ["Parity Technologies "] edition = "2018" [dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } parity-scale-codec = { version = "2.0.0", default-features = false, features = [ "derive" ] } parity-util-mem = { version = "0.9.0", default-features = false, optional = true } diff --git a/erasure-coding/Cargo.toml b/erasure-coding/Cargo.toml index c2263ff2f615..c1ea7f33fb8a 100644 --- a/erasure-coding/Cargo.toml +++ b/erasure-coding/Cargo.toml @@ -8,6 +8,6 @@ edition = "2018" primitives = { package = "polkadot-primitives", path = "../primitives" } novelpoly = { package = "reed-solomon-novelpoly", version = "=0.0.3" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["std", "derive"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.23" diff --git a/node/collation-generation/Cargo.toml b/node/collation-generation/Cargo.toml index 1f27bdbf843f..fdcfa6ae1fd7 100644 --- a/node/collation-generation/Cargo.toml +++ b/node/collation-generation/Cargo.toml @@ -12,7 +12,7 @@ polkadot-node-primitives = { path = "../primitives" } polkadot-node-subsystem = { path = "../subsystem" } polkadot-node-subsystem-util = { path = "../subsystem-util" } polkadot-primitives = { path = "../../primitives" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.23" [dev-dependencies] diff --git a/node/core/approval-voting/Cargo.toml b/node/core/approval-voting/Cargo.toml index 52c16d7255d5..f3fe0fcb0396 100644 --- a/node/core/approval-voting/Cargo.toml +++ b/node/core/approval-voting/Cargo.toml @@ -23,20 +23,20 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } -sc-client-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-consensus-slots = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", default-features = false, features = ["full_crypto"] , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = ["full_crypto"] } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } [dev-dependencies] parking_lot = "0.11.1" rand_core = "0.5.1" # should match schnorrkel -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } maplit = "1.0.2" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } assert_matches = "1.4.0" diff --git a/node/core/av-store/Cargo.toml b/node/core/av-store/Cargo.toml index 7b0aca3d1bae..00572ca58bc2 100644 --- a/node/core/av-store/Cargo.toml +++ b/node/core/av-store/Cargo.toml @@ -20,7 +20,7 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-overseer = { path = "../../overseer" } polkadot-primitives = { path = "../../../primitives" } -sc-service = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } [dev-dependencies] log = "0.4.13" @@ -28,8 +28,8 @@ env_logger = "0.8.2" assert_matches = "1.4.0" kvdb-memorydb = "0.9.0" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } parking_lot = "0.11.1" diff --git a/node/core/backing/Cargo.toml b/node/core/backing/Cargo.toml index eafad6748895..a6b04c03ae92 100644 --- a/node/core/backing/Cargo.toml +++ b/node/core/backing/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" [dependencies] futures = "0.3.12" -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } @@ -18,10 +18,10 @@ tracing = "0.1.25" thiserror = "1.0.23" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } futures = { version = "0.3.12", features = ["thread-pool"] } assert_matches = "1.4.0" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/core/bitfield-signing/Cargo.toml b/node/core/bitfield-signing/Cargo.toml index 0e2da805c715..e336af9522c1 100644 --- a/node/core/bitfield-signing/Cargo.toml +++ b/node/core/bitfield-signing/Cargo.toml @@ -10,6 +10,6 @@ tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } wasm-timer = "0.2.5" thiserror = "1.0.23" diff --git a/node/core/candidate-selection/Cargo.toml b/node/core/candidate-selection/Cargo.toml index 21dec1769e80..ee58baa1f802 100644 --- a/node/core/candidate-selection/Cargo.toml +++ b/node/core/candidate-selection/Cargo.toml @@ -9,7 +9,7 @@ futures = "0.3.12" tracing = "0.1.25" thiserror = "1.0.23" -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } @@ -17,4 +17,4 @@ polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/candidate-validation/Cargo.toml b/node/core/candidate-validation/Cargo.toml index 0defd51bbf67..c168be1ff9c8 100644 --- a/node/core/candidate-validation/Cargo.toml +++ b/node/core/candidate-validation/Cargo.toml @@ -21,8 +21,8 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-core-pvf = { path = "../pvf" } [dev-dependencies] -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } futures = { version = "0.3.12", features = ["thread-pool"] } assert_matches = "1.4.0" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/chain-api/Cargo.toml b/node/core/chain-api/Cargo.toml index b6bb1332f297..707fa812f004 100644 --- a/node/core/chain-api/Cargo.toml +++ b/node/core/chain-api/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" [dependencies] futures = "0.3.12" tracing = "0.1.25" -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-primitives = { path = "../../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } @@ -16,4 +16,4 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } futures = { version = "0.3.12", features = ["thread-pool"] } maplit = "1.0.2" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/proposer/Cargo.toml b/node/core/proposer/Cargo.toml index 5c61e9de6fae..f2532d61d1cd 100644 --- a/node/core/proposer/Cargo.toml +++ b/node/core/proposer/Cargo.toml @@ -11,15 +11,15 @@ tracing = "0.1.25" polkadot-node-subsystem = { path = "../../subsystem" } polkadot-overseer = { path = "../../overseer" } polkadot-primitives = { path = "../../../primitives" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/provisioner/Cargo.toml b/node/core/provisioner/Cargo.toml index cf718f204d47..bff63e230af0 100644 --- a/node/core/provisioner/Cargo.toml +++ b/node/core/provisioner/Cargo.toml @@ -15,5 +15,5 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" } futures-timer = "3.0.2" [dev-dependencies] -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index 2cffc9b0bf59..61a0eb9cda6a 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -23,13 +23,13 @@ rand = "0.8.3" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } polkadot-parachain = { path = "../../../parachain" } polkadot-core-primitives = { path = "../../../core-primitives" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor-wasmtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor-wasmtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] adder = { package = "test-parachain-adder", path = "../../../parachain/test-parachains/adder" } diff --git a/node/core/runtime-api/Cargo.toml b/node/core/runtime-api/Cargo.toml index 9600e7c524d5..5d0889bf5a5d 100644 --- a/node/core/runtime-api/Cargo.toml +++ b/node/core/runtime-api/Cargo.toml @@ -10,16 +10,16 @@ tracing = "0.1.25" memory-lru = "0.1.0" parity-util-mem = { version = "0.9.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-primitives = { path = "../../../primitives" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } futures = { version = "0.3.12", features = ["thread-pool"] } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-node-primitives = { path = "../../primitives" } diff --git a/node/jaeger/Cargo.toml b/node/jaeger/Cargo.toml index 35f14fe876fd..32aa4491f980 100644 --- a/node/jaeger/Cargo.toml +++ b/node/jaeger/Cargo.toml @@ -11,8 +11,8 @@ mick-jaeger = "0.1.4" lazy_static = "1.4" parking_lot = "0.11.1" polkadot-primitives = { path = "../../primitives" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.23" log = "0.4.13" parity-scale-codec = { version = "2.0.0", default-features = false } diff --git a/node/network/approval-distribution/Cargo.toml b/node/network/approval-distribution/Cargo.toml index 4e6439a78854..900582aa988e 100644 --- a/node/network/approval-distribution/Cargo.toml +++ b/node/network/approval-distribution/Cargo.toml @@ -15,7 +15,7 @@ futures = "0.3.8" tracing = "0.1.25" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/network/availability-distribution/Cargo.toml b/node/network/availability-distribution/Cargo.toml index 5855f07a563e..85fa6c549f7c 100644 --- a/node/network/availability-distribution/Cargo.toml +++ b/node/network/availability-distribution/Cargo.toml @@ -14,20 +14,20 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsys polkadot-node-network-protocol = { path = "../../network/protocol" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } polkadot-node-core-runtime-api = { path = "../../core/runtime-api" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.23" rand = "0.8.3" lru = "0.6.5" [dev-dependencies] polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } -sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } futures-timer = "3.0.2" assert_matches = "1.4.0" maplit = "1.0" diff --git a/node/network/availability-recovery/Cargo.toml b/node/network/availability-recovery/Cargo.toml index c14379df8248..78f0f37cda67 100644 --- a/node/network/availability-recovery/Cargo.toml +++ b/node/network/availability-recovery/Cargo.toml @@ -26,8 +26,8 @@ futures-timer = "3.0.2" log = "0.4.11" smallvec = "1.5.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } diff --git a/node/network/bitfield-distribution/Cargo.toml b/node/network/bitfield-distribution/Cargo.toml index cab6f1b7d839..f19807a91bea 100644 --- a/node/network/bitfield-distribution/Cargo.toml +++ b/node/network/bitfield-distribution/Cargo.toml @@ -16,9 +16,9 @@ polkadot-node-network-protocol = { path = "../../network/protocol" } [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } bitvec = { version = "0.20.1", default-features = false, features = ["alloc"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } maplit = "1.0.2" log = "0.4.13" env_logger = "0.8.2" diff --git a/node/network/bridge/Cargo.toml b/node/network/bridge/Cargo.toml index 9b7a6a7c328a..8afa884cf1d5 100644 --- a/node/network/bridge/Cargo.toml +++ b/node/network/bridge/Cargo.toml @@ -10,8 +10,8 @@ futures = "0.3.12" tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-network-protocol = { path = "../protocol" } strum = "0.20.0" @@ -21,5 +21,5 @@ assert_matches = "1.4.0" parking_lot = "0.11.1" polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } polkadot-node-subsystem-util = { path = "../../subsystem-util"} -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/network/collator-protocol/Cargo.toml b/node/network/collator-protocol/Cargo.toml index 2a67bf67a2ad..9f95fb94ac3a 100644 --- a/node/network/collator-protocol/Cargo.toml +++ b/node/network/collator-protocol/Cargo.toml @@ -21,7 +21,7 @@ log = "0.4.13" env_logger = "0.8.2" assert_matches = "1.4.0" -sp-core = { git = "https://github.com/paritytech/substrate", features = ["std"] , branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-subsystem-testhelpers = { package = "polkadot-node-subsystem-test-helpers", path = "../../subsystem-test-helpers" } diff --git a/node/network/pov-distribution/Cargo.toml b/node/network/pov-distribution/Cargo.toml index 293ffe8749c2..ae405638c4c6 100644 --- a/node/network/pov-distribution/Cargo.toml +++ b/node/network/pov-distribution/Cargo.toml @@ -19,7 +19,7 @@ assert_matches = "1.4.0" env_logger = "0.8.1" log = "0.4.13" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } diff --git a/node/network/protocol/Cargo.toml b/node/network/protocol/Cargo.toml index f47c5c32977f..f7a0c72b2a08 100644 --- a/node/network/protocol/Cargo.toml +++ b/node/network/protocol/Cargo.toml @@ -10,6 +10,6 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-jaeger = { path = "../../jaeger" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } strum = { version = "0.20", features = ["derive"] } futures = "0.3.12" diff --git a/node/network/statement-distribution/Cargo.toml b/node/network/statement-distribution/Cargo.toml index af39abbc3270..5bcae793a348 100644 --- a/node/network/statement-distribution/Cargo.toml +++ b/node/network/statement-distribution/Cargo.toml @@ -9,7 +9,7 @@ edition = "2018" futures = "0.3.12" tracing = "0.1.25" polkadot-primitives = { path = "../../../primitives" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" } polkadot-node-primitives = { path = "../../primitives" } polkadot-node-subsystem-util = { path = "../../subsystem-util" } @@ -20,8 +20,8 @@ indexmap = "1.6.1" [dev-dependencies] polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" } assert_matches = "1.4.0" -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/overseer/Cargo.toml b/node/overseer/Cargo.toml index d87dbb168ebc..9a3ef00c6402 100644 --- a/node/overseer/Cargo.toml +++ b/node/overseer/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" [dependencies] async-trait = "0.1.42" -client = { package = "sc-client-api", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +client = { package = "sc-client-api", git = "https://github.com/paritytech/substrate", branch = "master" } futures = "0.3.12" futures-timer = "3.0.2" oorandom = "11.1.3" @@ -17,7 +17,7 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../subsystem tracing = "0.1.25" [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-node-network-protocol = { path = "../network/protocol" } futures = { version = "0.3.12", features = ["thread-pool"] } futures-timer = "3.0.2" diff --git a/node/primitives/Cargo.toml b/node/primitives/Cargo.toml index b7a8d5fa659f..6259d114269c 100644 --- a/node/primitives/Cargo.toml +++ b/node/primitives/Cargo.toml @@ -10,10 +10,10 @@ futures = "0.3.12" polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-vrf = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-vrf = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } schnorrkel = "0.9.1" thiserror = "1.0.22" diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 7ff0ca0b3923..8f7863c053ef 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -6,53 +6,53 @@ edition = "2018" [dependencies] # Substrate Client -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa-warp-sync = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -service = { package = "sc-service", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -telemetry = { package = "sc-telemetry", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } +grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa-warp-sync = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +service = { package = "sc-service", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +telemetry = { package = "sc-telemetry", git = "https://github.com/paritytech/substrate", branch = "master" } # Substrate Primitives -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } +consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } +grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-offchain = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } # Substrate Pallets -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } # Substrate Other -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" } # External Crates futures = "0.3.12" diff --git a/node/subsystem-test-helpers/Cargo.toml b/node/subsystem-test-helpers/Cargo.toml index 6b71c9a334b6..a1751146c9b5 100644 --- a/node/subsystem-test-helpers/Cargo.toml +++ b/node/subsystem-test-helpers/Cargo.toml @@ -18,9 +18,9 @@ polkadot-node-subsystem = { path = "../subsystem" } polkadot-node-subsystem-util = { path = "../subsystem-util" } polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } smallvec = "1.6.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] polkadot-overseer = { path = "../overseer" } diff --git a/node/subsystem-util/Cargo.toml b/node/subsystem-util/Cargo.toml index 98c8284e2083..abd04d3cc40a 100644 --- a/node/subsystem-util/Cargo.toml +++ b/node/subsystem-util/Cargo.toml @@ -23,11 +23,11 @@ polkadot-node-network-protocol = { path = "../network/protocol" } polkadot-primitives = { path = "../../primitives" } metered-channel = { path = "../metered-channel"} -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] assert_matches = "1.4.0" diff --git a/node/subsystem/Cargo.toml b/node/subsystem/Cargo.toml index dfc324521966..590af20343e8 100644 --- a/node/subsystem/Cargo.toml +++ b/node/subsystem/Cargo.toml @@ -23,10 +23,10 @@ polkadot-primitives = { path = "../../primitives" } polkadot-statement-table = { path = "../../statement-table" } polkadot-node-jaeger = { path = "../jaeger" } polkadot-procmacro-subsystem-dispatch-gen = { path = "dispatch-gen" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } smallvec = "1.6.1" -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } thiserror = "1.0.23" log = "0.4.13" diff --git a/node/test/client/Cargo.toml b/node/test/client/Cargo.toml index 0d68de5c3a0f..40b0cf054af6 100644 --- a/node/test/client/Cargo.toml +++ b/node/test/client/Cargo.toml @@ -14,19 +14,19 @@ polkadot-primitives = { path = "../../../primitives" } polkadot-node-subsystem = { path = "../../subsystem" } # Substrate dependencies -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/node/test/service/Cargo.toml b/node/test/service/Cargo.toml index 046387cde524..b8edc0bed965 100644 --- a/node/test/service/Cargo.toml +++ b/node/test/service/Cargo.toml @@ -25,38 +25,38 @@ polkadot-test-runtime = { path = "../../../runtime/test-runtime" } polkadot-runtime-parachains = { path = "../../../runtime/parachains" } # Substrate dependencies -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -service = { package = "sc-service", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master" } +consensus_common = { package = "sp-consensus", git = "https://github.com/paritytech/substrate", branch = "master" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master" } +grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } +grandpa_primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "master" } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" } +service = { package = "sc-service", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "master" } [dev-dependencies] -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } serde_json = "1.0.61" -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } tokio = { version = "0.2", features = ["macros"] } diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml index 3dd8c8be8619..883ed1955d1c 100644 --- a/parachain/Cargo.toml +++ b/parachain/Cargo.toml @@ -11,9 +11,9 @@ edition = "2018" # various unnecessary Substrate-specific endpoints. parity-scale-codec = { version = "2.0.0", default-features = false, features = [ "derive" ] } parity-util-mem = { version = "0.9.0", optional = true } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } polkadot-core-primitives = { path = "../core-primitives", default-features = false } derive_more = "0.99.11" diff --git a/parachain/test-parachains/Cargo.toml b/parachain/test-parachains/Cargo.toml index 2bb23a1e2bc4..75069345e2d7 100644 --- a/parachain/test-parachains/Cargo.toml +++ b/parachain/test-parachains/Cargo.toml @@ -14,7 +14,7 @@ adder = { package = "test-parachain-adder", path = "adder" } halt = { package = "test-parachain-halt", path = "halt" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } [features] default = [ "std" ] diff --git a/parachain/test-parachains/adder/Cargo.toml b/parachain/test-parachains/adder/Cargo.toml index f81d9dfea259..221cdb1b769f 100644 --- a/parachain/test-parachains/adder/Cargo.toml +++ b/parachain/test-parachains/adder/Cargo.toml @@ -9,12 +9,12 @@ build = "build.rs" [dependencies] parachain = { package = "polkadot-parachain", path = "../../", default-features = false, features = [ "wasm-api" ] } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } tiny-keccak = { version = "2.0.2", features = ["keccak"] } dlmalloc = { version = "0.2.1", features = [ "global" ] } # We need to make sure the global allocator is disabled until we have support of full substrate externalities -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, features = [ "disable_allocator" ] , branch = "ser-instrument" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, features = [ "disable_allocator" ] } [build-dependencies] substrate-wasm-builder = "3.0.0" diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index 2792b46227c7..62ae3750f3b2 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -27,10 +27,10 @@ polkadot-service = { path = "../../../../node/service" } polkadot-node-primitives = { path = "../../../../node/primitives" } polkadot-node-subsystem = { path = "../../../../node/subsystem" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } # This one is tricky. Even though it is not used directly by the collator, we still need it for the # `puppet_worker` binary, which is required for the integration test. However, this shouldn't be @@ -41,9 +41,9 @@ polkadot-node-core-pvf = { path = "../../../../node/core/pvf", optional = true } polkadot-parachain = { path = "../../.." } polkadot-test-service = { path = "../../../../node/test/service" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 543eb085edf0..0c887ece5023 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -7,23 +7,23 @@ edition = "2018" [dependencies] serde = { version = "1.0.123", optional = true, features = ["derive"] } parity-scale-codec = { version = "2.0.0", default-features = false, features = ["bit-vec", "derive"] } -primitives = { package = "sp-core", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -application-crypto = { package = "sp-application-crypto", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +primitives = { package = "sp-core", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +application-crypto = { package = "sp-application-crypto", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +runtime_primitives = { package = "sp-runtime", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } polkadot-parachain = { path = "../parachain", default-features = false } polkadot-core-primitives = { path = "../core-primitives", default-features = false } -trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +trie = { package = "sp-trie", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } bitvec = { version = "0.20.1", default-features = false, features = ["alloc"] } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } hex-literal = "0.3.1" parity-util-mem = { version = "0.9.0", default-features = false, optional = true } thiserror = "1.0.23" @@ -32,7 +32,7 @@ thiserror = "1.0.23" zstd = "0.5.0" [dev-dependencies] -sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "master" } pretty_assertions = "0.6.1" [features] diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 399725aaf903..9485af21d063 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -7,24 +7,24 @@ edition = "2018" [dependencies] jsonrpc-core = "15.1.0" polkadot-primitives = { path = "../primitives" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -txpool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master"} +sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"} +sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "master"} +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master"} +sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"} +txpool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master" } +frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } parity-scale-codec = { version = "2.0.0", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" } diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index e096eb2eac1f..30dcae2cdeee 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -14,29 +14,29 @@ serde = { version = "1.0.123", default-features = false } serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features=false, optional = true , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features=false, optional = true } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } libsecp256k1 = { version = "0.3.5", default-features = false, optional = true } @@ -46,15 +46,15 @@ xcm = { path = "../../xcm", default-features = false } [dev-dependencies] hex-literal = "0.3.1" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" } trie-db = "0.22.3" serde_json = "1.0.61" libsecp256k1 = "0.3.5" diff --git a/runtime/kusama/Cargo.toml b/runtime/kusama/Cargo.toml index 86041b3c1f7a..5c2fec3e6987 100644 --- a/runtime/kusama/Cargo.toml +++ b/runtime/kusama/Cargo.toml @@ -15,63 +15,63 @@ serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-bounties = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-recovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-society = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-tips = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-bounties = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-recovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-society = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -81,8 +81,8 @@ primitives = { package = "polkadot-primitives", path = "../../primitives", defau hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } separator = "0.4.1" serde_json = "1.0.61" diff --git a/runtime/parachains/Cargo.toml b/runtime/parachains/Cargo.toml index bb9df8f6a84c..8899f96dc579 100644 --- a/runtime/parachains/Cargo.toml +++ b/runtime/parachains/Cargo.toml @@ -12,27 +12,27 @@ rustc-hex = { version = "2.1.0", default-features = false } serde = { version = "1.0.123", features = [ "derive" ], optional = true } derive_more = "0.99.11" -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-keystore = { git = "https://github.com/paritytech/substrate", optional = true , branch = "ser-instrument" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } xcm = { package = "xcm", path = "../../xcm", default-features = false } xcm-executor = { package = "xcm-executor", path = "../../xcm/xcm-executor", default-features = false } @@ -45,18 +45,18 @@ rand_chacha = { version = "0.3.0", default-features = false } [dev-dependencies] futures = "0.3.12" hex-literal = "0.3.1" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-support-test = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master" } serde_json = "1.0.61" libsecp256k1 = "0.3.5" -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master"} [features] diff --git a/runtime/polkadot/Cargo.toml b/runtime/polkadot/Cargo.toml index 83ec2d4bde99..1dc4c5f615fb 100644 --- a/runtime/polkadot/Cargo.toml +++ b/runtime/polkadot/Cargo.toml @@ -15,61 +15,61 @@ serde_derive = { version = "1.0.117", optional = true } static_assertions = "1.1.0" smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-bounties = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-tips = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-bounties = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -79,8 +79,8 @@ primitives = { package = "polkadot-primitives", path = "../../primitives", defau hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } trie-db = "0.22.3" serde_json = "1.0.61" separator = "0.4.1" diff --git a/runtime/rococo/Cargo.toml b/runtime/rococo/Cargo.toml index 4b7b07c922a8..b109aa2b46f1 100644 --- a/runtime/rococo/Cargo.toml +++ b/runtime/rococo/Cargo.toml @@ -13,42 +13,42 @@ smallvec = "1.6.1" hex-literal = "0.3.1" log = { version = "0.4.14", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "master" } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } diff --git a/runtime/test-runtime/Cargo.toml b/runtime/test-runtime/Cargo.toml index 4461ad1d64b9..b1cb371d96ac 100644 --- a/runtime/test-runtime/Cargo.toml +++ b/runtime/test-runtime/Cargo.toml @@ -14,43 +14,43 @@ serde = { version = "1.0.123", default-features = false } serde_derive = { version = "1.0.117", optional = true } smallvec = "1.6.1" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-election-provider-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-election-provider-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "master" } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } primitives = { package = "polkadot-primitives", path = "../../primitives", default-features = false } @@ -61,8 +61,8 @@ polkadot-runtime-parachains = { path = "../parachains", default-features = false hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } serde_json = "1.0.61" [build-dependencies] diff --git a/runtime/westend/Cargo.toml b/runtime/westend/Cargo.toml index 56d197475f99..183c5453a15e 100644 --- a/runtime/westend/Cargo.toml +++ b/runtime/westend/Cargo.toml @@ -15,62 +15,62 @@ serde_derive = { version = "1.0.117", optional = true } smallvec = "1.6.1" static_assertions = "1.1.0" -authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +inherents = { package = "sp-inherents", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-std = { package = "sp-std", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +tx-pool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-babe = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-elections-phragmen = { package = "pallet-elections-phragmen", git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-identity = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-im-online = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-indices = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-membership = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-nicks = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-offences = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-recovery = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-society = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system = {git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -pallet-vesting = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-elections-phragmen = { package = "pallet-elections-phragmen", git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-nicks = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-recovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-society = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-staking-reward-curve = { package = "pallet-staking-reward-curve", git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system = {git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } -pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "ser-instrument" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } +pallet-session-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } hex-literal = { version = "0.3.1", optional = true } runtime-common = { package = "polkadot-runtime-common", path = "../common", default-features = false } @@ -82,8 +82,8 @@ runtime-parachains = { package = "polkadot-runtime-parachains", path = "../parac hex-literal = "0.3.1" libsecp256k1 = "0.3.5" tiny-keccak = "2.0.2" -keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" } serde_json = "1.0.61" [build-dependencies] diff --git a/statement-table/Cargo.toml b/statement-table/Cargo.toml index a454335d5d22..1827b483cfbc 100644 --- a/statement-table/Cargo.toml +++ b/statement-table/Cargo.toml @@ -6,5 +6,5 @@ edition = "2018" [dependencies] parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "ser-instrument" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } primitives = { package = "polkadot-primitives", path = "../primitives" } diff --git a/xcm/xcm-builder/Cargo.toml b/xcm/xcm-builder/Cargo.toml index 1937491e2721..fc57e0f1fc8c 100644 --- a/xcm/xcm-builder/Cargo.toml +++ b/xcm/xcm-builder/Cargo.toml @@ -9,11 +9,11 @@ version = "0.8.22" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } xcm-executor = { path = "../xcm-executor", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } # Polkadot dependencies polkadot-parachain = { path = "../../parachain", default-features = false } diff --git a/xcm/xcm-executor/Cargo.toml b/xcm/xcm-executor/Cargo.toml index 15682fa3827f..2dfacf0c2291 100644 --- a/xcm/xcm-executor/Cargo.toml +++ b/xcm/xcm-executor/Cargo.toml @@ -9,12 +9,12 @@ version = "0.8.22" impl-trait-for-tuples = "0.2.0" parity-scale-codec = { version = "2.0.0", default-features = false, features = ["derive"] } xcm = { path = "..", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "ser-instrument" } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } log = { version = "0.4.14", default-features = false } [features] From 3939d916980900b3123b5f4d84b120091eb1f277 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 09:38:42 +0000 Subject: [PATCH 29/50] Sync version of wasmtime --- node/core/pvf/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/Cargo.toml b/node/core/pvf/Cargo.toml index 61a0eb9cda6a..c0fdbba9c49e 100644 --- a/node/core/pvf/Cargo.toml +++ b/node/core/pvf/Cargo.toml @@ -50,4 +50,4 @@ tempfile = "3.2.0" # # Another safeguard is a test `ensure_wasmtime_version` that will fail on each bump and prompt the # developer to correspondingly act upon the change. -wasmtime-jit = "0.22" +wasmtime-jit = "0.24" From 2e1423d7eb7bad642de6c1e77b7f63a6a7918970 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 09:54:06 +0000 Subject: [PATCH 30/50] Update cargo.lock --- Cargo.lock | 360 ++++++++--------------------------------------------- 1 file changed, 53 insertions(+), 307 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40d36d3f2899..9f2bc6071a24 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -420,7 +420,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.23.0", + "object", "rustc-demangle", ] @@ -1059,42 +1059,13 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d375c433320f6c5057ae04a04376eef4d04ce2801448cf8863a78da99107be4" -[[package]] -name = "cranelift-bforest" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4066fd63b502d73eb8c5fa6bcab9c7962b05cd580f6b149ee83a8e730d8ce7fb" -dependencies = [ - "cranelift-entity 0.69.0", -] - [[package]] name = "cranelift-bforest" version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcee7a5107071484772b89fdf37f0f460b7db75f476e43ea7a684fd942470bcf" dependencies = [ - "cranelift-entity 0.71.0", -] - -[[package]] -name = "cranelift-codegen" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a54e4beb833a3c873a18a8fe735d73d732044004c7539a072c8faa35ccb0c60" -dependencies = [ - "byteorder", - "cranelift-bforest 0.69.0", - "cranelift-codegen-meta 0.69.0", - "cranelift-codegen-shared 0.69.0", - "cranelift-entity 0.69.0", - "gimli", - "log", - "regalloc", - "serde", - "smallvec 1.6.1", - "target-lexicon", - "thiserror", + "cranelift-entity", ] [[package]] @@ -1104,10 +1075,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "654ab96f0f1cab71c0d323618a58360a492da2c341eb2c1f977fc195c664001b" dependencies = [ "byteorder", - "cranelift-bforest 0.71.0", - "cranelift-codegen-meta 0.71.0", - "cranelift-codegen-shared 0.71.0", - "cranelift-entity 0.71.0", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", "gimli", "log", "regalloc", @@ -1117,32 +1088,16 @@ dependencies = [ "thiserror", ] -[[package]] -name = "cranelift-codegen-meta" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54cac7cacb443658d8f0ff36a3545822613fa202c946c0891897843bc933810" -dependencies = [ - "cranelift-codegen-shared 0.69.0", - "cranelift-entity 0.69.0", -] - [[package]] name = "cranelift-codegen-meta" version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65994cfc5be9d5fd10c5fc30bcdddfa50c04bb79c91329287bff846434ff8f14" dependencies = [ - "cranelift-codegen-shared 0.71.0", - "cranelift-entity 0.71.0", + "cranelift-codegen-shared", + "cranelift-entity", ] -[[package]] -name = "cranelift-codegen-shared" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a109760aff76788b2cdaeefad6875a73c2b450be13906524f6c2a81e05b8d83c" - [[package]] name = "cranelift-codegen-shared" version = "0.71.0" @@ -1152,15 +1107,6 @@ dependencies = [ "serde", ] -[[package]] -name = "cranelift-entity" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b044234aa32531f89a08b487630ddc6744696ec04c8123a1ad388de837f5de3" -dependencies = [ - "serde", -] - [[package]] name = "cranelift-entity" version = "0.71.0" @@ -1170,83 +1116,43 @@ dependencies = [ "serde", ] -[[package]] -name = "cranelift-frontend" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5452b3e4e97538ee5ef2cc071301c69a86c7adf2770916b9d04e9727096abd93" -dependencies = [ - "cranelift-codegen 0.69.0", - "log", - "smallvec 1.6.1", - "target-lexicon", -] - [[package]] name = "cranelift-frontend" version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6f41e2f9b57d2c030e249d0958f1cdc2c3cd46accf8c0438b3d1944e9153444" dependencies = [ - "cranelift-codegen 0.71.0", + "cranelift-codegen", "log", "smallvec 1.6.1", "target-lexicon", ] -[[package]] -name = "cranelift-native" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68035c10b2e80f26cc29c32fa824380877f38483504c2a47b54e7da311caaf3" -dependencies = [ - "cranelift-codegen 0.69.0", - "raw-cpuid", - "target-lexicon", -] - [[package]] name = "cranelift-native" version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aab70ba7575665375d31cbdea2462916ce58be887834e1b83c860b43b51af637" dependencies = [ - "cranelift-codegen 0.71.0", + "cranelift-codegen", "target-lexicon", ] -[[package]] -name = "cranelift-wasm" -version = "0.69.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a530eb9d1c95b3309deb24c3d179d8b0ba5837ed98914a429787c395f614949d" -dependencies = [ - "cranelift-codegen 0.69.0", - "cranelift-entity 0.69.0", - "cranelift-frontend 0.69.0", - "itertools 0.9.0", - "log", - "serde", - "smallvec 1.6.1", - "thiserror", - "wasmparser 0.71.0", -] - [[package]] name = "cranelift-wasm" version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2fc3d2e70da6439adf97648dcdf81834363154f2907405345b6fbe7ca38918c" dependencies = [ - "cranelift-codegen 0.71.0", - "cranelift-entity 0.71.0", - "cranelift-frontend 0.71.0", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", "itertools 0.10.0", "log", "serde", "smallvec 1.6.1", "thiserror", - "wasmparser 0.76.0", + "wasmparser", ] [[package]] @@ -4390,16 +4296,6 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" -dependencies = [ - "crc32fast", - "indexmap", -] - [[package]] name = "object" version = "0.23.0" @@ -6018,7 +5914,7 @@ dependencies = [ "test-parachain-adder", "test-parachain-halt", "tracing", - "wasmtime-jit 0.22.0", + "wasmtime-jit", ] [[package]] @@ -7145,17 +7041,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-cpuid" -version = "8.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73" -dependencies = [ - "bitflags", - "cc", - "rustc_version", -] - [[package]] name = "rawpointer" version = "0.2.1" @@ -10972,12 +10857,6 @@ dependencies = [ "parity-wasm 0.41.0", ] -[[package]] -name = "wasmparser" -version = "0.71.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1" - [[package]] name = "wasmparser" version = "0.76.0" @@ -11004,13 +10883,13 @@ dependencies = [ "serde", "smallvec 1.6.1", "target-lexicon", - "wasmparser 0.76.0", + "wasmparser", "wasmtime-cache", - "wasmtime-environ 0.24.0", + "wasmtime-environ", "wasmtime-fiber", - "wasmtime-jit 0.24.0", - "wasmtime-profiling 0.24.0", - "wasmtime-runtime 0.24.0", + "wasmtime-jit", + "wasmtime-profiling", + "wasmtime-runtime", "wat", "winapi 0.3.9", ] @@ -11036,47 +10915,18 @@ dependencies = [ "zstd", ] -[[package]] -name = "wasmtime-cranelift" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4134ed3a4316cd0de0e546c6004850afe472b0fa3fcdc2f2c15f8d449562d962" -dependencies = [ - "cranelift-codegen 0.69.0", - "cranelift-entity 0.69.0", - "cranelift-frontend 0.69.0", - "cranelift-wasm 0.69.0", - "wasmtime-environ 0.22.0", -] - [[package]] name = "wasmtime-cranelift" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a05abbf94e03c2c8ee02254b1949320c4d45093de5d9d6ed4d9351d536075c9" dependencies = [ - "cranelift-codegen 0.71.0", - "cranelift-entity 0.71.0", - "cranelift-frontend 0.71.0", - "cranelift-wasm 0.71.0", - "wasmparser 0.76.0", - "wasmtime-environ 0.24.0", -] - -[[package]] -name = "wasmtime-debug" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91fa931df6dd8af2b02606307674d3bad23f55473d5f4c809dddf7e4c4dc411" -dependencies = [ - "anyhow", - "gimli", - "more-asserts", - "object 0.22.0", - "target-lexicon", - "thiserror", - "wasmparser 0.71.0", - "wasmtime-environ 0.22.0", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-wasm", + "wasmparser", + "wasmtime-environ", ] [[package]] @@ -11088,31 +10938,11 @@ dependencies = [ "anyhow", "gimli", "more-asserts", - "object 0.23.0", + "object", "target-lexicon", "thiserror", - "wasmparser 0.76.0", - "wasmtime-environ 0.24.0", -] - -[[package]] -name = "wasmtime-environ" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1098871dc3120aaf8190d79153e470658bb79f63ee9ca31716711e123c28220" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "cranelift-codegen 0.69.0", - "cranelift-entity 0.69.0", - "cranelift-wasm 0.69.0", - "gimli", - "indexmap", - "log", - "more-asserts", - "serde", - "thiserror", - "wasmparser 0.71.0", + "wasmparser", + "wasmtime-environ", ] [[package]] @@ -11123,16 +10953,16 @@ checksum = "81011b2b833663d7e0ce34639459a0e301e000fc7331e0298b3a27c78d0cec60" dependencies = [ "anyhow", "cfg-if 1.0.0", - "cranelift-codegen 0.71.0", - "cranelift-entity 0.71.0", - "cranelift-wasm 0.71.0", + "cranelift-codegen", + "cranelift-entity", + "cranelift-wasm", "gimli", "indexmap", "log", "more-asserts", "serde", "thiserror", - "wasmparser 0.76.0", + "wasmparser", ] [[package]] @@ -11146,38 +10976,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "wasmtime-jit" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738bfcd1561ede8bb174215776fd7d9a95d5f0a47ca3deabe0282c55f9a89f68" -dependencies = [ - "addr2line", - "anyhow", - "cfg-if 1.0.0", - "cranelift-codegen 0.69.0", - "cranelift-entity 0.69.0", - "cranelift-frontend 0.69.0", - "cranelift-native 0.69.0", - "cranelift-wasm 0.69.0", - "gimli", - "log", - "more-asserts", - "object 0.22.0", - "region", - "serde", - "target-lexicon", - "thiserror", - "wasmparser 0.71.0", - "wasmtime-cranelift 0.22.0", - "wasmtime-debug 0.22.0", - "wasmtime-environ 0.22.0", - "wasmtime-obj 0.22.0", - "wasmtime-profiling 0.22.0", - "wasmtime-runtime 0.22.0", - "winapi 0.3.9", -] - [[package]] name = "wasmtime-jit" version = "0.24.0" @@ -11187,44 +10985,30 @@ dependencies = [ "addr2line", "anyhow", "cfg-if 1.0.0", - "cranelift-codegen 0.71.0", - "cranelift-entity 0.71.0", - "cranelift-frontend 0.71.0", - "cranelift-native 0.71.0", - "cranelift-wasm 0.71.0", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", "gimli", "log", "more-asserts", - "object 0.23.0", + "object", "rayon", "region", "serde", "target-lexicon", "thiserror", - "wasmparser 0.76.0", - "wasmtime-cranelift 0.24.0", - "wasmtime-debug 0.24.0", - "wasmtime-environ 0.24.0", - "wasmtime-obj 0.24.0", - "wasmtime-profiling 0.24.0", - "wasmtime-runtime 0.24.0", + "wasmparser", + "wasmtime-cranelift", + "wasmtime-debug", + "wasmtime-environ", + "wasmtime-obj", + "wasmtime-profiling", + "wasmtime-runtime", "winapi 0.3.9", ] -[[package]] -name = "wasmtime-obj" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e96d77f1801131c5e86d93e42a3cf8a35402107332c202c245c83f34888a906" -dependencies = [ - "anyhow", - "more-asserts", - "object 0.22.0", - "target-lexicon", - "wasmtime-debug 0.22.0", - "wasmtime-environ 0.22.0", -] - [[package]] name = "wasmtime-obj" version = "0.24.0" @@ -11233,26 +11017,10 @@ checksum = "ef2e99cd9858f57fd062e9351e07881cedfc8597928385e02a48d9333b9e15a1" dependencies = [ "anyhow", "more-asserts", - "object 0.23.0", + "object", "target-lexicon", - "wasmtime-debug 0.24.0", - "wasmtime-environ 0.24.0", -] - -[[package]] -name = "wasmtime-profiling" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60bb672c9d894776d7b9250dd9b4fe890f8760201ee4f53e5f2da772b6c4debb" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "lazy_static", - "libc", - "serde", - "target-lexicon", - "wasmtime-environ 0.22.0", - "wasmtime-runtime 0.22.0", + "wasmtime-debug", + "wasmtime-environ", ] [[package]] @@ -11266,34 +11034,12 @@ dependencies = [ "gimli", "lazy_static", "libc", - "object 0.23.0", + "object", "scroll", "serde", "target-lexicon", - "wasmtime-environ 0.24.0", - "wasmtime-runtime 0.24.0", -] - -[[package]] -name = "wasmtime-runtime" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978086740949eeedfefcee667b57a9e98d9a7fc0de382fcfa0da30369e3530d" -dependencies = [ - "backtrace", - "cc", - "cfg-if 1.0.0", - "indexmap", - "lazy_static", - "libc", - "log", - "memoffset 0.6.1", - "more-asserts", - "psm", - "region", - "thiserror", - "wasmtime-environ 0.22.0", - "winapi 0.3.9", + "wasmtime-environ", + "wasmtime-runtime", ] [[package]] @@ -11314,7 +11060,7 @@ dependencies = [ "psm", "region", "thiserror", - "wasmtime-environ 0.24.0", + "wasmtime-environ", "winapi 0.3.9", ] From d81f29f4aa3c5635bd4e1fe855be86bad365a38c Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 10:09:18 +0000 Subject: [PATCH 31/50] Update Substrate --- Cargo.lock | 314 +++++++++++++++++++++++++++-------------------------- 1 file changed, 158 insertions(+), 156 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9f2bc6071a24..4e3afc4cdb3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1767,7 +1767,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", ] @@ -1785,7 +1785,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -1804,7 +1804,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "Inflector", "chrono", @@ -1827,7 +1827,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -1840,7 +1840,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -1856,7 +1856,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "serde", @@ -1867,7 +1867,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "bitflags", "frame-metadata", @@ -1893,7 +1893,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1905,7 +1905,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -1917,7 +1917,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro2", "quote", @@ -1927,7 +1927,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-metadata", "frame-support", @@ -1948,7 +1948,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1965,7 +1965,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -1979,7 +1979,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-api", @@ -1988,7 +1988,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "parity-scale-codec", @@ -3014,13 +3014,14 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1d8440e2617bdebdf45114e90f65aed3f14bf73e23d874dde8e4b764676fe9" +checksum = "9b15fc3a0ef2e02d770aa1a221d3412443dcaedc43e27d80c957dd5bbd65321b" dependencies = [ "async-trait", "futures 0.3.13", "hyper 0.13.9", + "hyper-rustls", "jsonrpsee-types", "jsonrpsee-utils", "log", @@ -3033,9 +3034,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb3f732ccbeafd15cefb59c7c7b5ac6c553c2653613b63e5e7feb7f06a219e9" +checksum = "6bb4afbda476e2ee11cc6245055c498c116fc8002d2d60fe8338b6ee15d84c3a" dependencies = [ "Inflector", "proc-macro2", @@ -3045,9 +3046,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8cd20c190e75dc56f7543b9d5713c3186351b301b5507ea6b85d8c403aac78" +checksum = "c42a82588b5f7830e94341bb7e79d15f46070ab6f64dde1e3b3719721b61c5bf" dependencies = [ "async-trait", "futures 0.3.13", @@ -3060,9 +3061,9 @@ dependencies = [ [[package]] name = "jsonrpsee-utils" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51670a3b56e5fb0d325920ce317c76184b8afabfd7bc5009831229cfef0732b" +checksum = "e65c77838fce96bc554b4a3a159d0b9a2497319ae9305c66ee853998c7ed2fd3" dependencies = [ "futures 0.3.13", "globset", @@ -4369,7 +4370,7 @@ checksum = "13370dae44474229701bb69b90b4f4dca6404cb0357a2d50d635f1171dc3aa7b" [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4385,7 +4386,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4400,7 +4401,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4424,7 +4425,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4454,7 +4455,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4469,7 +4470,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4486,7 +4487,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4501,7 +4502,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4522,7 +4523,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4538,7 +4539,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4560,7 +4561,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4576,7 +4577,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4596,7 +4597,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4613,7 +4614,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4627,7 +4628,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4645,7 +4646,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4661,7 +4662,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4679,7 +4680,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4695,7 +4696,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4709,7 +4710,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4725,7 +4726,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4747,7 +4748,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4763,7 +4764,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4776,7 +4777,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "enumflags2", "frame-support", @@ -4791,7 +4792,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4807,7 +4808,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4827,7 +4828,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4843,7 +4844,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4857,7 +4858,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4881,7 +4882,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4892,7 +4893,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4906,7 +4907,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4925,7 +4926,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -4940,7 +4941,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-support", "frame-system", @@ -4956,7 +4957,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4973,7 +4974,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4984,7 +4985,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -5000,7 +5001,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-benchmarking", "frame-support", @@ -5016,7 +5017,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7205,7 +7206,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "env_logger 0.8.2", "hex-literal", @@ -7478,7 +7479,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "derive_more", @@ -7506,7 +7507,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -7529,7 +7530,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7545,7 +7546,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7566,7 +7567,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7577,7 +7578,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "chrono", "fdlimit", @@ -7615,7 +7616,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "fnv", @@ -7649,7 +7650,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "blake2-rfc", "hash-db", @@ -7679,7 +7680,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7691,7 +7692,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "derive_more", @@ -7738,7 +7739,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "futures 0.3.13", @@ -7762,7 +7763,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7775,7 +7776,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "futures 0.3.13", @@ -7802,7 +7803,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "sc-client-api", @@ -7816,7 +7817,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "lazy_static", @@ -7845,11 +7846,12 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "parity-scale-codec", "parity-wasm 0.41.0", + "pwasm-utils", "sp-allocator", "sp-core", "sp-serializer", @@ -7861,7 +7863,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "parity-scale-codec", @@ -7876,7 +7878,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "parity-scale-codec", @@ -7894,7 +7896,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "derive_more", @@ -7934,7 +7936,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "finality-grandpa", @@ -7958,7 +7960,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "futures 0.3.13", @@ -7979,7 +7981,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "ansi_term 0.12.1", "futures 0.3.13", @@ -7997,7 +7999,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "derive_more", @@ -8017,7 +8019,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "hash-db", "lazy_static", @@ -8036,7 +8038,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-std", "async-trait", @@ -8089,7 +8091,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -8106,7 +8108,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "bytes 0.5.6", "fnv", @@ -8134,7 +8136,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "libp2p", @@ -8147,7 +8149,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8156,7 +8158,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "hash-db", @@ -8190,7 +8192,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "futures 0.3.13", @@ -8214,7 +8216,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.1.29", "jsonrpc-core", @@ -8232,7 +8234,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "directories", @@ -8296,7 +8298,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "parity-scale-codec", @@ -8311,7 +8313,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8331,7 +8333,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "chrono", "futures 0.3.13", @@ -8351,7 +8353,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8378,7 +8380,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8389,7 +8391,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "futures 0.3.13", @@ -8411,7 +8413,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "futures-diagnose", @@ -8832,7 +8834,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "sp-core", @@ -8844,7 +8846,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "hash-db", "log", @@ -8861,7 +8863,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8873,7 +8875,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "serde", @@ -8885,7 +8887,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "integer-sqrt", "num-traits", @@ -8898,7 +8900,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-api", @@ -8910,7 +8912,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8921,7 +8923,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-api", @@ -8933,7 +8935,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "log", @@ -8951,7 +8953,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "serde", "serde_json", @@ -8960,7 +8962,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "futures 0.3.13", @@ -8987,7 +8989,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "merlin", "parity-scale-codec", @@ -9008,7 +9010,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9018,7 +9020,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9030,7 +9032,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "base58", "blake2-rfc", @@ -9074,7 +9076,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9083,7 +9085,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro2", "quote", @@ -9093,7 +9095,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "environmental", "parity-scale-codec", @@ -9104,7 +9106,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "finality-grandpa", "log", @@ -9121,7 +9123,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -9133,7 +9135,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "hash-db", @@ -9157,7 +9159,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "lazy_static", "sp-core", @@ -9168,7 +9170,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "derive_more", @@ -9185,7 +9187,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "serde", @@ -9198,7 +9200,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -9209,7 +9211,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "sp-api", "sp-core", @@ -9219,7 +9221,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "backtrace", ] @@ -9227,7 +9229,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "serde", "sp-core", @@ -9236,7 +9238,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "either", "hash256-std-hasher", @@ -9257,7 +9259,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9274,7 +9276,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9286,7 +9288,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "serde", "serde_json", @@ -9295,7 +9297,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-api", @@ -9308,7 +9310,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9318,7 +9320,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "hash-db", "log", @@ -9340,12 +9342,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9358,7 +9360,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "sp-core", @@ -9371,7 +9373,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "parity-scale-codec", "sp-api", @@ -9384,7 +9386,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "log", "parity-scale-codec", @@ -9397,7 +9399,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "derive_more", "futures 0.3.13", @@ -9413,7 +9415,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "hash-db", "memory-db", @@ -9427,7 +9429,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "futures-core", @@ -9439,7 +9441,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9451,7 +9453,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9608,7 +9610,7 @@ dependencies = [ [[package]] name = "substrate-browser-utils" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "chrono", "console_error_panic_hook", @@ -9634,7 +9636,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "platforms", ] @@ -9642,7 +9644,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.13", @@ -9665,7 +9667,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-std", "derive_more", @@ -9679,7 +9681,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "async-trait", "futures 0.1.29", @@ -9708,7 +9710,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "futures 0.3.13", "substrate-test-utils-derive", @@ -9718,7 +9720,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "proc-macro-crate 1.0.0", "quote", @@ -10460,7 +10462,7 @@ checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate#14b3030f92546ad2cece4f1d060cbcf6edfd21e5" +source = "git+https://github.com/paritytech/substrate#4cdecafbea7abd133a2b8a8f95ceb807ca3d5e44" dependencies = [ "frame-try-runtime", "log", From 6485b99b572112ef4fd90e8455498cfda29883a5 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 10:25:32 +0000 Subject: [PATCH 32/50] Merge fixes still --- node/core/candidate-validation/src/lib.rs | 15 +++++++-------- node/service/src/lib.rs | 3 --- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/node/core/candidate-validation/src/lib.rs b/node/core/candidate-validation/src/lib.rs index be69a9f0838a..12f676709f05 100644 --- a/node/core/candidate-validation/src/lib.rs +++ b/node/core/candidate-validation/src/lib.rs @@ -1020,19 +1020,18 @@ mod tests { ); assert_matches!(check, Err(InvalidCandidate::CodeHashMismatch)); - let v = validate_candidate_exhaustive::( - MockValidationArg { - result: Err(ValidationError::InvalidCandidate( - WasmInvalidCandidate::BadReturn - )) - }, + let v = executor::block_on(validate_candidate_exhaustive( + MockValidatorBackend::with_hardcoded_result( + Err(ValidationError::InvalidCandidate(WasmInvalidCandidate::HardTimeout)), + ), validation_data, validation_code, descriptor, Arc::new(pov), - TaskExecutor::new(), &Default::default(), - ).unwrap(); + )) + .unwrap() + .unwrap(); assert_matches!(v, ValidationResult::Invalid(InvalidCandidate::CodeHashMismatch)); } diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 728d76f7642a..bb19fafdcf1c 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -427,7 +427,6 @@ fn real_overseer( registry: Option<&Registry>, spawner: Spawner, _: IsCollator, - _: ApprovalVotingConfig, _: CandidateValidationConfig, ) -> Result<(Overseer, OverseerHandler), Error> where @@ -457,7 +456,6 @@ fn real_overseer( registry: Option<&Registry>, spawner: Spawner, is_collator: IsCollator, - approval_voting_config: ApprovalVotingConfig, candidate_validation_config: CandidateValidationConfig, ) -> Result<(Overseer, OverseerHandler), Error> where @@ -962,7 +960,6 @@ pub fn new_full( prometheus_registry.as_ref(), spawner, is_collator, - approval_voting_config, candidate_validation_config, )?; let overseer_handler_clone = overseer_handler.clone(); From 0d6bce6e10f7d9b66d9d6d993ef4de2b5dfa77fb Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Wed, 7 Apr 2021 10:41:55 +0000 Subject: [PATCH 33/50] Update wasmtime version in test --- node/core/pvf/src/artifacts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index e76b5e002299..947b6acb20d4 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -283,7 +283,7 @@ mod tests { fn ensure_wasmtime_version() { assert_eq!( wasmtime_jit::VERSION, - "0.22.0", + "0.24.0", "wasmtime version is updated. Check the prefix.", ); // If the version bump is significant, change `ArtifactId::PREFIX`. From 4307e46da443717b15d68c9b7a3ce66a7c1cfdc1 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:49:55 +0300 Subject: [PATCH 34/50] bastifmt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- node/core/pvf/src/artifacts.rs | 3 +-- node/core/pvf/src/execute/worker.rs | 13 +++++-------- node/core/pvf/src/prepare/worker.rs | 6 ++---- node/core/pvf/src/priority.rs | 8 ++++---- node/core/pvf/src/worker_common.rs | 3 +-- 5 files changed, 13 insertions(+), 20 deletions(-) diff --git a/node/core/pvf/src/artifacts.rs b/node/core/pvf/src/artifacts.rs index 947b6acb20d4..be7cad57fd16 100644 --- a/node/core/pvf/src/artifacts.rs +++ b/node/core/pvf/src/artifacts.rs @@ -176,8 +176,7 @@ impl Artifacts { for (k, v) in self.artifacts.iter() { if let ArtifactState::Prepared { last_time_needed, .. - } = *v - { + } = *v { if now .duration_since(last_time_needed) .map(|age| age > artifact_ttl) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 0095266a29b9..caedc928f2a7 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -84,7 +84,7 @@ pub async fn start_work( ) -> Outcome { let IdleWorker { mut stream, pid } = worker; - if let Err(_err) = send_request(&mut stream, &artifact_path, &validation_params).await { + if send_request(&mut stream, &artifact_path, &validation_params).await.is_err() { return Outcome::IoErr; } @@ -124,8 +124,7 @@ async fn send_request( validation_params: &[u8], ) -> io::Result<()> { framed_send(stream, path_to_bytes(artifact_path)).await?; - framed_send(stream, validation_params).await?; - Ok(()) + framed_send(stream, validation_params).await } async fn recv_request(stream: &mut UnixStream) -> io::Result<(PathBuf, Vec)> { @@ -141,19 +140,17 @@ async fn recv_request(stream: &mut UnixStream) -> io::Result<(PathBuf, Vec)> } async fn send_response(stream: &mut UnixStream, response: Response) -> io::Result<()> { - framed_send(stream, &response.encode()).await?; - Ok(()) + framed_send(stream, &response.encode()).await } async fn recv_response(stream: &mut UnixStream) -> io::Result { let response_bytes = framed_recv(stream).await?; - let response = Response::decode(&mut &response_bytes[..]).map_err(|e| { + Response::decode(&mut &response_bytes[..]).map_err(|e| { io::Error::new( io::ErrorKind::Other, format!("execute pvf recv_response: decode error: {:?}", e), ) - })?; - Ok(response) + }) } #[derive(Encode, Decode)] diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 40a5a5cc3107..d17e55136d5d 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -129,13 +129,11 @@ pub async fn start_work( } async fn send_request(stream: &mut UnixStream, code: Arc>) -> io::Result<()> { - framed_send(stream, &*code).await?; - Ok(()) + framed_send(stream, &*code).await? } async fn recv_request(stream: &mut UnixStream) -> io::Result> { - let code = framed_recv(stream).await?; - Ok(code) + framed_recv(stream).await } pub fn bump_priority(handle: &WorkerHandle) { diff --git a/node/core/pvf/src/priority.rs b/node/core/pvf/src/priority.rs index a52e1bcf4a7b..8ba7b3907257 100644 --- a/node/core/pvf/src/priority.rs +++ b/node/core/pvf/src/priority.rs @@ -35,12 +35,12 @@ pub enum Priority { impl Priority { /// Returns `true` if `self` is `Crticial` - pub fn is_critical(&self) -> bool { - *self == Priority::Critical + pub fn is_critical(self) -> bool { + self == Priority::Critical } /// Returns `true` if `self` is `Background` - pub fn is_background(&self) -> bool { - *self == Priority::Background + pub fn is_background(self) -> bool { + self == Priority::Background } } diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index 22a999e4646b..e7a84956131e 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -251,8 +251,7 @@ pub fn path_to_bytes(path: &Path) -> &[u8] { /// Interprets the given bytes as a path. Returns `None` if the given bytes do not constitute a /// a proper utf-8 string. pub fn bytes_to_path(bytes: &[u8]) -> Option { - let str_buf = std::str::from_utf8(bytes).ok()?; - Some(PathBuf::from(str_buf)) + std::str::from_utf8(bytes).ok().map(PathBuf::from) } pub async fn framed_send(w: &mut (impl AsyncWrite + Unpin), buf: &[u8]) -> io::Result<()> { From 5be5c5c52fabfcd16b645265eb39f17860e6be7f Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 09:17:21 +0000 Subject: [PATCH 35/50] Squash spaces --- node/core/candidate-validation/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/candidate-validation/src/lib.rs b/node/core/candidate-validation/src/lib.rs index 12f676709f05..ff1ef3118f5b 100644 --- a/node/core/candidate-validation/src/lib.rs +++ b/node/core/candidate-validation/src/lib.rs @@ -868,7 +868,7 @@ mod tests { #[async_trait] impl ValidationBackend for MockValidatorBackend { - async fn validate_candidate( + async fn validate_candidate( &self, _validation_code: ValidationCode, _params: ValidationParams From fc71fa3a34d5472be0e3963af879c3660ed4fab9 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 09:47:47 +0000 Subject: [PATCH 36/50] Trailing new line for testing.rs --- node/core/pvf/src/testing.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/testing.rs b/node/core/pvf/src/testing.rs index 2288c259ba8c..7383b3136951 100644 --- a/node/core/pvf/src/testing.rs +++ b/node/core/pvf/src/testing.rs @@ -67,4 +67,4 @@ macro_rules! decl_puppet_worker_main { } } }; -} \ No newline at end of file +} From f90876e68f43379c44bdf094a5ba5b5bf835d8a8 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 10:04:17 +0000 Subject: [PATCH 37/50] Remove controversial code --- node/core/pvf/src/prepare/queue.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index 0f463235875d..93daf447907b 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -129,7 +129,7 @@ impl Unscheduled { fn next(&mut self) -> Option { let mut check = |prio: Priority| self.queue_mut(prio).pop_front(); - None.or_else(|| check(Priority::Critical)) + check(Priority::Critical) .or_else(|| check(Priority::Normal)) .or_else(|| check(Priority::Background)) } From b878844a93ffd2e8b43594d4128c1b03cae40639 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 10:05:42 +0000 Subject: [PATCH 38/50] comment about biasing --- node/core/pvf/src/host.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index c49631406c31..302eb382ed28 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -307,6 +307,7 @@ async fn run( let mut sweeper = sweeper.fuse(); loop { + // biased to make it behave deterministically for tests. futures::select_biased! { _ = prepare_queue => { never!("prepare_pool: long-running task never concludes; qed"); From 4b1d1be70fee44b5df343b38a2763c869fd3f74b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 10:21:55 +0000 Subject: [PATCH 39/50] Fix suggestion --- node/core/pvf/src/prepare/worker.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index d17e55136d5d..afa3d393d531 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -129,7 +129,7 @@ pub async fn start_work( } async fn send_request(stream: &mut UnixStream, code: Arc>) -> io::Result<()> { - framed_send(stream, &*code).await? + framed_send(stream, &*code).await } async fn recv_request(stream: &mut UnixStream) -> io::Result> { From 26ed193d000c33dc4da0084f4022c9e21334fde9 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 11:03:40 +0000 Subject: [PATCH 40/50] Add comments --- node/core/pvf/src/execute/worker.rs | 2 ++ node/core/pvf/src/prepare/worker.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index caedc928f2a7..21d0d19deab7 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -77,6 +77,8 @@ pub enum Outcome { IoErr, } +/// Given the idle token of a worker and parameters of work, communicates with the worker and +/// returns the outcome. pub async fn start_work( worker: IdleWorker, artifact_path: PathBuf, diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index afa3d393d531..291b7e61db7f 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -65,6 +65,8 @@ pub enum Outcome { DidntMakeIt, } +/// Given the idle token of a worker and parameters of work, communicates with the worker and +/// returns the outcome. pub async fn start_work( worker: IdleWorker, code: Arc>, From 8db420e86f9425e84e8cdb52d0dba84cdda18bbb Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 11:09:53 +0000 Subject: [PATCH 41/50] make it more clear why unwrap_err --- node/core/pvf/src/worker_common.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index e7a84956131e..d991cd3f563f 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -108,15 +108,13 @@ where F: FnMut(UnixStream) -> Fut, Fut: futures::Future>, { - let err = async_std::task::block_on::<_, io::Result<()>>(async move { + let err = async_std::task::block_on::<_, io::Result>(async move { let stream = UnixStream::connect(socket_path).await?; let _ = async_std::fs::remove_file(socket_path).await; - event_loop(stream).await?; - - Ok(()) + event_loop(stream).await }) - .unwrap_err(); + .unwrap_err(); // it's never `Ok` because it's `Ok(Never)` tracing::debug!( target: LOG_TARGET, From 7842469995db133fedc2fbbcef0204077ece3888 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 11:55:50 +0000 Subject: [PATCH 42/50] tmpfile retry --- node/core/pvf/src/prepare/worker.rs | 2 +- node/core/pvf/src/worker_common.rs | 61 ++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index 291b7e61db7f..bb6ae6f38cf4 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -163,7 +163,7 @@ pub fn worker_entrypoint(socket_path: &str) { let artifact_bytes = prepare_artifact(&code).serialize(); // Write the serialized artifact into into a temp file. - let dest = tmpfile("prepare-artifact-"); + let dest = tmpfile("prepare-artifact-").await?; async_std::fs::write(&dest, &artifact_bytes).await?; // Communicate the results back to the host. diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index d991cd3f563f..eb7cf5d85bb2 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -68,12 +68,14 @@ pub async fn spawn_with_program_path( .await } -async fn with_transient_socket_path(debug_id: &'static str, f: F) -> R +async fn with_transient_socket_path(debug_id: &'static str, f: F) -> Result where F: FnOnce(&Path) -> Fut, - Fut: futures::Future + 'static, + Fut: futures::Future> + 'static, { - let socket_path = tmpfile(&format!("pvf-host-{}", debug_id)); + let socket_path = tmpfile(&format!("pvf-host-{}", debug_id)) + .await + .map_err(|_| SpawnErr::TmpFile)?; let result = f(&socket_path).await; // Best effort to remove the socket file. Under normal circumstances the socket will be removed @@ -83,24 +85,45 @@ where result } -pub fn tmpfile(prefix: &str) -> PathBuf { - use rand::distributions::Alphanumeric; - - const DESCRIMINATOR_LEN: usize = 10; +/// Returns a path under the location for temporary files. The file name will start with the given +/// prefix. +/// +/// There is only a certain number of retries. If exceeded this function will give up and return an +/// error. +pub async fn tmpfile(prefix: &str) -> io::Result { + fn tmppath(prefix: &str) -> PathBuf { + use rand::distributions::Alphanumeric; + + const DESCRIMINATOR_LEN: usize = 10; + + let mut buf = Vec::with_capacity(prefix.len() + DESCRIMINATOR_LEN); + buf.extend(prefix.as_bytes()); + buf.extend( + rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(DESCRIMINATOR_LEN), + ); + + let s = std::str::from_utf8(&buf) + .expect("the string is collected from a valid utf-8 sequence; qed"); + + let mut temp_dir = PathBuf::from(std::env::temp_dir()); + temp_dir.push(s); + temp_dir + } - let mut buf = Vec::with_capacity(prefix.len() + DESCRIMINATOR_LEN); - buf.extend(prefix.as_bytes()); - buf.extend( - rand::thread_rng() - .sample_iter(&Alphanumeric) - .take(DESCRIMINATOR_LEN), - ); + const NUM_RETRIES: usize = 50; - let s = std::str::from_utf8(&buf).expect("the string is collected from a valid utf-8 sequence"); + for _ in 0..NUM_RETRIES { + let candidate_path = tmppath(prefix); + if !candidate_path.exists().await { + return Ok(candidate_path) + } + } - let mut temp_dir = PathBuf::from(std::env::temp_dir()); - temp_dir.push(s); - temp_dir + Err( + io::Error::new(io::ErrorKind::Other, "failed to create a temporary file") + ) } pub fn worker_event_loop(debug_id: &'static str, socket_path: &str, mut event_loop: F) @@ -141,6 +164,8 @@ pub struct IdleWorker { /// An error happened during spawning a worker process. #[derive(Clone, Debug)] pub enum SpawnErr { + /// Cannot obtain a temporary file location. + TmpFile, /// Cannot bind the socket to the given path. Bind, /// An error happened during accepting a connection to the socket. From c06a2fd0550a8d8ecbb820e5df81e8f7a311cd6b Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:04:17 +0000 Subject: [PATCH 43/50] proper proofs for claim_idle --- node/core/pvf/src/execute/queue.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/node/core/pvf/src/execute/queue.rs b/node/core/pvf/src/execute/queue.rs index 12464505e52f..98aab605affc 100644 --- a/node/core/pvf/src/execute/queue.rs +++ b/node/core/pvf/src/execute/queue.rs @@ -82,12 +82,15 @@ impl Workers { .find_map(|d| if d.1.idle.is_some() { Some(d.0) } else { None }) } - fn claim_idle(&mut self, worker: Worker) -> IdleWorker { - let data = self + /// Find the associated data by the worker token and extract it's [`IdleWorker`] token. + /// + /// Returns `None` if either worker is not recognized or idle token is absent. + fn claim_idle(&mut self, worker: Worker) -> Option { + self .running - .get_mut(worker) - .expect("the worker doesn't exist"); - data.idle.take().expect("the worker has no idle token") + .get_mut(worker)? + .idle + .take() } } @@ -304,8 +307,17 @@ async fn spawn_worker_task(program_path: PathBuf, spawn_timeout: Duration) -> Qu } /// Ask the given worker to perform the given job. +/// +/// The worker must be running and idle. fn assign(queue: &mut Queue, worker: Worker, job: ExecuteJob) { - let idle = queue.workers.claim_idle(worker); + let idle = queue + .workers + .claim_idle(worker) + .expect( + "this caller must supply a worker which is idle and running; + thus claim_idle cannot return None; + qed." + ); queue.mux.push( async move { let outcome = super::worker::start_work(idle, job.artifact_path, job.params).await; From ef58171854baffa1f6c2dd85a4990be56102959c Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:24:28 +0000 Subject: [PATCH 44/50] Remove mutex from ValidationHost --- node/core/candidate-validation/src/lib.rs | 18 +++++----- node/core/pvf/src/host.rs | 43 +++++++++-------------- node/core/pvf/tests/it/main.rs | 7 ++-- 3 files changed, 30 insertions(+), 38 deletions(-) diff --git a/node/core/candidate-validation/src/lib.rs b/node/core/candidate-validation/src/lib.rs index ff1ef3118f5b..13786479e9eb 100644 --- a/node/core/candidate-validation/src/lib.rs +++ b/node/core/candidate-validation/src/lib.rs @@ -99,7 +99,7 @@ async fn run( cache_path: PathBuf, program_path: PathBuf, ) -> SubsystemResult<()> { - let (validation_host, task) = polkadot_node_core_pvf::start( + let (mut validation_host, task) = polkadot_node_core_pvf::start( polkadot_node_core_pvf::Config::new(cache_path, program_path), ); ctx.spawn_blocking("pvf-validation-host", task.boxed()).await?; @@ -119,7 +119,7 @@ async fn run( let res = spawn_validate_from_chain_state( &mut ctx, - &validation_host, + &mut validation_host, descriptor, pov, &metrics, @@ -143,7 +143,7 @@ async fn run( let _timer = metrics.time_validate_from_exhaustive(); let res = validate_candidate_exhaustive( - &validation_host, + &mut validation_host, persisted_validation_data, validation_code, descriptor, @@ -282,7 +282,7 @@ async fn find_assumed_validation_data( )] async fn spawn_validate_from_chain_state( ctx: &mut impl SubsystemContext, - validation_host: &ValidationHost, + validation_host: &mut ValidationHost, descriptor: CandidateDescriptor, pov: Arc, metrics: &Metrics, @@ -344,7 +344,7 @@ async fn spawn_validate_from_chain_state( fields(subsystem = LOG_TARGET), )] async fn validate_candidate_exhaustive( - validation_backend: impl ValidationBackend, + mut validation_backend: impl ValidationBackend, persisted_validation_data: PersistedValidationData, validation_code: ValidationCode, descriptor: CandidateDescriptor, @@ -403,13 +403,13 @@ async fn validate_candidate_exhaustive( #[async_trait] trait ValidationBackend { - async fn validate_candidate(&self, validation_code: ValidationCode, params: ValidationParams) -> + async fn validate_candidate(&mut self, validation_code: ValidationCode, params: ValidationParams) -> Result; } #[async_trait] -impl ValidationBackend for &'_ ValidationHost { - async fn validate_candidate(&self, validation_code: ValidationCode, params: ValidationParams) -> Result +impl ValidationBackend for &'_ mut ValidationHost { + async fn validate_candidate(&mut self, validation_code: ValidationCode, params: ValidationParams) -> Result { let (tx, rx) = oneshot::channel(); if let Err(err) = self.execute_pvf( @@ -869,7 +869,7 @@ mod tests { #[async_trait] impl ValidationBackend for MockValidatorBackend { async fn validate_candidate( - &self, + &mut self, _validation_code: ValidationCode, _params: ValidationParams ) -> Result { diff --git a/node/core/pvf/src/host.rs b/node/core/pvf/src/host.rs index 302eb382ed28..4197acccb3a3 100644 --- a/node/core/pvf/src/host.rs +++ b/node/core/pvf/src/host.rs @@ -32,7 +32,6 @@ use std::{ use always_assert::never; use async_std::{ path::{Path, PathBuf}, - sync::Mutex, }; use polkadot_parachain::primitives::ValidationResult; use futures::{ @@ -44,8 +43,9 @@ use futures::{ pub(crate) type ResultSender = oneshot::Sender>; /// A handle to the async process serving the validation host requests. +#[derive(Clone)] pub struct ValidationHost { - to_host_tx: Mutex>, + to_host_tx: mpsc::Sender, } impl ValidationHost { @@ -57,15 +57,13 @@ impl ValidationHost { /// /// Returns an error if the request cannot be sent to the validation host, i.e. if it shut down. pub async fn execute_pvf( - &self, + &mut self, pvf: Pvf, params: Vec, priority: Priority, result_tx: ResultSender, ) -> Result<(), String> { self.to_host_tx - .lock() - .await .send(ToHost::ExecutePvf { pvf, params, @@ -82,10 +80,8 @@ impl ValidationHost { /// situations this function should return immediatelly. /// /// Returns an error if the request cannot be sent to the validation host, i.e. if it shut down. - pub async fn heads_up(&self, active_pvfs: Vec) -> Result<(), String> { + pub async fn heads_up(&mut self, active_pvfs: Vec) -> Result<(), String> { self.to_host_tx - .lock() - .await .send(ToHost::HeadsUp { active_pvfs }) .await .map_err(|_| "the inner loop hung up".to_string()) @@ -156,9 +152,7 @@ impl Config { pub fn start(config: Config) -> (ValidationHost, impl Future) { let (to_host_tx, to_host_rx) = mpsc::channel(10); - let validation_host = ValidationHost { - to_host_tx: Mutex::new(to_host_tx), - }; + let validation_host = ValidationHost { to_host_tx }; let (to_prepare_pool, from_prepare_pool, run_prepare_pool) = prepare::start_pool( config.prepare_worker_program_path.to_owned(), @@ -230,12 +224,7 @@ struct PendingExecutionRequest { struct AwaitingPrepare(HashMap>); impl AwaitingPrepare { - fn add( - &mut self, - artifact_id: ArtifactId, - params: Vec, - result_tx: ResultSender, - ) { + fn add(&mut self, artifact_id: ArtifactId, params: Vec, result_tx: ResultSender) { self.0 .entry(artifact_id) .or_default() @@ -731,10 +720,8 @@ mod tests { } fn host_handle(&mut self) -> ValidationHost { - let tx = self.to_host_tx.take().unwrap(); - ValidationHost { - to_host_tx: Mutex::new(tx), - } + let to_host_tx = self.to_host_tx.take().unwrap(); + ValidationHost { to_host_tx } } async fn poll_and_recv_to_prepare_queue(&mut self) -> prepare::ToQueue { @@ -768,7 +755,8 @@ mod tests { panic!("the execute queue supposed to be empty") } } - }.boxed(), + } + .boxed(), ) .await } @@ -786,7 +774,8 @@ mod tests { panic!("the sweeper supposed to be empty, but received: {:?}", msg) } } - }.boxed(), + } + .boxed(), ) .await } @@ -839,7 +828,7 @@ mod tests { builder.artifacts.insert_prepared(artifact_id(1), mock_now); builder.artifacts.insert_prepared(artifact_id(2), mock_now); let mut test = builder.build(); - let host = test.host_handle(); + let mut host = test.host_handle(); host.heads_up(vec![Pvf::from_discriminator(1)]) .await @@ -866,7 +855,7 @@ mod tests { #[async_std::test] async fn amending_priority() { let mut test = Builder::default().build(); - let host = test.host_handle(); + let mut host = test.host_handle(); host.heads_up(vec![Pvf::from_discriminator(1)]) .await @@ -914,7 +903,7 @@ mod tests { use crate::error::InvalidCandidate; let mut test = Builder::default().build(); - let host = test.host_handle(); + let mut host = test.host_handle(); let (result_tx, result_rx_pvf_1_1) = oneshot::channel(); host.execute_pvf( @@ -1021,7 +1010,7 @@ mod tests { #[async_std::test] async fn cancellation() { let mut test = Builder::default().build(); - let host = test.host_handle(); + let mut host = test.host_handle(); let (result_tx, result_rx) = oneshot::channel(); host.execute_pvf( diff --git a/node/core/pvf/tests/it/main.rs b/node/core/pvf/tests/it/main.rs index 63cd470d62ea..6ea41b11d531 100644 --- a/node/core/pvf/tests/it/main.rs +++ b/node/core/pvf/tests/it/main.rs @@ -19,6 +19,7 @@ use polkadot_parachain::{ primitives::{BlockData, ValidationParams, ValidationResult}, }; use parity_scale_codec::Encode as _; +use async_std::sync::Mutex; mod adder; mod worker_common; @@ -27,7 +28,7 @@ const PUPPET_EXE: &str = env!("CARGO_BIN_EXE_puppet_worker"); struct TestHost { _cache_dir: tempfile::TempDir, - host: ValidationHost, + host: Mutex, } impl TestHost { @@ -47,7 +48,7 @@ impl TestHost { let _ = async_std::task::spawn(task); Self { _cache_dir: cache_dir, - host, + host: Mutex::new(host), } } @@ -58,6 +59,8 @@ impl TestHost { ) -> Result { let (result_tx, result_rx) = futures::channel::oneshot::channel(); self.host + .lock() + .await .execute_pvf( Pvf::from_code(code.to_vec()), params.encode(), From 1feca0c276fafca17508ca7b7cb78e71139ebdcb Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:37:07 +0000 Subject: [PATCH 45/50] Add some more logging --- node/core/pvf/src/execute/worker.rs | 14 ++++++++++++++ node/core/pvf/src/prepare/worker.rs | 26 ++++++++++++++++++++++++++ node/core/pvf/src/worker_common.rs | 4 ++-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 21d0d19deab7..220a6eb07f50 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -16,6 +16,7 @@ use crate::{ artifacts::Artifact, + LOG_TARGET, executor_intf::TaskExecutor, worker_common::{ IdleWorker, SpawnErr, WorkerHandle, bytes_to_path, framed_recv, framed_send, path_to_bytes, @@ -86,6 +87,13 @@ pub async fn start_work( ) -> Outcome { let IdleWorker { mut stream, pid } = worker; + tracing::debug!( + target: LOG_TARGET, + worker_pid = %pid, + "starting execute for {}", + artifact_path.display(), + ); + if send_request(&mut stream, &artifact_path, &validation_params).await.is_err() { return Outcome::IoErr; } @@ -187,6 +195,12 @@ pub fn worker_entrypoint(socket_path: &str) { })?; loop { let (artifact_path, params) = recv_request(&mut stream).await?; + tracing::debug!( + target: LOG_TARGET, + worker_pid = %std::process::id(), + "worker: validating artifact {}", + artifact_path.display(), + ); let response = validate_using_artifact(&artifact_path, ¶ms, &executor).await; send_response(&mut stream, response).await?; } diff --git a/node/core/pvf/src/prepare/worker.rs b/node/core/pvf/src/prepare/worker.rs index bb6ae6f38cf4..9a6bdb1f8956 100644 --- a/node/core/pvf/src/prepare/worker.rs +++ b/node/core/pvf/src/prepare/worker.rs @@ -75,6 +75,14 @@ pub async fn start_work( ) -> Outcome { let IdleWorker { mut stream, pid } = worker; + tracing::debug!( + target: LOG_TARGET, + worker_pid = %pid, + %background_priority, + "starting prepare for {}", + artifact_path.display(), + ); + if background_priority { renice(pid, NICENESS_BACKGROUND); } @@ -144,6 +152,13 @@ pub fn bump_priority(handle: &WorkerHandle) { } fn renice(pid: u32, niceness: i32) { + tracing::debug!( + target: LOG_TARGET, + worker_pid = %pid, + "changing niceness to {}", + niceness, + ); + // Consider upstreaming this to the `nix` crate. unsafe { if -1 == libc::setpriority(libc::PRIO_PROCESS, pid, niceness) { @@ -160,10 +175,21 @@ pub fn worker_entrypoint(socket_path: &str) { loop { let code = recv_request(&mut stream).await?; + tracing::debug!( + target: LOG_TARGET, + worker_pid = %std::process::id(), + "worker: preparing artifact", + ); let artifact_bytes = prepare_artifact(&code).serialize(); // Write the serialized artifact into into a temp file. let dest = tmpfile("prepare-artifact-").await?; + tracing::debug!( + target: LOG_TARGET, + worker_pid = %std::process::id(), + "worker: writing artifact to {}", + dest.display(), + ); async_std::fs::write(&dest, &artifact_bytes).await?; // Communicate the results back to the host. diff --git a/node/core/pvf/src/worker_common.rs b/node/core/pvf/src/worker_common.rs index eb7cf5d85bb2..6818baa18f9a 100644 --- a/node/core/pvf/src/worker_common.rs +++ b/node/core/pvf/src/worker_common.rs @@ -141,9 +141,9 @@ where tracing::debug!( target: LOG_TARGET, - "pvf worker ({}) pid={}: {:?}", + worker_pid = %std::process::id(), + "pvf worker ({}): {:?}", debug_id, - std::process::id(), err, ); } From ffb3caa8a76c43ffffa8890bafef9a66b0513f57 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:38:01 +0000 Subject: [PATCH 46/50] Extract exec timeout into a constant --- node/core/pvf/src/execute/worker.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/node/core/pvf/src/execute/worker.rs b/node/core/pvf/src/execute/worker.rs index 220a6eb07f50..e2d6f3f5623f 100644 --- a/node/core/pvf/src/execute/worker.rs +++ b/node/core/pvf/src/execute/worker.rs @@ -34,6 +34,8 @@ use futures_timer::Delay; use polkadot_parachain::primitives::ValidationResult; use parity_scale_codec::{Encode, Decode}; +const EXECUTION_TIMEOUT: Duration = Duration::from_secs(3); + /// Spawns a new worker with the given program path that acts as the worker and the spawn timeout. /// /// The program should be able to handle ` execute-worker ` invocation. @@ -105,7 +107,7 @@ pub async fn start_work( Ok(response) => response, } }, - _ = Delay::new(Duration::from_secs(3)).fuse() => return Outcome::HardTimeout, + _ = Delay::new(EXECUTION_TIMEOUT).fuse() => return Outcome::HardTimeout, }; match response { From d151556a522f69dfbea82c1036b049fb9a9525a3 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:40:55 +0000 Subject: [PATCH 47/50] Add some clarifying logging --- node/core/pvf/src/prepare/pool.rs | 2 +- node/core/pvf/src/prepare/queue.rs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/node/core/pvf/src/prepare/pool.rs b/node/core/pvf/src/prepare/pool.rs index 034b8c4e9820..1e3a4eb8ee7d 100644 --- a/node/core/pvf/src/prepare/pool.rs +++ b/node/core/pvf/src/prepare/pool.rs @@ -208,7 +208,7 @@ fn handle_to_pool( // items concluded; // thus idle token is Some; // qed. - never!(); + never!("unexpected abscence of the idle token in prepare pool"); } } else { // That's a relatively normal situation since the queue may send `start_work` and diff --git a/node/core/pvf/src/prepare/queue.rs b/node/core/pvf/src/prepare/queue.rs index 93daf447907b..b81a47ee9918 100644 --- a/node/core/pvf/src/prepare/queue.rs +++ b/node/core/pvf/src/prepare/queue.rs @@ -228,7 +228,10 @@ async fn handle_to_queue(queue: &mut Queue, to_queue: ToQueue) -> Result<(), Fat async fn handle_enqueue(queue: &mut Queue, priority: Priority, pvf: Pvf) -> Result<(), Fatal> { let artifact_id = pvf.as_artifact_id(); - if never!(queue.artifact_id_to_job.contains_key(&artifact_id)) { + if never!( + queue.artifact_id_to_job.contains_key(&artifact_id), + "second Enqueue sent for a known artifact" + ) { // This function is called in response to a `Enqueue` message; // Precondtion for `Enqueue` is that it is sent only once for a PVF; // Thus this should always be `false`; @@ -420,7 +423,7 @@ async fn handle_worker_rip(queue: &mut Queue, worker: Worker) -> Result<(), Fata // that means that the job still exists and is known; // this path cannot be hit; // qed. - never!(); + never!("the job of the ripped worker must be known but it is not"); Priority::Normal }); queue.unscheduled.readd(priority, job); From 406fd710dde163ffd1612f8b1b3ddc2010b1e0ae Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 12:42:20 +0000 Subject: [PATCH 48/50] Use blake2_256 --- node/core/pvf/src/pvf.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node/core/pvf/src/pvf.rs b/node/core/pvf/src/pvf.rs index d26db52b62da..7c0a70ac90bc 100644 --- a/node/core/pvf/src/pvf.rs +++ b/node/core/pvf/src/pvf.rs @@ -16,7 +16,7 @@ use crate::artifacts::ArtifactId; use polkadot_core_primitives::Hash; -use sp_core::keccak_256; +use sp_core::blake2_256; use std::{fmt, sync::Arc}; /// A struct that carries code of a parachain validation function and it's hash. @@ -38,7 +38,7 @@ impl Pvf { /// Returns an instance of the PVF out of the given PVF code. pub fn from_code(code: Vec) -> Self { let code = Arc::new(code); - let code_hash = keccak_256(&code).into(); + let code_hash = blake2_256(&code).into(); Self { code, code_hash } } From d5ab3a191b2b4e2e39045fe9dea392e966c5afed Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Thu, 8 Apr 2021 20:38:53 +0000 Subject: [PATCH 49/50] Clean up the merge Specifically the leftovers after removing real-overseer --- parachain/test-parachains/adder/collator/Cargo.toml | 2 +- parachain/test-parachains/adder/collator/bin/puppet_worker.rs | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index a2859a7794d6..584ffbbb22a8 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -34,7 +34,7 @@ sc-service = { git = "https://github.com/paritytech/substrate", branch = "master # This one is tricky. Even though it is not used directly by the collator, we still need it for the # `puppet_worker` binary, which is required for the integration test. However, this shouldn't be -# a big problem since it is used transitively, at least when built with `real-overseer`. +# a big problem since it is used transitively anyway. polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } [dev-dependencies] diff --git a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs index b6a23d585262..4b026e96a809 100644 --- a/parachain/test-parachains/adder/collator/bin/puppet_worker.rs +++ b/parachain/test-parachains/adder/collator/bin/puppet_worker.rs @@ -14,8 +14,4 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -#[cfg(feature = "real-overseer")] polkadot_node_core_pvf::decl_puppet_worker_main!(); - -#[cfg(not(feature = "real-overseer"))] -fn main() {} From 250a5ae6be34c3863f7d4b386fc156cd34ccb375 Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Fri, 9 Apr 2021 00:25:14 +0300 Subject: [PATCH 50/50] Update parachain/test-parachains/adder/collator/Cargo.toml Co-authored-by: Andronik Ordian --- parachain/test-parachains/adder/collator/Cargo.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/parachain/test-parachains/adder/collator/Cargo.toml b/parachain/test-parachains/adder/collator/Cargo.toml index 584ffbbb22a8..7b39707934fa 100644 --- a/parachain/test-parachains/adder/collator/Cargo.toml +++ b/parachain/test-parachains/adder/collator/Cargo.toml @@ -45,6 +45,4 @@ substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" } -polkadot-node-core-pvf = { path = "../../../../node/core/pvf" } - tokio = { version = "0.2", features = ["macros"] }