From e62b300f47724cf7ed6294ab2f535c963bec92c2 Mon Sep 17 00:00:00 2001
From: Andronik Ordian <write@reusable.software>
Date: Fri, 9 Oct 2020 16:34:17 +0200
Subject: [PATCH] Companion PR for #7247 (incremental priority group updates)
 (#1800)

* validator discovery: use incremental updates for priority_group

* validator discovery: fix compilation

* validator discovery: remove Sync bound on Net

* "Update Substrate"

Co-authored-by: parity-processbot <>
---
 polkadot/Cargo.lock                           | 270 +++++++++---------
 polkadot/node/network/bridge/src/lib.rs       |   7 +-
 .../network/bridge/src/validator_discovery.rs |  55 ++--
 3 files changed, 173 insertions(+), 159 deletions(-)

diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index a8f4171a15b..b631b7868b6 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -1429,7 +1429,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 [[package]]
 name = "fork-tree"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -1437,7 +1437,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1455,7 +1455,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "chrono",
  "frame-benchmarking",
@@ -1475,7 +1475,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1491,7 +1491,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata"
 version = "12.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1502,7 +1502,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "bitmask",
  "frame-metadata",
@@ -1527,7 +1527,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support-procedural-tools",
  "proc-macro2 1.0.18",
@@ -1538,7 +1538,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -1550,7 +1550,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -1560,7 +1560,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
@@ -1576,7 +1576,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -1590,7 +1590,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -3758,7 +3758,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3774,7 +3774,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3789,7 +3789,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3814,7 +3814,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3828,7 +3828,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3844,7 +3844,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3859,7 +3859,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3874,7 +3874,7 @@ dependencies = [
 [[package]]
 name = "pallet-finality-tracker"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3890,7 +3890,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3912,7 +3912,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -3928,7 +3928,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3948,7 +3948,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3965,7 +3965,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3979,7 +3979,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3995,7 +3995,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4009,7 +4009,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4024,7 +4024,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4045,7 +4045,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4061,7 +4061,7 @@ dependencies = [
 [[package]]
 name = "pallet-randomness-collective-flip"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4074,7 +4074,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -4089,7 +4089,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4104,7 +4104,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4124,7 +4124,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4140,7 +4140,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4154,7 +4154,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4176,7 +4176,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -4187,7 +4187,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4201,7 +4201,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4219,7 +4219,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4236,7 +4236,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -4254,7 +4254,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -4267,7 +4267,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4282,7 +4282,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4298,7 +4298,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -6462,7 +6462,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "bytes 0.5.6",
  "derive_more 0.99.11",
@@ -6491,7 +6491,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6515,7 +6515,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -6532,7 +6532,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -6549,7 +6549,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -6560,7 +6560,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -6610,7 +6610,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "fnv",
@@ -6647,7 +6647,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -6677,7 +6677,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "sc-client-api",
  "sp-blockchain",
@@ -6688,7 +6688,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "fork-tree",
@@ -6733,7 +6733,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -6757,7 +6757,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -6770,7 +6770,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6793,7 +6793,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "sc-client-api",
@@ -6807,7 +6807,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "lazy_static",
@@ -6835,7 +6835,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -6852,7 +6852,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -6867,7 +6867,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -6885,7 +6885,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "finality-grandpa",
@@ -6923,7 +6923,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "finality-grandpa",
@@ -6947,7 +6947,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.5",
@@ -6965,7 +6965,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -6985,7 +6985,7 @@ dependencies = [
 [[package]]
 name = "sc-light"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -7004,7 +7004,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "async-std",
  "async-trait",
@@ -7058,7 +7058,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -7073,7 +7073,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "bytes 0.5.6",
  "fnv",
@@ -7100,7 +7100,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "libp2p",
@@ -7113,7 +7113,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "substrate-prometheus-endpoint",
@@ -7122,7 +7122,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -7155,7 +7155,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7179,7 +7179,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.1.29",
  "jsonrpc-core",
@@ -7197,7 +7197,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "directories",
@@ -7260,7 +7260,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -7274,7 +7274,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -7295,7 +7295,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "erased-serde",
  "log 0.4.11",
@@ -7314,7 +7314,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-graph"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7335,7 +7335,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7802,7 +7802,7 @@ dependencies = [
 [[package]]
 name = "sp-allocator"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -7814,7 +7814,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "hash-db",
  "parity-scale-codec",
@@ -7829,7 +7829,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate",
@@ -7841,7 +7841,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -7853,7 +7853,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "integer-sqrt",
  "num-traits 0.2.12",
@@ -7866,7 +7866,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -7878,7 +7878,7 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -7889,7 +7889,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -7901,7 +7901,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -7918,7 +7918,7 @@ dependencies = [
 [[package]]
 name = "sp-chain-spec"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "serde",
  "serde_json",
@@ -7927,7 +7927,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7953,7 +7953,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "merlin",
  "parity-scale-codec",
@@ -7973,7 +7973,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -7982,7 +7982,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -7994,7 +7994,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -8037,7 +8037,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "kvdb",
  "parking_lot 0.10.2",
@@ -8046,7 +8046,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -8056,7 +8056,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -8067,7 +8067,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "finality-grandpa",
  "log 0.4.11",
@@ -8084,7 +8084,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-tracker"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -8094,7 +8094,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "parity-scale-codec",
@@ -8106,7 +8106,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -8130,7 +8130,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -8141,7 +8141,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8157,7 +8157,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -8169,7 +8169,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections-compact"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -8180,7 +8180,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -8190,7 +8190,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "backtrace",
  "log 0.4.11",
@@ -8199,7 +8199,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "serde",
  "sp-core",
@@ -8208,7 +8208,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -8230,7 +8230,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
@@ -8246,7 +8246,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -8258,7 +8258,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "serde",
  "serde_json",
@@ -8267,7 +8267,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8280,7 +8280,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -8290,7 +8290,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "hash-db",
  "log 0.4.11",
@@ -8311,12 +8311,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 
 [[package]]
 name = "sp-storage"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -8329,7 +8329,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8343,7 +8343,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -8356,7 +8356,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -8371,7 +8371,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -8385,7 +8385,7 @@ dependencies = [
 [[package]]
 name = "sp-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "futures-core",
@@ -8397,7 +8397,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -8409,7 +8409,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8550,7 +8550,7 @@ dependencies = [
 [[package]]
 name = "substrate-browser-utils"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "chrono",
  "console_error_panic_hook",
@@ -8576,7 +8576,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "platforms",
 ]
@@ -8584,7 +8584,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.5",
@@ -8607,7 +8607,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "async-std",
  "derive_more 0.99.11",
@@ -8621,7 +8621,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.1.29",
  "futures 0.3.5",
@@ -8648,7 +8648,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "futures 0.3.5",
  "substrate-test-utils-derive",
@@ -8658,7 +8658,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils-derive"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#a845ff3300489af3acd90c0b77adf5d7addeb6d5"
+source = "git+https://github.com/paritytech/substrate#2f3b20b727304a8d14b8f72fab059c00a35ce188"
 dependencies = [
  "proc-macro-crate",
  "quote 1.0.7",
diff --git a/polkadot/node/network/bridge/src/lib.rs b/polkadot/node/network/bridge/src/lib.rs
index d15e71c6e67..a09b61e6240 100644
--- a/polkadot/node/network/bridge/src/lib.rs
+++ b/polkadot/node/network/bridge/src/lib.rs
@@ -840,8 +840,13 @@ mod tests {
 		}
 	}
 
+	#[async_trait]
 	impl validator_discovery::Network for TestNetwork {
-		fn set_priority_group(&self, _group_id: String, _multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+		async fn add_to_priority_group(&mut self, _group_id: String, _multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+			Ok(())
+		}
+
+		async fn remove_from_priority_group(&mut self, _group_id: String, _multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
 			Ok(())
 		}
 	}
diff --git a/polkadot/node/network/bridge/src/validator_discovery.rs b/polkadot/node/network/bridge/src/validator_discovery.rs
index 26e63f2745d..542045f8c30 100644
--- a/polkadot/node/network/bridge/src/validator_discovery.rs
+++ b/polkadot/node/network/bridge/src/validator_discovery.rs
@@ -31,11 +31,12 @@ use polkadot_primitives::v1::{AuthorityDiscoveryId, Block, Hash};
 const PRIORITY_GROUP: &'static str = "parachain_validators";
 
 /// An abstraction over networking for the purposes of validator discovery service.
+#[async_trait]
 pub trait Network: Send + 'static {
 	/// Ask the network to connect to these nodes and not disconnect from them until removed from the priority group.
-	fn set_priority_group(&self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String>;
-	// TODO (ordian): we might want to add `add_to_priority_group` and `remove_from_priority_group`
-	// https://github.com/paritytech/polkadot/issues/1763
+	async fn add_to_priority_group(&mut self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String>;
+	/// Remove the peers from the priority group.
+	async fn remove_from_priority_group(&mut self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String>;
 }
 
 /// An abstraction over the authority discovery service.
@@ -47,9 +48,14 @@ pub trait AuthorityDiscovery: Send + 'static {
 	async fn get_authority_id_by_peer_id(&mut self, peer_id: PeerId) -> Option<AuthorityDiscoveryId>;
 }
 
+#[async_trait]
 impl Network for Arc<sc_network::NetworkService<Block, Hash>> {
-	fn set_priority_group(&self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
-		sc_network::NetworkService::set_priority_group(&**self, group_id, multiaddresses)
+	async fn add_to_priority_group(&mut self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+		sc_network::NetworkService::add_to_priority_group(&**self, group_id, multiaddresses).await
+	}
+
+	async fn remove_from_priority_group(&mut self, group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+		sc_network::NetworkService::remove_from_priority_group(&**self, group_id, multiaddresses).await
 	}
 }
 
@@ -118,8 +124,6 @@ pub(super) struct Service<N, AD> {
 	// in the `connected_validators` map.
 	// Invariant: the value > 0 for non-revoked requests.
 	requested_validators: HashMap<AuthorityDiscoveryId, u64>,
-	// keep for the network priority_group updates
-	validator_multiaddresses: HashSet<Multiaddr>,
 	non_revoked_discovery_requests: Vec<NonRevokedConnectionRequestState>,
 	// PhantomData used to make the struct generic instead of having generic methods
 	network: PhantomData<N>,
@@ -131,7 +135,6 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
 		Self {
 			connected_validators: HashMap::new(),
 			requested_validators: HashMap::new(),
-			validator_multiaddresses: HashSet::new(),
 			non_revoked_discovery_requests: Vec::new(),
 			network: PhantomData,
 			authority_discovery: PhantomData,
@@ -150,7 +153,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
 		validator_ids: Vec<AuthorityDiscoveryId>,
 		mut connected: mpsc::Sender<(AuthorityDiscoveryId, PeerId)>,
 		revoke: oneshot::Receiver<()>,
-		network_service: N,
+		mut network_service: N,
 		mut authority_discovery_service: AD,
 	) -> (N, AD) {
 		const MAX_ADDR_PER_PEER: usize = 3;
@@ -204,6 +207,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
 		}
 
 		// collect multiaddress of validators
+		let mut multiaddr_to_add = HashSet::new();
 		for authority in validator_ids.iter().cloned() {
 			let result = authority_discovery_service.get_addresses_by_authority_id(authority).await;
 			if let Some(addresses) = result {
@@ -213,7 +217,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
 				// They are going to be removed soon though:
 				// https://github.com/paritytech/substrate/issues/6845
 				for addr in addresses.into_iter().take(MAX_ADDR_PER_PEER) {
-					self.validator_multiaddresses.insert(addr);
+					multiaddr_to_add.insert(addr);
 				}
 			}
 		}
@@ -238,25 +242,26 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
 		}
 
 		// multiaddresses to remove
+		let mut multiaddr_to_remove = HashSet::new();
 		for id in revoked_validators.into_iter() {
 			let result = authority_discovery_service.get_addresses_by_authority_id(id).await;
 			if let Some(addresses) = result {
 				for addr in addresses.into_iter().take(MAX_ADDR_PER_PEER) {
-					self.validator_multiaddresses.remove(&addr);
+					multiaddr_to_remove.insert(addr);
 				}
 			}
 		}
 
 		// ask the network to connect to these nodes and not disconnect
 		// from them until removed from the priority group
-		// TODO (ordian): this clones the whole set of multaddresses
-		// TODO (ordian): use add_to_priority_group for incremental updates?
-		if let Err(e) = network_service.set_priority_group(
+		if let Err(e) = network_service.add_to_priority_group(
 			PRIORITY_GROUP.to_owned(),
-			self.validator_multiaddresses.clone(),
-		) {
+			multiaddr_to_add,
+		).await {
 			log::warn!(target: super::TARGET, "AuthorityDiscoveryService returned an invalid multiaddress: {}", e);
 		}
+		// the addresses are known to be valid
+		let _ = network_service.remove_from_priority_group(PRIORITY_GROUP.to_owned(), multiaddr_to_remove).await;
 
 		let pending = validator_ids.iter()
 			.cloned()
@@ -311,8 +316,7 @@ mod tests {
 
 	#[derive(Default)]
 	struct TestNetwork {
-		// Mutex is used because of &self signature of set_priority_group
-		priority_group: std::sync::Mutex<HashSet<Multiaddr>>,
+		priority_group: HashSet<Multiaddr>,
 	}
 
 	struct TestAuthorityDiscovery {
@@ -337,10 +341,15 @@ mod tests {
 		}
 	}
 
+	#[async_trait]
 	impl Network for TestNetwork {
-		fn set_priority_group(&self, _group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
-			let mut group = self.priority_group.lock().unwrap();
-			*group = multiaddresses;
+		async fn add_to_priority_group(&mut self, _group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+			self.priority_group.extend(multiaddresses.into_iter());
+			Ok(())
+		}
+
+		async fn remove_from_priority_group(&mut self, _group_id: String, multiaddresses: HashSet<Multiaddr>) -> Result<(), String> {
+			self.priority_group.retain(|elem| !multiaddresses.contains(elem));
 			Ok(())
 		}
 	}
@@ -570,7 +579,7 @@ mod tests {
 
 			let _ = receiver.next().await.unwrap();
 			assert_eq!(service.non_revoked_discovery_requests.len(), 1);
-			assert_eq!(ns.priority_group.lock().unwrap().len(), 2);
+			assert_eq!(ns.priority_group.len(), 2);
 
 			// revoke the second request
 			revoke_tx.send(()).unwrap();
@@ -588,7 +597,7 @@ mod tests {
 
 			let _ = receiver.next().await.unwrap();
 			assert_eq!(service.non_revoked_discovery_requests.len(), 1);
-			assert_eq!(ns.priority_group.lock().unwrap().len(), 1);
+			assert_eq!(ns.priority_group.len(), 1);
 		});
 	}
 }
-- 
GitLab