diff --git a/cumulus/Cargo.lock b/cumulus/Cargo.lock index b634b5a5396d1270e6fb32fe9b102cce81314355..c9a5ca544908fee48f7a1af0bc1fd310dcb69c0a 100644 --- a/cumulus/Cargo.lock +++ b/cumulus/Cargo.lock @@ -1100,6 +1100,7 @@ dependencies = [ "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", + "polkadot-parachain", "polkadot-primitives", "polkadot-service", "polkadot-statement-table", @@ -1784,7 +1785,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", ] @@ -1802,7 +1803,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -1820,7 +1821,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "Inflector", "chrono", @@ -1843,7 +1844,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -1859,7 +1860,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "12.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "serde", @@ -1870,7 +1871,7 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "bitflags", "frame-metadata", @@ -1895,7 +1896,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -1907,7 +1908,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1919,7 +1920,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", @@ -1929,7 +1930,7 @@ dependencies = [ [[package]] name = "frame-system" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "impl-trait-for-tuples 0.2.0", @@ -1945,7 +1946,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-api", @@ -2744,6 +2745,15 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.9.0" @@ -2918,7 +2928,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-executive", @@ -3129,7 +3139,7 @@ dependencies = [ "parity-multiaddr", "parking_lot 0.11.1", "pin-project 1.0.4", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "ring", @@ -3186,7 +3196,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "smallvec 1.6.1", @@ -3208,7 +3218,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "regex", @@ -3228,7 +3238,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "smallvec 1.6.1", "wasm-timer", @@ -3249,7 +3259,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sha2 0.9.2", @@ -3311,7 +3321,7 @@ dependencies = [ "lazy_static", "libp2p-core", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sha2 0.9.2", @@ -3347,7 +3357,7 @@ dependencies = [ "futures 0.3.12", "libp2p-core", "log", - "prost", + "prost 0.7.0", "prost-build", "unsigned-varint 0.6.0", "void", @@ -3720,7 +3730,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -4142,7 +4152,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4158,7 +4168,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4173,7 +4183,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4198,7 +4208,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4212,7 +4222,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4226,7 +4236,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4241,7 +4251,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4255,8 +4265,8 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4270,7 +4280,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4291,7 +4301,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4307,7 +4317,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4326,7 +4336,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4342,7 +4352,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4356,7 +4366,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4371,7 +4381,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4385,7 +4395,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4400,7 +4410,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4415,7 +4425,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4428,7 +4438,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "enumflags2", "frame-support", @@ -4443,7 +4453,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4458,7 +4468,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4478,7 +4488,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4492,7 +4502,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4512,7 +4522,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", @@ -4523,7 +4533,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4537,7 +4547,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -4554,7 +4564,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4568,7 +4578,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4584,7 +4594,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4601,7 +4611,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4612,7 +4622,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4627,7 +4637,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-support", "frame-system", @@ -4642,7 +4652,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "enumflags2", "frame-support", @@ -5095,10 +5105,25 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +[[package]] +name = "polkadot-approval-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" +dependencies = [ + "futures 0.3.12", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5113,7 +5138,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5132,7 +5157,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -5152,7 +5177,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-benchmarking-cli", "futures 0.3.12", @@ -5172,7 +5197,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5187,7 +5212,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", "sp-core", @@ -5198,7 +5223,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5211,7 +5236,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-trait", "futures 0.3.12", @@ -5228,7 +5253,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-erasure-coding", @@ -5245,7 +5270,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "futures 0.3.12", @@ -5267,7 +5292,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "futures 0.3.12", @@ -5286,7 +5311,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5302,7 +5327,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5317,7 +5342,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5334,7 +5359,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5348,7 +5373,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -5372,7 +5397,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "futures 0.3.12", @@ -5388,7 +5413,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5403,7 +5428,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-std", "lazy_static", @@ -5419,7 +5444,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", "polkadot-node-jaeger", @@ -5427,17 +5452,20 @@ dependencies = [ "polkadot-primitives", "sc-network", "strum 0.20.0", + "thiserror", + "zstd", ] [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "parity-scale-codec", "polkadot-primitives", "polkadot-statement-table", + "sp-consensus-slots", "sp-consensus-vrf", "sp-core", "sp-runtime", @@ -5446,7 +5474,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-std", "async-trait", @@ -5476,7 +5504,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-test-helpers" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-trait", "futures 0.3.12", @@ -5499,7 +5527,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-trait", "futures 0.3.12", @@ -5525,7 +5553,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "async-trait", "futures 0.3.12", @@ -5543,7 +5571,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -5566,7 +5594,7 @@ dependencies = [ [[package]] name = "polkadot-pov-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5581,7 +5609,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-system", @@ -5608,7 +5636,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5638,7 +5666,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-executive", @@ -5703,7 +5731,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-support", @@ -5739,7 +5767,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5776,7 +5804,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -5787,6 +5815,7 @@ dependencies = [ "pallet-im-online", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", + "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", @@ -5823,6 +5852,7 @@ dependencies = [ "sc-consensus-slots", "sc-executor", "sc-finality-grandpa", + "sc-finality-grandpa-warp-sync", "sc-network", "sc-service", "sc-telemetry", @@ -5856,7 +5886,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "arrayvec 0.5.2", "futures 0.3.12", @@ -5874,7 +5904,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5884,7 +5914,7 @@ dependencies = [ [[package]] name = "polkadot-test-client" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", "polkadot-node-subsystem", @@ -5908,7 +5938,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-executive", @@ -5962,7 +5992,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-benchmarking", "frame-system", @@ -6167,6 +6197,16 @@ dependencies = [ "thiserror", ] +[[package]] +name = "prost" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" +dependencies = [ + "bytes 0.5.6", + "prost-derive 0.6.1", +] + [[package]] name = "prost" version = "0.7.0" @@ -6174,7 +6214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2" dependencies = [ "bytes 1.0.1", - "prost-derive", + "prost-derive 0.7.0", ] [[package]] @@ -6185,16 +6225,29 @@ checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3" dependencies = [ "bytes 1.0.1", "heck", - "itertools", + "itertools 0.9.0", "log", "multimap", "petgraph", - "prost", + "prost 0.7.0", "prost-types", "tempfile", "which 4.0.2", ] +[[package]] +name = "prost-derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" +dependencies = [ + "anyhow", + "itertools 0.8.2", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + [[package]] name = "prost-derive" version = "0.7.0" @@ -6202,7 +6255,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" dependencies = [ "anyhow", - "itertools", + "itertools 0.9.0", "proc-macro2 1.0.24", "quote 1.0.8", "syn 1.0.58", @@ -6215,7 +6268,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb" dependencies = [ "bytes 1.0.1", - "prost", + "prost 0.7.0", ] [[package]] @@ -6778,7 +6831,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-executive", "frame-support", @@ -6968,7 +7021,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -6978,7 +7031,7 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sc-client-api", @@ -6996,7 +7049,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7019,7 +7072,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7036,7 +7089,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -7057,7 +7110,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", @@ -7068,7 +7121,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "chrono", "fdlimit", @@ -7106,7 +7159,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "fnv", @@ -7140,7 +7193,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "blake2-rfc", "hash-db", @@ -7170,7 +7223,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7181,7 +7234,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "fork-tree", @@ -7226,7 +7279,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7250,7 +7303,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7263,7 +7316,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7289,7 +7342,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "sc-client-api", @@ -7303,7 +7356,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "lazy_static", @@ -7332,7 +7385,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "parity-scale-codec", @@ -7348,7 +7401,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "parity-scale-codec", @@ -7363,7 +7416,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "parity-scale-codec", @@ -7381,13 +7434,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "finality-grandpa", "fork-tree", "futures 0.3.12", "futures-timer 3.0.2", + "linked-hash-map", "log", "parity-scale-codec", "parking_lot 0.11.1", @@ -7418,7 +7472,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "finality-grandpa", @@ -7439,10 +7493,30 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "sc-finality-grandpa-warp-sync" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" +dependencies = [ + "derive_more 0.99.11", + "futures 0.3.12", + "log", + "num-traits 0.2.14", + "parity-scale-codec", + "parking_lot 0.11.1", + "prost 0.6.1", + "sc-client-api", + "sc-finality-grandpa", + "sc-network", + "sc-service", + "sp-blockchain", + "sp-runtime", +] + [[package]] name = "sc-informant" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7460,7 +7534,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -7480,7 +7554,7 @@ dependencies = [ [[package]] name = "sc-light" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "hash-db", "lazy_static", @@ -7499,7 +7573,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "async-std", "async-trait", @@ -7525,7 +7599,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", "pin-project 0.4.27", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sc-block-builder", @@ -7551,7 +7625,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7567,7 +7641,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "bytes 0.5.6", "fnv", @@ -7594,7 +7668,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "libp2p", @@ -7607,7 +7681,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7616,7 +7690,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "hash-db", @@ -7650,7 +7724,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7674,7 +7748,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.1.30", "jsonrpc-core", @@ -7692,7 +7766,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "directories 3.0.1", "exit-future 0.2.0", @@ -7755,7 +7829,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "parity-scale-codec", @@ -7770,7 +7844,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.8.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7790,7 +7864,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "chrono", "futures 0.3.12", @@ -7812,7 +7886,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "ansi_term 0.12.1", "atty", @@ -7840,7 +7914,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", @@ -7851,7 +7925,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7873,7 +7947,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -8294,7 +8368,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "sp-core", @@ -8306,7 +8380,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "hash-db", "parity-scale-codec", @@ -8322,7 +8396,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -8334,7 +8408,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "serde", @@ -8346,7 +8420,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "integer-sqrt", "num-traits 0.2.14", @@ -8359,7 +8433,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-api", @@ -8371,7 +8445,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8382,7 +8456,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-api", @@ -8394,7 +8468,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "log", @@ -8412,7 +8486,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "serde", "serde_json", @@ -8421,7 +8495,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8447,7 +8521,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "parity-scale-codec", "sp-api", @@ -8461,7 +8535,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "merlin", "parity-scale-codec", @@ -8481,7 +8555,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8490,7 +8564,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8502,7 +8576,7 @@ dependencies = [ [[package]] name = "sp-core" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "base58", "blake2-rfc", @@ -8546,7 +8620,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8555,7 +8629,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", @@ -8565,7 +8639,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "environmental", "parity-scale-codec", @@ -8576,7 +8650,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "finality-grandpa", "log", @@ -8593,7 +8667,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8605,7 +8679,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "hash-db", @@ -8629,7 +8703,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "lazy_static", "sp-core", @@ -8640,7 +8714,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.8.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -8657,7 +8731,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "serde", @@ -8670,7 +8744,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", @@ -8681,7 +8755,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "sp-api", "sp-core", @@ -8691,7 +8765,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "backtrace", ] @@ -8699,7 +8773,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "serde", "sp-core", @@ -8708,7 +8782,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "either", "hash256-std-hasher", @@ -8729,7 +8803,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -8746,7 +8820,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "Inflector", "proc-macro-crate", @@ -8758,7 +8832,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "serde", "serde_json", @@ -8767,7 +8841,7 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-api", @@ -8780,7 +8854,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8790,7 +8864,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "hash-db", "log", @@ -8812,12 +8886,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" [[package]] name = "sp-storage" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8830,7 +8904,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "sp-core", @@ -8843,7 +8917,7 @@ dependencies = [ [[package]] name = "sp-test-primitives" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -8856,7 +8930,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -8870,7 +8944,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "log", "parity-scale-codec", @@ -8883,7 +8957,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -8899,7 +8973,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "hash-db", "memory-db", @@ -8913,7 +8987,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.3.12", "futures-core", @@ -8925,7 +8999,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8937,7 +9011,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -9091,7 +9165,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "platforms", ] @@ -9099,7 +9173,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -9122,7 +9196,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "async-std", "derive_more 0.99.11", @@ -9136,7 +9210,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#13cdf1c8cd2ee62d411f82b64dc7eba860c9c6c6" dependencies = [ "futures 0.1.30", "futures 0.3.12", @@ -9163,7 +9237,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "cfg-if 0.1.10", "frame-executive", @@ -9205,7 +9279,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -9226,7 +9300,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "futures 0.3.12", "substrate-test-utils-derive", @@ -9236,7 +9310,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "proc-macro-crate", "quote 1.0.8", @@ -9262,7 +9336,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#2a5e10a8e53faae2ed41d820c08fb8dfb066d09f" +source = "git+https://github.com/paritytech/substrate?branch=master#51d231247c84d8cc17d970afedb377edd8a95aef" dependencies = [ "ansi_term 0.12.1", "atty", @@ -9905,7 +9979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59" dependencies = [ "cfg-if 0.1.10", - "rand 0.6.5", + "rand 0.7.3", "static_assertions", ] @@ -10471,7 +10545,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "bitvec", "frame-executive", @@ -10621,7 +10695,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "parity-scale-codec", ] @@ -10629,7 +10703,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-support", "parity-scale-codec", @@ -10645,7 +10719,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot#a14608ae21faccee01f76361bbf9c475e8057bdd" +source = "git+https://github.com/paritytech/polkadot#ab606e14603610d364d0e4bddabd6e9209347b68" dependencies = [ "frame-support", "impl-trait-for-tuples 0.2.0", @@ -10732,6 +10806,6 @@ checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" dependencies = [ "cc", "glob", - "itertools", + "itertools 0.9.0", "libc", ] diff --git a/cumulus/network/Cargo.toml b/cumulus/network/Cargo.toml index 4d0bad4c5164ba9ba601ce1048c2641790c12b75..a70037dbf6f5491442a9b479f0e8509a2a783b5e 100644 --- a/cumulus/network/Cargo.toml +++ b/cumulus/network/Cargo.toml @@ -21,6 +21,7 @@ polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = " polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "master" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "master" } # Cumulus deps cumulus-primitives = { path = "../primitives" } diff --git a/cumulus/network/src/lib.rs b/cumulus/network/src/lib.rs index 815a456bcd5bdfcfe10762096d8bd57172b80cd6..b24b7bbbd14621c117d2d2aca6934ce701f9db73 100644 --- a/cumulus/network/src/lib.rs +++ b/cumulus/network/src/lib.rs @@ -41,8 +41,8 @@ use polkadot_node_primitives::{SignedFullStatement, Statement}; use polkadot_node_subsystem::messages::StatementDistributionMessage; use polkadot_overseer::OverseerHandler; use polkadot_primitives::v1::{ - Block as PBlock, Hash as PHash, Id as ParaId, OccupiedCoreAssumption, ParachainHost, - SigningContext, + Block as PBlock, CandidateReceipt, CompactStatement, Hash as PHash, Id as ParaId, + OccupiedCoreAssumption, ParachainHost, SignedStatement, SigningContext, }; use polkadot_service::ClientHandle; @@ -54,7 +54,7 @@ use futures::{ }; use log::trace; -use std::{fmt, marker::PhantomData, pin::Pin, sync::Arc}; +use std::{fmt, marker::PhantomData, pin::Pin, sync::Arc, convert::TryFrom}; use wait_on_relay_chain_block::WaitOnRelayChainBlock; @@ -70,6 +70,118 @@ impl fmt::Display for BlockAnnounceError { } } +/// The data that we attach to a block announcement. +/// +/// This will be used to prove that a header belongs to a block that is probably being backed by +/// the relay chain. +#[derive(Encode, Decode, Debug)] +pub struct BlockAnnounceData { + receipt: CandidateReceipt, + statement: SignedStatement, +} + +impl BlockAnnounceData { + /// Validate that the receipt, statement and announced header match. + /// + /// This will not check the signature, for this you should use [`BlockAnnounceData::check_signature`]. + fn validate(&self, encoded_header: Vec<u8>) -> Result<(), BlockAnnounceError> { + let candidate_hash = if let CompactStatement::Candidate(h) = self.statement.payload() { + h + } else { + return Err(BlockAnnounceError( + "`CompactStatement` isn't the candidate variant!".into(), + )); + }; + + if *candidate_hash != self.receipt.hash() { + return Err(BlockAnnounceError( + "Receipt candidate hash doesn't match candidate hash in statement".into(), + )); + } + + if polkadot_parachain::primitives::HeadData(encoded_header).hash() != self.receipt.descriptor.para_head + { + return Err(BlockAnnounceError( + "Receipt para head hash doesn't match the hash of the header in the block announcement".into(), + )); + } + + Ok(()) + } + + /// Check the signature of the statement. + /// + /// Returns an `Err(_)` if it failed. + fn check_signature<P>(&self, relay_chain_client: &Arc<P>) -> Result<(), BlockAnnounceError> + where + P: ProvideRuntimeApi<PBlock> + Send + Sync + 'static, + P::Api: ParachainHost<PBlock>, + { + let runtime_api = relay_chain_client.runtime_api(); + let validator_index = self.statement.validator_index(); + + let runtime_api_block_id = BlockId::Hash(self.receipt.descriptor.relay_parent); + let session_index = match runtime_api.session_index_for_child(&runtime_api_block_id) { + Ok(r) => r, + Err(e) => { + return Err(BlockAnnounceError(format!("{:?}", e))); + } + }; + + let signing_context = SigningContext { + parent_hash: self.receipt.descriptor.relay_parent, + session_index, + }; + + // Check that the signer is a legit validator. + let authorities = match runtime_api.validators(&runtime_api_block_id) { + Ok(r) => r, + Err(e) => { + return Err(BlockAnnounceError(format!("{:?}", e))); + } + }; + let signer = match authorities.get(validator_index as usize) { + Some(r) => r, + None => { + return Err(BlockAnnounceError( + "block accouncement justification signer is a validator index out of bound" + .to_string(), + )); + } + }; + + // Check statement is correctly signed. + if self + .statement + .check_signature(&signing_context, &signer) + .is_err() + { + return Err(BlockAnnounceError( + "block announcement justification signature is invalid".to_string(), + )); + } + + Ok(()) + } +} + +impl TryFrom<SignedFullStatement> for BlockAnnounceData { + type Error = (); + + fn try_from(stmt: SignedFullStatement) -> Result<BlockAnnounceData, ()> { + let receipt = if let Statement::Seconded(receipt) = stmt.payload() { + receipt.to_plain() + } else { + return Err(()); + }; + + Ok(BlockAnnounceData { + receipt, + statement: stmt.convert_payload(), + }) + } +} + /// Parachain specific block announce validator. /// /// This block announce validator is required if the parachain is running @@ -89,8 +201,8 @@ impl fmt::Display for BlockAnnounceError { /// For each block announcement that is received, the generic block announcement validation /// will call this validator and provides the extra data that was attached to the announcement. /// We call this extra data `justification`. -/// It is expected that the attached data is a SCALE encoded [`SignedFullStatement`]. The -/// statement is checked to be a [`Statement::Seconded`] and that it is signed by an active +/// It is expected that the attached data is a SCALE encoded [`BlockAnnounceData`]. The +/// statement is checked to be a [`CompactStatement::Candidate`] and that it is signed by an active /// parachain validator. /// /// If no justification was provided we check if the block announcement is at the tip of the known @@ -213,13 +325,14 @@ where .boxed(); } - let signed_stmt = match SignedFullStatement::decode(&mut data) { + let block_announce_data = match BlockAnnounceData::decode(&mut data) { Ok(r) => r, - Err(_) => return ready(Err(Box::new(BlockAnnounceError( - "cannot decode block announcement justification, must be a `SignedFullStatement`" - .into(), - )) as Box<_>)) - .boxed(), + Err(_) => { + return ready(Err(Box::new(BlockAnnounceError( + "Can not decode the `BlockAnnounceData`".into(), + )) as Box<_>)) + .boxed() + } }; let relay_chain_client = self.relay_chain_client.clone(); @@ -227,72 +340,20 @@ where let wait_on_relay_chain_block = self.wait_on_relay_chain_block.clone(); async move { - // Check statement is a candidate statement. - let candidate_receipt = match signed_stmt.payload() { - Statement::Seconded(ref candidate_receipt) => candidate_receipt, - _ => { - return Err(Box::new(BlockAnnounceError( - "block announcement justification must be a `Statement::Seconded`".into(), - )) as Box<_>) - } - }; - - // Check the header in the candidate_receipt match header given header. - if header_encoded != candidate_receipt.commitments.head_data.0 { - return Err(Box::new(BlockAnnounceError( - "block announcement header does not match the one justified".into(), - )) as Box<_>); - } + block_announce_data + .validate(header_encoded) + .map_err(|e| Box::new(e) as Box<_>)?; - let relay_parent = &candidate_receipt.descriptor.relay_parent; + let relay_parent = block_announce_data.receipt.descriptor.relay_parent; wait_on_relay_chain_block - .wait_on_relay_chain_block(*relay_parent) + .wait_on_relay_chain_block(relay_parent) .await .map_err(|e| Box::new(BlockAnnounceError(e.to_string())) as Box<_>)?; - let runtime_api = relay_chain_client.runtime_api(); - let validator_index = signed_stmt.validator_index(); - - let runtime_api_block_id = BlockId::Hash(*relay_parent); - let session_index = match runtime_api.session_index_for_child(&runtime_api_block_id) { - Ok(r) => r, - Err(e) => { - return Err(Box::new(BlockAnnounceError(format!("{:?}", e))) as Box<_>); - } - }; - - let signing_context = SigningContext { - parent_hash: *relay_parent, - session_index, - }; - - // Check that the signer is a legit validator. - let authorities = match runtime_api.validators(&runtime_api_block_id) { - Ok(r) => r, - Err(e) => { - return Err(Box::new(BlockAnnounceError(format!("{:?}", e))) as Box<_>); - } - }; - let signer = match authorities.get(validator_index as usize) { - Some(r) => r, - None => { - return Err(Box::new(BlockAnnounceError( - "block accouncement justification signer is a validator index out of bound" - .to_string(), - )) as Box<_>); - } - }; - - // Check statement is correctly signed. - if signed_stmt - .check_signature(&signing_context, &signer) - .is_err() - { - return Err(Box::new(BlockAnnounceError( - "block announcement justification signature is invalid".to_string(), - )) as Box<_>); - } + block_announce_data + .check_signature(&relay_chain_client) + .map_err(|e| Box::new(e) as Box<_>)?; Ok(Validation::Success { is_new_best: true }) } @@ -484,9 +545,11 @@ async fn wait_to_announce<Block: BlockT>( .await; while let Some(statement) = receiver.next().await { - match &statement.payload() { + match statement.payload() { Statement::Seconded(c) if &c.descriptor.pov_hash == &pov_hash => { - announce_block(block_hash, statement.encode()); + if let Ok(data) = BlockAnnounceData::try_from(statement) { + announce_block(block_hash, data.encode()); + } break; } diff --git a/cumulus/network/src/tests.rs b/cumulus/network/src/tests.rs index fb0fba74d103d60424b39a9a9aa7fb1f851c6a70..19c2938e0c943aafbcc693433b83919818a3c004 100644 --- a/cumulus/network/src/tests.rs +++ b/cumulus/network/src/tests.rs @@ -132,6 +132,7 @@ async fn make_gossip_message_and_header( }, descriptor: CandidateDescriptor { relay_parent, + para_head: polkadot_parachain::primitives::HeadData(header.encode()).hash(), ..Default::default() }, }; @@ -192,7 +193,7 @@ fn check_statement_is_encoded_correctly() { check_error(res, |error| { matches!( error, - BlockAnnounceError(x) if x.contains("must be a `SignedFullStatement`") + BlockAnnounceError(x) if x.contains("Can not decode the `BlockAnnounceData`") ) }); } @@ -202,7 +203,7 @@ fn check_signer_is_legit_validator() { let (mut validator, api) = make_validator_and_api(); let (signed_statement, header) = block_on(make_gossip_message_and_header_using_genesis(api, 1)); - let data = signed_statement.encode(); + let data = BlockAnnounceData::try_from(signed_statement).unwrap().encode(); let res = block_on(validator.validate(&header, &data)) .err() @@ -220,7 +221,7 @@ fn check_statement_is_correctly_signed() { let (signed_statement, header) = block_on(make_gossip_message_and_header_using_genesis(api, 0)); - let mut data = signed_statement.encode(); + let mut data = BlockAnnounceData::try_from(signed_statement).unwrap().encode(); // The signature comes at the end of the type, so change a bit to make the signature invalid. let last = data.len() - 1; @@ -270,7 +271,10 @@ fn check_statement_seconded() { &alice_public.into(), )) .expect("Signs statement"); - let data = signed_statement.encode(); + let data = BlockAnnounceData { + receipt: Default::default(), + statement: signed_statement.convert_payload(), + }.encode(); let res = block_on(validator.validate(&header, &data)) .err() @@ -279,7 +283,7 @@ fn check_statement_seconded() { check_error(res, |error| { matches!( error, - BlockAnnounceError(x) if x.contains("must be a `Statement::Seconded`") + BlockAnnounceError(x) if x.contains("`CompactStatement` isn't the candidate variant") ) }); } @@ -290,7 +294,7 @@ fn check_header_match_candidate_receipt_header() { let (signed_statement, mut header) = block_on(make_gossip_message_and_header_using_genesis(api, 0)); - let data = signed_statement.encode(); + let data = BlockAnnounceData::try_from(signed_statement).unwrap().encode(); header.number = 300; let res = block_on(validator.validate(&header, &data)) @@ -300,7 +304,7 @@ fn check_header_match_candidate_receipt_header() { check_error(res, |error| { matches!( error, - BlockAnnounceError(x) if x.contains("header does not match") + BlockAnnounceError(x) if x.contains("Receipt para head hash doesn't match") ) }); } @@ -323,7 +327,7 @@ fn relay_parent_not_imported_when_block_announce_is_processed() { let (signed_statement, header) = make_gossip_message_and_header(api, block.hash(), 0).await; - let data = signed_statement.encode(); + let data = BlockAnnounceData::try_from(signed_statement).unwrap().encode(); let mut validation = validator.validate(&header, &data);